Thanks for the vote.

On 17/01/2020 15:58, ajs6f wrote:

I did notice:

Portions of this software are from Apache Xerces and were originally based on 
the following:
   - software copyright (c) 1999, IBM Corporation., http://www.ibm.com.
   - software copyright (c) 1999, Sun Microsystems., http://www.sun.com.

I haven't kept track of all of our moves around Xerces and its datatype code. 
Do we still need this, or did we excise all the Xerces-derived stuff?

Jena has Xerces source code in it. Some of the datatype code was lifted from Xerces. That's why NOTICE has that text, rather than a binary dependency on Xerces.

Nowadays, to avoid a binary dependency, Jena has the source code for all the datatype machinery under "org.apache.jena.ext.xerces" without the XML parser. Taken from 2.11.0.

A binary dependency is a bit problematic using Jena as a library. xercesImpl.jar has various ServiceLoader files. It will wire itself into the JVM.

So the whole application gets Jena's choice of XML parser. Not good.
And there is the recurrent matter of incorrectly repackage/shading jars.

Extracting the datatype parts (which aren't huge and get called directly from Jena anyway) and repackaging under "org.apache.jena.ext.xerces" means Jena uses whatever XML parser the application chooses, including the JDK one (which is a older fork of Xerces but then modified). No ServiceLoader. Helps with OSGi as well. JENA-1537 lists a few issues that have come up over the years.

    Andy





Reply via email to