With the introduction of JAXP/TrAX, which uses TransformerFactory and ParserFactory configured by properties (default, per-user, or per-invocation) to point to the appropriate ...Impl classes, Sun/Oracle moved our code into com.sun.org.apache.local.*, and configured their default properties file to point to that implementation. That permits using the local or runtime parameter settings to override that default, letting us access org.apache.xalan and org.apache.xml.parser in a
less violent manner.
I'm in the process of changing xalan-test to reflect that -- it takes xalan and xerces off the bootclasspath or endorsedlib lists, puts them on the normal classpath, and (currently) uses java -D parameters to set the properties needed to make the factories assume that they should use the "real" Apache versions (unless the application overrides that). Setting up a local my_properties file which binds these during testing should be another option. See Javadoc for the javax implementations of TransformerFactory et al.
.....Unfortunately, SerializerFactory wasn't covered by the JAXP/TrAX/javax accord. The Serializer shipped with java is too back-level to run with modern Xalan, so we really do need to switch to ours... but its factory (in particular, the javax implementation of the factory) doesn't have the same hierarchy of properties files that TransformerFactory does, so reliably telling the JRE's factory to use our SerializerImpl class gets a bit more complicated.
Working out what we can do about this to avoid path juggling, for now and for the future. It may be ... interesting.
-- ` /_ Joe Kesselman (he/him/his) -/ _) My Alexa skill for New Music/New Sounds fans: / https://www.amazon.com/dp/B09WJ3H657/Caveat: Opinionated old geezer with overcompensated writer's block. May be redundant, verbose, prolix, sesquipedalian, didactic, officious, or redundant. Feel free to call him on it.
OpenPGP_0xFFBAFF963D937815.asc
Description: OpenPGP public key
OpenPGP_signature.asc
Description: OpenPGP digital signature