Drop support for Jena 5.3, RDF4J 4 and 5 - #711
Merged
Merged
Conversation
Merge GH-622/drop-jena-5.3 and take RDF4J to 6.0.0, so both integrations speak RDF 1.2 triple terms and no version-compat shims are needed anywhere. RDF4J side: - Bump to RDF4J 6.0.0 and use TripleTerm / ValueFactory.createTripleTerm directly. RDF4J 6 replaced the RDF-star API (Triple, createTriple) with the RDF 1.2 one, just as Jena did in 5.4. - Drop the Rdf4jCompatHelper shim, the Rdf4jTripleTerms{,5,6} strategy classes, the Rdf4j6Probe, and the rdf4j-compat5 module. - Note that Triple extended Resource while TripleTerm extends only Value: RDF 1.2 allows triple terms in object position only. JenaToRdf4jAdapter now rejects them elsewhere instead of silently building a bad term. Tests: - Teach the generalized N-Triples/N-Quads test parsers to skip the RDF 1.2 version directive, in both its `VERSION "1.2"` and `@version "1.2" .` spellings, which RDF 1.2 writers emit. - Mark the RDF4J test implementations as RDF 1.2 rather than RDF-star, and filter unsupported cases in NonDelimitedDesSpec like the sibling specs do. Build and CI: - RDF4J 6 ships Java 25 bytecode, so JDK 25 is now the build baseline; the artifacts still target Java 21. CI tests on JDK 25 and 26, against the oldest and newest supported Jena. - Park jelly-neo4j-plugin: it runs beside Neosemantics, which fat-jars RDF4J 4.3.12, and Neo4j 5.26 targets Java 17 — it cannot follow RDF4J to 6. Sources are kept; it is no longer aggregated, built, or released.
Ostrzyciel
marked this pull request as draft
August 17, 2026 19:57
Ostrzyciel
marked this pull request as ready for review
August 17, 2026 20:09
nk2IsHere
approved these changes
Aug 18, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Jena 5.3 was previously required mainly for jelly-cli, but it's upgrading to Jena 6: Jelly-RDF/cli#308
I initially tried supporting both RDF4J 5 and 6, but it's a major pain, as RDF4J completely changed class hierarchies. It's possible to work around with some very complex sbt magic and by spaghettifying the test matrix, but honestly... I don't think it's worth it.
This way, we have both Jena and RDF4J on versions that support RDF 1.2.
Builds for neosemantics had to be dropped, because neosemantics is stuck on RDF4J 4 (a version released in June 2024...). Their CVEs are not my business... Anyway, Neo4j people can keep using Jelly-JVM 3.x.