As a follow up, we have a bit more information about our XML woes in Equinox on
J9. In trying to take the fix-the-manifests approach, we were still left with
the problem of the JAXP API classloader design. When JAXP factories load
classes they use the current context classloader to do this. Without anything
else to change it, the thread's current context classloader in Equinox is
usually DefaultClassLoader (the OSGi framework-level classloader, I think). If
I understand rightly, this classloader follows the standard parent delegation
scheme and delegates to its parent, which would be the URLClassLoader in
Equinox Main, whose parent is one of the three JRE classloaders. J9 does have
a bootclasspath override (-Xbootclasspath/p:{your-libraries-here}), which works
well on 32-bit Windows, but seems to be ignored on AIX.
The net result is we don't have a good way of forcing third party libraries
(like Log4J) to get their XML parsing needs taken care of by our bundles of
javax.xml, Xerces and Xalan. Consequently we started to take the approach of
making our stack and our code live properly with what's available in the JRE.
In many cases, this is a problem of eliminating the use of convenience methods
in the Apache libraries that now have JAXP and JAXB equivalents. In some cases
we've had to patch some of the libraries we use (like Apache Muse) to make this
work. Early results seem promising.
Regards,
Michael
.
The contents of this e-mail are intended for the named addressee only. It
contains information that may be confidential. Unless you are the named
addressee or an authorized designee, you may not copy or use it, or disclose it
to anyone else. If you received it in error please notify us immediately and
then destroy it.
_______________________________________________
equinox-dev mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/equinox-dev