Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[lyo-dev] Fwd: [ANN] Apache Jena 5.0.0

FYI.

This means for us that 4.x will not be receiving security patches any more.

There is a draft PR https://github.com/eclipse/lyo/pull/389 but it needs work and I don't have time to finish it. Help is welcome, coordinate with Jad if you can help out.

/Andrew

20 Mar 2024 10:06:31 Andy Seaborne <andy@xxxxxxxxxx>:

The Apache Jena development community is pleased to
announce the release of Apache Jena 5.0.0.

In Jena5:

* Minimum Java requirement: Java 17

* Language tags are case-insensitive unique.

* Term graphs for in-memory models

* RRX - New RDF/XML parser

* Remove support for JSON-LD 1.0

* Turtle/Trig Output : default output PREFIX and BASE

* New artifacts : jena-bom and OWASP CycloneDX SBOM

* API deprecation removal

* Dependency updates :
     Note: slf4j update : v1 to v2 (needs log4j change)

More details below.

==== Contributions:

Configurable CORS headers for Fuseki
   From Paul Gallagher

Balduin Landolt @BalduinLandolt - javadoc fix for Literal.getString.

@OyvindLGjesdal - https://github.com/apache/jena/pull/2121 -- text index fix

Tong Wang @wang3820 Fix tests due to hashmap order

Explicit Accept headers on RDFConnectionRemote fix
   from @Aklakan

====

All issues in this release:
     https://s.apache.org/jena-5.0.0-issues

which includes the ones specifically related to Jena5:

   https://github.com/apache/jena/issues?q=label%3Ajena5

** Java Requirement

Java 17 or later is required.
Java 17 language constructs now are used in the codebase.

Jakarta JavaEE required for deploying the WAR file (Apache Tomcat10)

** Language tags

Language tags become are case-insensitive unique.

"abc"@EN and "abc"@en are the same RDF term.

Internally, language tags are formatted using the algorithm of RFC 5646.

Examples "@en", "@en-GB", "@en-Latn-GB".

SPARQL LANG(?literal) will return a formatted language tag.

Data stored in TDB using language tags must be reloaded.

** Term graphs

Graphs are now term graphs in the API or SPARQL. That is, they do not match "same value" for some of the Java mapped datatypes. The model API already normalizes values written.

TDB1, TDB2 keep their value canonicalization during data loading.

A legacy value-graph implementation can be obtained from GraphMemFactory.

** RRX - New RDF/XML parser

RRX is the default RDF/XML parser. It is a replacement for ARP.
RIOT uses RRX.

The ARP parser is still temporarily available for transition assistance.

** Remove support for JSON-LD 1.0

JSON-LD 1.1, using Titanium-JSON-LD, is the supported version of JSON-LD.

https://github.com/filip26/titanium-json-ld

** Turtle/Trig Output

"PREFIX" and "BASE" are output by default for Turtle and TriG output.

** Artifacts

There is now a release BOM for Jena artifacts - artifact org.apache.jena:jena-bom

There are now OWASP CycloneDX SBOM for Jena artifacts.
https://github.com/CycloneDX

jena-tdb is renamed jena-tdb1.

jena-jdbc is no longer released

** Dependencies

The update to slf4j 2.x means the log4j artifact changes to
"log4j-slf4j2-impl" (was "log4j-slf4j-impl").


==== API Users

** Deprecation removal

There has been a clearing out of deprecated functions, methods and classes. This includes the deprecations in Jena 4.10.0 added to show code that is being removed in Jena5.

** QueryExecutionFactory

QueryExecutionFactory is simplified to cover commons cases only; it becomes a way to call the general QueryExecution builders which are preferred and provide all full query execution setup controls.

Local execution builder:
QueryExecution.create()...

Remote execution builder:
QueryExecution.service(URL)...

** QueryExecution variable substitution

Using "substitution", where the query is modified by replacing one or more variables by RDF terms, is now preferred to using "initial bindings", where query solutions include (var,value) pairs.

"substitution" is available for all queries, local and remote, not just local executions.

Rename TDB1 packages org.apache.jena.tdb -> org.apache.jena.tdb1

==== Fuseki Users

Fuseki: Uses the Jakarta namespace for servlets and Fuseki has been upgraded to use Eclipse Jetty12.

Apache Tomcat10 or later, is required for running the WAR file.
Tomcat 9 or earlier will not work.


== Obtaining Apache Jena 5.0.0

* Via central.maven.org

The main jars and their dependencies can used with:

       <dependency>
         <groupId>org.apache.jena</groupId>
         <artifactId>apache-jena-libs</artifactId>
         <type>pom</type>
         <version>5.0.0</version>
       </dependency>

Full details of all maven artifacts are described at:

     http://jena.apache.org/download/maven.html

* As binary downloads

Apache Jena libraries are available as a binary distribution of
libraries. For details of a global mirror copy of Jena binaries please see:

http://jena.apache.org/download/

* Source code for the release

The signed source code of this release is available at:

     http://www.apache.org/dist/jena/source/

and the signed master source for all Apache Jena releases is available
at: http://archive.apache.org/dist/jena/

== Contributing

If you would like to help out, a good place to look is the list of
unresolved JIRA at:

     https://https://github.com/apache/jena/issuesissues-current

or review pull requests at

     https://github.com/apache/jena/pulls

or drop into the dev@ list.

We use github pull requests and other ways for accepting code:
      https://github.com/apache/jena/blob/master/CONTRIBUTING.md


Back to the top