2016/3/29 0:21:05 -0700, alan.bate...@oracle.com: > On 28/03/2016 23:46, huizhe wang wrote: >> Thanks David. So I understand the dynamic nature of the server >> configuration. There maybe two options to solve it: >> >> ... >> >> 2) Add a new type FinderDelegate for processes such as the "proxy" in >> your case to implement. If the FinderDelegate process fails to locate >> a provider, it would signal the jaxp process (by returning null) to >> fall back to the JDK-default implementation. In other words, when the >> system property points to a FinderDelegate, the 4-step JAXP process is >> reduced to two: delegate the process to the FinderDelegate, and fall >> back to the system default implementation. > > The devil is in the detail of course. You haven't said if the > FinderDelegate implementation has to be visible via the system class loader. > > I think the main thing is to tread carefully and it would be very easy > to introduce a troublesome mis-feature here.
Indeed. This has been an interesting discussion. Now that I understand David's scenario better, I suspect this is just one instance of a more general problem, and in fact one that should be solved by a module-system requirement we previously recorded but have not yet addressed: http://openjdk.java.net/projects/jigsaw/spec/reqs/#selective-binding Let's please not add yet more complexity to JAXP, if we can help it. - Mark