Skip to content

5480 jackson 3 support - #798

Open
JoshuaForssmanNedap wants to merge 35 commits into
670_feature_archie_4_major_versionfrom
5480_jackson_3_support
Open

5480 jackson 3 support#798
JoshuaForssmanNedap wants to merge 35 commits into
670_feature_archie_4_major_versionfrom
5480_jackson_3_support

Conversation

@JoshuaForssmanNedap

@JoshuaForssmanNedap JoshuaForssmanNedap commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

• Added Jackson 3 support alongside the existing Jackson 2 implementation.
• Introduced Jackson 3 JSON configuration for RM/AOM objects, including custom type resolution and serializers.
• Ported ODIN and BMM serialization/parsing infrastructure to Jackson 3.
• Added Jackson 3 date, time, duration, terminology-code, and rules-section handling.
• Expanded tests to run against both Jackson versions and verify compatible round-trip behavior.
• Aligned Jackson 3 property ordering with Jackson 2 and added extension points for custom type resolvers.
• Updated build dependencies and bumped the project version to 3.20.0
• In ResourceDescription I replaced the Jackson 2-specific JsonNode setter with an Object-based setter so current and legacy lifecycle-state formats deserialize consistently with both Jackson 2 and Jackson 3.
• Configured JacksonUtil3.java to use enum names instead of toString(), preserving existing JSON output and invalid-value rejection.

@codecov

codecov Bot commented Jun 17, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 80.65395% with 142 lines in your changes missing coverage. Please review.
✅ Project coverage is 72.58%. Comparing base (4f98ff8) to head (c9cf8bc).

Files with missing lines Patch % Lines
...java/org/openehr/odin/jackson3/ODINGenerator3.java 86.83% 26 Missing and 6 partials ⚠️
.../org/openehr/odin/jackson3/ODINPrettyPrinter3.java 81.17% 4 Missing and 12 partials ⚠️
...m/nedap/archie/json3/RulesSectionDeserializer.java 69.23% 5 Missing and 3 partials ⚠️
...in/java/org/openehr/odin/jackson3/ODINMapper3.java 77.14% 8 Missing ⚠️
.../archie/serializer/adl/ADLArchetypeSerializer.java 50.00% 4 Missing and 3 partials ⚠️
...n/java/org/openehr/odin/jackson3/ODINFactory3.java 65.00% 7 Missing ⚠️
...ava/com/nedap/archie/json3/OpenEHRTypeNaming3.java 79.31% 4 Missing and 2 partials ⚠️
...hr/bmm/v2/persistence/jackson3/BmmTypeNaming3.java 73.91% 4 Missing and 2 partials ⚠️
...izer/adl/jackson3/ArchetypeTermOdinSerializer.java 61.53% 3 Missing and 2 partials ⚠️
...main/java/com/nedap/archie/json3/JacksonUtil3.java 91.80% 4 Missing and 1 partial ⚠️
... and 18 more
Additional details and impacted files
@@                           Coverage Diff                            @@
##             670_feature_archie_4_major_version     #798      +/-   ##
========================================================================
+ Coverage                                 72.21%   72.58%   +0.37%     
- Complexity                                 7246     7487     +241     
========================================================================
  Files                                       679      712      +33     
  Lines                                     23483    24185     +702     
  Branches                                   3820     3891      +71     
========================================================================
+ Hits                                      16958    17555     +597     
- Misses                                     4788     4855      +67     
- Partials                                   1737     1775      +38     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

JoshuaForssmanNedap and others added 17 commits June 18, 2026 09:25
* ctermcode.constraint type to string

* Add extra checks

* Fix parsing and converting of adl14 term codes

* Change constraint type in CPrimitiveObject

Make it Constraint again instead of Object

* Requested changes

* Add backwards compatibility tests

* Move and rename test

* Create CTerminologyCodeADL14

... and use this in ADL14 related classes.

Instead of the new CTerminologyCode with the pendingCodes object.

* Inline child traversal into convert(CObject)

* Add ADL 2 roundtrip assertions to testDemoArchetype

* Copy defaultValue and socParent in toAdl2

* Add unit tests for CTerminologyCode, CTerminologyCodeADL14, toAdl2 and ADL 1.4 terminology parser

* Small changes

* Add CTerminologyCodeADL14Serializer

* Revert the CTerminologyCodeADL14Serializer changes
…0_jackson_3_support

# Conflicts:
#	tools/src/test/java/com/nedap/archie/json/AOMJacksonTest.java
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants