Hi,
As pointed out by Paul & Alan, there's no reason to force
Class.forName to initialize the class when attempting to
load it in FactoryFinder.
FactoryFinder should behave like ServiceLoader in this respect.
So here is an updated webrev for javax.xml.datatype.
<http://cr.openjdk.java.net/~dfuchs/JDK-7169894/javax.xml.datatype/webrev.02>
I also reported the changes to javax.xml.parsers:
<http://cr.openjdk.java.net/~dfuchs/JDK-7169894/javax.xml.parsers/webrev.06/>
-- daniel
On 12/12/12 2:08 PM, Daniel Fuchs wrote:
Hi,
Please find below a refreshed webrev which adds a bit of cleanup
suggested by Paul.
Instead of casting the result of newInstance() at several places,
we pass the expected base type to newInstance so that the cast
occurs only once.
<http://cr.openjdk.java.net/~dfuchs/JDK-7169894/javax.xml.datatype/webrev.01>
-- daniel
Note: I have applied the same cleanup to the parsers package:
javax.xml.parsers:
<http://cr.openjdk.java.net/~dfuchs/JDK-7169894/javax.xml.parsers/webrev.05/>
On 12/11/12 6:47 PM, Daniel Fuchs wrote:
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.datatype
package.
It is similar to changes proposed for the javax.xml.parsers
package [1], with a few differences due to the specificities of
javax.xml.datatype.
Namely:
1. The documentation that describes the loading mechanism is in the
class header rather than in the method documentation - which leads
to some wording changes.
2. The DatatypeFactory is specified to throw a
DatatypeConfigurationException - which is a checked exception,
instead of an Error - as was FactoryConfigurationError
3. DatatypeConfigurationException allows to wrap
ServiceConfigurationError directly - so the additional layer
of RuntimeException is not needed here.
<http://cr.openjdk.java.net/~dfuchs/JDK-7169894/javax.xml.datatype/webrev.00>
-- daniel
[1] javax.xml.parsers:
<http://cr.openjdk.java.net/~dfuchs/JDK-7169894/javax.xml.parsers/webrev.04/>