A collection of reusable Java 25 JPMS modules covering common infrastructure concerns.
base provides 23 JPMS modules for building modular Java applications — from type-safe configuration
and annotation-driven marshalling to reactive publish/subscribe, part-whole hierarchy traversal, and
observability. All modules are published to Maven Central and designed to be used independently.
| Module | Purpose |
|---|---|
base-foundation |
Root utilities: lazy evaluation, streams, iterators, matching DSL |
base-configuration |
Type-safe configuration builder and resolution |
base-option |
Option types for configuration values |
base-expression |
Jakarta EL-based expression evaluation |
base-commandline |
CLI argument parsing |
base-marshalling |
Annotation-driven serialization (@Marshal / @Unmarshal) |
base-transport |
Transport abstractions |
base-transport-json |
JSON transport via Jackson Core |
base-flow |
Custom reactive Publish/Subscribe |
base-query |
Object indexing and querying |
base-mereology |
Part-whole hierarchy traversal |
base-retryable |
Retryable supplier with configurable back-off |
base-telemetry |
Observability interfaces |
base-telemetry-foundation |
Core telemetry implementation |
base-telemetry-ansi |
ANSI terminal telemetry output |
base-io |
I/O utilities |
base-network |
Networking utilities |
base-archiving |
Archive (zip/tar) support |
base-parsing |
Parsing utilities |
base-naming |
Naming and identifier utilities |
base-logging |
Logging abstractions |
base-table |
Tabular data utilities |
base-assertion |
AssertJ-based test assertion extensions |
- Java 25+
- Maven (wrapper included — no separate install needed)
Add individual modules as dependencies. All modules share the same version:
<dependency>
<groupId>build.base</groupId>
<artifactId>base-foundation</artifactId>
<version>VERSION</version>
</dependency>Replace VERSION with the latest version shown in the Maven Central badge above.
./mvnw clean installTo build a custom version:
./mvnw -Drevision=x.y.z-SNAPSHOT-my-name clean installCode style is enforced by Checkstyle: no tabs, no star imports, final locals and parameters, braces
required on all blocks, no assert statements. Import order: third-party, standard Java, then
static. IntelliJ configuration is at config/intellij/CodeStyle.xml.
Commit messages follow Conventional Commits.
Apache 2.0 — see LICENSE