The development community is heading towards Jena 3.7.0 (no specific date - as ever, it has to fit around the volunteers time).

We'd like to encourage you to test it before the release using the development code and builds. Drop over to dev@.

There is lots in this release, much more than listed here, but areas that might be worth you investigating and testing include:

== Java9: Running on a Java9 platform is supported
Language requirement remain Java8.  More below.

== SPARQL: Evaluation change

JENA-1507: Changes to GROUP BY when the WHERE pattern has no results.

== Feature

JENA-1461: Allow ARQ custom functions to be written in JavaScript
Draft documentation:

== API

This release is not binary compatible (NB Releases are not guaranteed to be binary compatible nor mix-and-match versions of jars).
This time there are specific API changes:

JENA-1389: Return `this` rather than `void` from Dataset
JENA-1495: PR#368 "Return Model from PrefixMapping methods"

** Java9

Java8 is the current LTS version of Java and receives security updates. The next LTS is Java11. [Sched]


There are different cases for running with Java9:

[1] Run on a Java9 JVM
[2] Build using Java9 JDK, output Java8 class files.
[3] Java9 required - language features and runtime library
[4] Java9 modules

[1] at Jena 3.7.0, running with a Java9 platform (except jena-elephas) is supported.

[2] at Jena 3.7.0, running maven (3.5.0 or later) using Java9 to produce Java8 bytecode is supported (except as noted). We now run a Jenkins job daily to check this for the main jars.

[3] The project has no current plans to require a Java9 language runtime. The language requirement is still Java8.

[4] Jena jars can work as automatic modules but Jena itself does not provide a "modules" version. Proper migration needs all the dependencies to be modules, and also has implications on the upstream. Contribution and discussions are welcome!

For discussion and background see


And note: Java 9 is obsolete March 2018, as soon as Java10 comes out.


jena-elephas depends on Hadoop that depends on which is not available in Java9.

Reply via email to