Posted by xian594
on May 27, 2008 at 3:15 PM PDT
In the "DOMService Plugability" section of this help page for Java 1.5:
It states that you can set the system property "com.sun.browser.dom.DOMServiceProvider" to a fully-qualified class name for an implementation of DOMServiceProvider, and when "DOMService.getService(obj)" is called, it will query canHandle(Object) on the specified implementation to see if the implementation can provide a DOMService. If canHandle(Object) returns true, that implementation should be returned by DOMService.getService(Object).
Has anyone gotten this to work on 1.6.0_10-beta (aka 1.6u10)? The class specified in the system property seems to be ignored. I noticed the package name in the system property name given in the URL above does not match the true package name of DOMServiceProvider (it's missing a ".java" in the doc--it should be "com.sun.java.browser.dom.DOMServiceProvider") and I tried that system property name as well, but that did not work either.
My DOMServiceProvider and DOMService classes are in the same JAR as the code that is executing "DOMService.getService(this)", so I know this is not a classpath issue. The behavior I am seeing is that the 2 system property names I tried (the one with and the one without the ".java." in it) are both ignored, and DOMService.getService(Object) always returns DOMService from the sun.plugin.dom package, not the one I specify in the system property.
So my question is: has this changed since Java 1.5/5.0? If yes, what's the new preferred method for swapping out the implementation of DOMService?