Hello,
The static initializer in
org.apache.xalan.processor.TransformerFactoryImpl reads the
XSLTInfo.properties file, and uses the properties specified therein to set
some system properties, unless those system properties were already set.
So far as I can tell, setting those properties serves no useful
purpose. It looks like the vendor, vendor-url and version properties were
being set in support of the XSLT system-property function. That function
is implemented in Xalan-J Interpretive in
org.apache.xpath.functions.FuncSystemProperty, which reads the
XSLTInfo.properties file itself, and never refers to the system properties
that were set by TransformerFactoryImpl.
The fourth system property set by the code in TransformerFactoryImpl
is org.xml.sax.driver; the value specified is
org.apache.xerces.parsers.SAXParser. I think that older versions of
Xerces-J did not include a META-INF/services/org.xml.sax.driver file, so
Xalan-J needed to set the property to ensure that XMLReaderFactory would
create a parser for it if the user hadn't selected a parser by setting the
property explicitly.
So, I believe the code in XSLTInfo.properties in
TransformerFactoryImpl is vestigial, and can be safely removed, but I'd
like somebody with historical knowledge of this code to confirm that. The
only potential problem I can think of is that somebody might try using a
very old version of Xerces-J with Xalan, and will find that that
combination will not work unless the user explicitly sets the
org.xml.sax.driver property himself or herself.
Thanks,
Henry
------------------------------------------------------------------
Henry Zongaro Xalan development
IBM SWS Toronto Lab T/L 969-6044; Phone +1 905 413-6044
mailto:[EMAIL PROTECTED]