-
Notifications
You must be signed in to change notification settings - Fork 19
Description
Recently, the DSpace project noticed that this old JavaServer2.0 library seems to be incompatible with Apache Solr 8.10.0 or above, because of the reliance on the retired Apache Abdera project.
The incompatibility with Solr 8.10.0 or above occurs via the Apache Axiom project. Here's a summary of what we found (documented further in DSpace/DSpace#8188)
JavaServer2.0 depends on Apache Abdera, retired in 2017
- As a temporary replacement, the Apache Axiom project had a FOM implementation (
fom-impl) which was backwards compatible with Apache Adbera. DSpace took advantage of that, to continue to useJavaServer2.0even after Abdera no longer worked for us. - Apache Axiom has removed
fom-impl(see apache/ws-axiom@5df98f4) and it no longer exists in Apache Axiom version 1.3.0 (or above), and Apache Axiom 1.3.0 doesn't work with the oldfom-impl(I tested this and it resulted in a number of errors) - SUMMARY: This means that
JavaServer2.0is only compatible with Apache Axiom version 1.2.22 (released in 2019).
In Solr version 8.10.0, the solr-cell client library now requires Woodstox (woodstox-core) version 6.
- Woodstox version 6 is incompatible with Apache Axiom version 1.2.22. It requires Apache Axiom version 1.3.0.
- While it can compile with Axiom v1.2.22, our experience was that you would immediately hit DTD parsing errors, like documented here: https://stackoverflow.com/questions/68214287/dtd-parsing-with-axiom
- In Apache Axiom version 1.3.0, Axiom added support for Woodstox version 6, fixing that DTD parsing error.
- SUMMARY: This means that projects that use
solr-cell8.10.0 (or above) are only compatible with Apache Axiom version 1.3.0 (or above). They won't work with Apache Axiom version 1.2.22
Overall, in our experience, this JavaServer2.0 library is quickly becoming obsolete. It won't function much longer with any platform that also uses the most recent Solr. It's also highly likely that similar incompatibilities will arise with other current Java libraries (Solr might just be the tip of the iceberg).
The only known solutions that we have come up with is one of the following:
- (Temporary fix) Stay on compatible libraries as much as possible. This means pinning to Solr 8.9.0 (or below), if you depend on
solr-cell - (Long term fix) Rewrite the
JavaServer2.0library to no longer depend on Apache Abdera. This looks like it would require rewriting many key classes to use a different Atom Java library (perhaps Rome?)
At this time the DSpace team is discussing our own directions. But, if there's anyone else out there who is interested in helping to rewrite the JavaServer2.0 library or already has started, we'd be interested in talking to you about that.