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.
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"
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:
 Run on a Java9 JVM
 Build using Java9 JDK, output Java8 class files.
 Java9 required - language features and runtime library
 Java9 modules
 at Jena 3.7.0, running with a Java9 platform (except jena-elephas)
 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.
 The project has no current plans to require a Java9 language
runtime. The language requirement is still Java8.
 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 jdk.tools which is not
available in Java9.