RFR: javax.xml.stream: Using ServiceLoader to load JAXP stream factories (7169894: JAXP Plugability Layer: using service loader) (original) (raw)

Daniel Fuchs daniel.fuchs at oracle.com
Mon Dec 17 17:43:59 UTC 2012


Hi,

Here is a new webrev in the series that addresses using ServiceLoader in JAXP for JDK 8.

7169894: JAXP Plugability Layer: using service loader

This changeset addresses modification in the javax.xml.stream package. It is similar to changes proposed for the javax.xml.parsers package [1], with a few differences due to the specificity of javax.xml.stream.

Namely:

  1. The XMLXxxxFactory.newInstance methods that takes parameter takes a property name, rather than a class name, and thus calls FactoryFinder.find.

  2. One of the deprecated XMLOutputFactory.newInstance method had a bug - it used to return an XMLInputFactory - and was deprecated because of that - so I did preserve the bug.

  3. The noarg newFactory() methods were leaking instances of the private FactoryFinder$ConfigurationError - my patch corrects that since it removes FactoryFinder$ConfigurationError.

  4. In FactoryFinder.find() the ClassLoader parameter is often ignored, which makes the factories in the stream package behave differently from theirs cousins in the other packages. I believe this was an oversight due to (1). My patch will not fix that - I will instead log this as a separate issue.

<http://cr.openjdk.java.net/~dfuchs/JDK-7169894/javax.xml.stream/webrev.00>

best regards,

-- daniel

previous webrevs in the series:

[1] javax.xml.parsers: <http://cr.openjdk.java.net/~dfuchs/JDK-7169894/javax.xml.parser/webrev.06>

[2] javax.xml.datatype: <http://cr.openjdk.java.net/~dfuchs/JDK-7169894/javax.xml.datatype/webrev.02>



More information about the core-libs-dev mailing list