Consolidated reference for the Maven artifacts, JPMS modules, supported annotations, JsonbConfig properties, and runtime configuration points of Champollion.
Maven artifacts
groupId:artifactId |
Role |
|---|---|
|
Pure re-exposition of the Jakarta specs ( |
|
JSON-P 2.1 implementation (parser, generator, object model, Patch / Pointer / Merge Patch). |
|
JSON-B 3.0 implementation ( |
|
Annotation Processor (scope |
|
|
|
JMH — Parsson/Yasson/Jackson comparisons. No runtime scope. |
|
Runnable examples. |
|
Official TCK runners JSON-P 2.1 + JSON-B 3.0. Invocation via |
JPMS modules
| Module | Public exports | SPI / provides |
|---|---|---|
|
|
— |
|
|
|
|
|
|
|
— |
|
Internal packages (internal.*) are not exported — do not depend on them, they may break between versions.
Supported JSON-B annotations
Standard Jakarta JSON Binding 3.0 annotations — all supported:
| Annotation | Effect |
|---|---|
|
Renames the JSON property. On a constructor parameter: used for resolution. |
|
Excludes the property (read and write). |
|
Date / time format. Applies to |
|
Numeric format (cf. |
|
Adapter on a property or class. |
|
Custom serializer / deserializer. |
|
Visibility strategy (fields vs accessors). |
|
Constructor or factory used for deserialization. Records natively supported without annotation. |
|
Forces writing of |
|
Property write order. |
|
Polymorphism with discriminator (new in JSON-B 3.0). |
Champollion-specific annotations:
|
Marks a type for binding generation by |
JsonbConfig properties
All standard jakarta.json.bind.JsonbConfig properties are supported (cf. https://jakarta.ee/specifications/jsonb/3.0/):
| Property | Description |
|---|---|
|
Pretty-print with indentation. |
|
Include |
|
Locale for date / number formats. |
|
Global date / time format. |
|
|
|
|
|
|
|
|
|
Global registration. |
Champollion-specific properties (champollion. prefix):
|
If |
|
Parser buffer pool size. Default: 8. |
JsonProvider & JsonbProvider
Auto-discovered via ServiceLoader:
-
META-INF/services/jakarta.json.spi.JsonProvider→io.vidocq.champollion.jsonp.ChampollionJsonProvider -
META-INF/services/jakarta.json.bind.spi.JsonbProvider→io.vidocq.champollion.jsonb.ChampollionJsonbProvider
To force the implementation (multi-impl on the classpath):
-Djakarta.json.provider=io.vidocq.champollion.jsonp.ChampollionJsonProvider
-Djakarta.json.bind.provider=io.vidocq.champollion.jsonb.ChampollionJsonbProvider
champollion-codegen-maven-plugin Maven plugin
<plugin>
<groupId>io.vidocq.champollion</groupId>
<artifactId>champollion-codegen-maven-plugin</artifactId>
<version>${champollion.version}</version>
<executions>
<execution>
<goals><goal>generate</goal></goals>
</execution>
</executions>
<configuration>
<targets>
<target>com.acme.dto.*</target>
</targets>
<excludes>
<exclude>com.acme.dto.internal.*</exclude>
</excludes>
</configuration>
</plugin>
Bound to generate-sources. 100% delegation to champollion-codegen-apt — no duplication.
Compatibility
-
Java: 25 (LTS).
-
Maven: 3.9.16 (Model 4.0.0 — the whole Vidocq stack moved to Maven 3.9; see TCK Jakarta JSON-P 2.1 + JSON-B 3.0 for the historical ShrinkWrap note).
-
JPMS: strict, every module has a
module-info.java. -
Virtual threads: no
synchronized, no exportedThreadLocal. -
AOT: GraalVM
native-imageand Leyden CDS friendly in static codegen mode. -
Specs: conformant to https://jakarta.ee/specifications/jsonp/2.1/ and https://jakarta.ee/specifications/jsonb/3.0/.
Resources
-
lien:https://codeberg.org/Vidocq/champollion/src/branch/main/BENCH.md[BENCH.md] — JMH benchmarks vs Parsson / Yasson / Jackson
-
lien:https://codeberg.org/Vidocq/champollion/src/branch/main/TCK.md[TCK.md] — TCK details
-
lien:https://codeberg.org/Vidocq/champollion/src/branch/main/ROADMAP.md[ROADMAP.md] — phases M0..M7