JAXP default implementation and JDK-8152063

David M. Lloyd david.lloyd at redhat.com
Mon Mar 21 14:39:22 UTC 2016

This message is in reference to the aforementioned issue [1] that I've 
requested my colleague Andrew Hughes to open on my behalf.

As expressed in that issue, the means of specifying a JAXP default 
provider (via system property which specifies a class name on the 
application class path) is relatively antiquated at this point.  It is 
actually quite difficult for containers which ship their own JAXP 
implementation to use the JDK APIs and, at the same time, ship their own 
implementations, especially without polluting the class path of 
applications which use JAXP.  This situation is made worse by Jigsaw in 
the respect that removing direct access to the default JDK 
implementation classes consequently eliminates one of the few possible 
workarounds to this problem (not to mention the dissonance between the 
system property approach and modules in general), which is the 
motivation for opening this issue.

I propose that there be made available a mechanism by which a default 
implementation Class<xx> (or a Supplier<xx>) can be established 
programmatically by sufficiently privileged code.  In the absence of 
dissent or other discussion, I intend to propose a webrev which 
implements this functionality against the jdk9/jdk9 tree.

Any preliminary feedback is greatly appreciated.

[1] https://bugs.openjdk.java.net/browse/JDK-8152063

More information about the core-libs-dev mailing list