Bernd Wahlen created SOLR-18325:
-----------------------------------
Summary: Upgrade Jackson from 2.x to 3.x (tools.jackson)
Key: SOLR-18325
URL: https://issues.apache.org/jira/browse/SOLR-18325
Project: Solr
Issue Type: Improvement
Components: SolrJ
Affects Versions: 10.0
Reporter: Bernd Wahlen
SolrJ (and Solr generally) depends on Jackson 2.x (com.fasterxml.jackson.*);
solr-solrj:10.0.0 pulls jackson-databind:2.20. Jackson 3 is released, with 3.1
as the recommended stable line.
Because Jackson 3 changed its Maven coordinates and packages
(com.fasterxml.jackson.core/databind →
tools.jackson.core/tools.jackson.databind), it can coexist with Jackson 2 on a
classpath — but that's the problem downstream: applications that have moved to
Jackson 3 (e.g. anything on Spring Boot 4, which now defaults to Jackson 3) and
also use SolrJ are forced to ship both Jackson runtimes, since SolrJ keeps
Jackson 2. Filing this to track the upgrade for a major release where the
coordinate/package change is acceptable.
Motivation
- Align with the current Jackson line (3.1 stable); Jackson 2 will eventually
EOL.
- Let Jackson-3 downstreams avoid bundling two Jackson runtimes when they use
SolrJ.
Scope / considerations
- Package/coordinate change across the codebase:
com.fasterxml.jackson.{databind,core} → tools.jackson.{databind,core}.
Annotations are unaffected — they stay com.fasterxml.jackson.annotation
(Jackson 3 depends on jackson-annotations 2.20+ by design), so @JsonProperty
etc. don't change.
- API changes: ObjectMapper is immutable/builder-based
(JsonMapper.builder()…build()); exceptions are unchecked now
(tools.jackson.core.JacksonException replaces JsonProcessingException).
- Jackson 3.0 is not LTS — target 3.1.x.
- Needs alignment across all Solr modules (server, solrj, contribs).
- Breaking coordinate change → natural fit for the next major (11.0, already in
dev per SOLR-18003).
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]