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:
http://jena.apache.org/documentation/query/javascript-functions.html
== 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]
[Sched] http://www.oracle.com/technetwork/java/eol-135779.html
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
[A] http://blog.joda.org/2017/05/java-se-9-jpms-automatic-modules.html
[B] http://blog.joda.org/2017/04/java-se-9-jpms-module-naming.html
And note: Java 9 is obsolete March 2018, as soon as Java10 comes out.
http://openjdk.java.net/projects/jdk/10/#Schedule
Notes:
jena-elephas depends on Hadoop that depends on jdk.tools which is not
available in Java9.