OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SAX-core proposal: class loading and META-INF/services



I've submitted the following as a feature request for SAX. I'm forwarding it
for
possible discussion in case anyone has issues. If you do have issues, please
speak up.

Currently, JAXP checks four places to find the default (non-SAX) parser
class: 

 * system property (SAX does too) if possible 
   --> per-JVM-instance defaulting 
 * $(JAVA_HOME)/jre/lib/jaxp.properties 
   --> installation-wide defaulting 
 * META-INF/services/... resource 
   (usually in jarfile) 
 * compiled-in default (this proposal adds to SAX) 

Currently, XMLReaderFactory supports the use of a system property. A
separate proposal has been suggested to provide a compiled-in default, as
well. 

I'd like to see XMLReaderFactory also support the META-INF/services
mechanism for a default XMLReader implementation so that a default
implementation may be bundled with a library or application distribution as
a resource. This should work in concert with the other mechanisms similarly
to JAXP. A system property -- if set -- should take precedence. If not set,
then XMLReaderFactory should attempt to load the resource
/META-INF/services/org.xml.sax.XMLReader to read in a list of appropriate
implementation classes and if present, attempt instantiation of an instance
of one of the listed classes. If this resource is not present (or
XMLReaderFactory is unable to instantiate any of the listed classes), then
it should fall back to a compiled-in default.