ToDo here Issues here Pull Requests here Contact email
PCLib is a multi-module Java library with small, reusable utilities for other projects.
Java version: Java 8 except pclib-db-spring requires Java 17
pclib-common- shared helpers and core utilitiespclib-datastruct- custom data structures like pairs, triplets, tuples, lists, maps, and weak collectionspclib-function- functional interfaces such as throwing functions and tri-functionspclib-awt- AWT helpers for drawing and image processingpclib-swing- Swing components like charts and label builderspclib-db-core- database framework corepclib-db-mysql- includes mysql connectors forpblib-dbpclib-db-postgres- includes postgresql connectors forpblib-dbpclib-db-sqlite- includes sqlite connectors forpblib-dbpclib-db-all- includes all connectors forpblib-dbas well as testspclib-db-spring- Spring integration forpclib-dbpclib-cache- cache utilities (incomplete)pclib-concurrency- thread and latch utilitiespclib-json- JSON config loading helpers (deprecated)pclib-event- synchronous and asynchronous event systempclib-logger- lightweight logging utilitiespclib-pointer- mutable wrappers for objects and primitive typespclib-jbcodec- byte encoding and decoding librarypclib-packets4j- lightweight TCP packet librarypclib-parser- Small code parser module
| nexus.kbra.lu-snapshots | nexus.kbra.lu-releases | nexus.kbra.lu-public | central | |
|---|---|---|---|---|
| RELEASES | ||||
| jar | ❌ | ✅ | ✅ | ✅ |
| javadoc | ❌ | ✅ | ✅ | ✅ |
| sources | ❌ | ✅ | ✅ | ✅ |
| with-dependencies | ❌ | ✅ | ✅ | ❌ |
| tests | ❌ | ✅ | ✅ | ✅ |
| SNAPSHOTS | ||||
| jar | ✅ | ❌ | ✅ | ❌ |
| javadoc | ✅ | ❌ | ✅ | ❌ |
| sources | ✅ | ❌ | ✅ | ❌ |
| with-dependencies | ✅ | ❌ | ✅ | ❌ |
| tests | ✅ | ❌ | ✅ | ❌ |
Prefer using the central repository, only use the others if you need snapshots or with-dependencies
<repositories>
<repository>
<id>nexus.kbra.lu-public</id>
<url>https://nexus.kbra.lu/repository/maven-public/</url>
</repository>
<repository>
<id>nexus.kbra.lu-releases</id>
<url>https://nexus.kbra.lu/repository/maven-releases/</url>
</repository>
<repository>
<url>https://nexus.kbra.lu/repository/maven-snapshots/</url>
</repository>
</repositories>If you import the parent POM in your dependencyManagement, you can omit versions for all PCLib modules.
<dependencyManagement>
<dependencies>
<dependency>
<groupId>lu.kbra</groupId>
<artifactId>pclib</artifactId>
<version>1.2.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>Example with pclib-common:
<dependencies>
<dependency>
<groupId>lu.kbra</groupId>
<artifactId>pclib-common</artifactId>
</dependency>
</dependencies>Or if using a repository that has other artifacts, you can use the classifier to specify which one you need ("", javadoc, sources, tests, with-dependencies):
<dependency>
<groupId>lu.kbra</groupId>
<artifactId>pclib-common</artifactId>
<classifier>with-dependencies</classifier>
</dependency>You can find the Javadoc for the releases here
Build the full project with Maven, add -DskipTests to skip the test. Some tests require a running docker instance.
git clone git@github.com:UnKabaraQuiDev/PCLib.git pclib
cd pclib
mvn clean installAll artifacts after v1.2.1 are signed. Download GPG public key
Fingerprint: 2D82 735A 84BE 1A75 30CC 3CA1 FB69 741B 6CDA BE2E