Thank you Andy for your continued leadership in the Apache Jena project and the committers and testers for helping to bring the Jena 5 release to the wider developer and user communities around the world.
All The Best, Marco Marco Neumann Lotico Community Lead http://www.lotico.com On Wed, Mar 20, 2024 at 9:06 AM Andy Seaborne <[email protected]> wrote: > 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 > -- --- Marco Neumann
