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
--
- DML