Skip to content

Split CBOR encoder to support Jackson 2 and 3#134

Merged
CodeDrivenMitch merged 7 commits intoaxon-4from
123-spring-boot-4-compatibility-for-framework-client
Apr 14, 2026
Merged

Split CBOR encoder to support Jackson 2 and 3#134
CodeDrivenMitch merged 7 commits intoaxon-4from
123-spring-boot-4-compatibility-for-framework-client

Conversation

@alex-w0
Copy link
Copy Markdown
Contributor

@alex-w0 alex-w0 commented Apr 1, 2026

Refactor the CBOR encoder to provide separate support for Jackson 2 and Jackson 3, with the goal of supporting Spring Boot 4.

@alex-w0 alex-w0 requested a review from CodeDrivenMitch April 1, 2026 14:54
@alex-w0 alex-w0 changed the title add cbor encoder Split CBOR encoder to support Jackson 2 and 3 Apr 2, 2026
Comment thread pom.xml Outdated
Copy link
Copy Markdown
Collaborator

@CodeDrivenMitch CodeDrivenMitch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to downgrade the Kotlin version, and update the copyright headers. Hence not approving yet.

@alex-w0 alex-w0 requested a review from CodeDrivenMitch April 8, 2026 07:37
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-cbor</artifactId>
<scope>provided</scope>
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am wondering why there is a differnece between cbor and kotlin here. Why do we include kotlin transitively, but not cbor?

As we would like to default to Jackson 3 (but first check whether Jackson 2 is on the classpath instead), I think it makes sense to make both provided and optional. Wdyt?

Copy link
Copy Markdown
Contributor Author

@alex-w0 alex-w0 Apr 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good question. I’m also not sure why it was decided this way in the main branch, perhaps to avoid requiring users to install a Kotlin dependency when their project is purely written in Java.
On the other hand, Jackson 2 is no longer the default approach, so it’s probably acceptable if users need to take this extra step and add the dependency themselves.
I’ve now adopted your proposal and made the dependency provided and optional.

@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@alex-w0 alex-w0 requested a review from CodeDrivenMitch April 14, 2026 06:57
@CodeDrivenMitch CodeDrivenMitch merged commit b64bdf5 into axon-4 Apr 14, 2026
5 of 6 checks passed
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