Hey all,
I just committed a change that affects the XML parser used by Castor
when (un)marshalling the descriptor files. Please comment if you have
any issues with this approach.
The goal of the change is to remove the dependency on Xerces in Pluto
1.2, and do it in such a way that we don't have to put the entire
castor.properties file in <tomcat>/shared/lib. By default, Pluto 1.2
instructs Castor to use JAXP, overriding whatever may be set in any
castor.properties file.
While I was at it, I also committed a change that allows the use of JAXP
with Pluto 1.1.x as well. By default Pluto 1.1.x *will not* use JAXP,
but if a user is running under JDK 1.5 and wants to use it, they will be
able to do so by setting a system property.
Chuck, if you are around and have a couple of cycles to spare, can you
pull the latest 1.1.x branch and give it a shot with Sakai? r543705
contains the patch. I just want to make sure that this change doesn't
hose your stuff :-)
Much appreciated,
Elliot
Elliot Metsger (JIRA) wrote:
[
https://issues.apache.org/jira/browse/PLUTO-347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Elliot Metsger resolved PLUTO-347. ----------------------------------
Resolution: Fixed
Added system property org.apache.pluto.useJaxp with a default value
of true. When true, Castor is instructed to use JAXP instead of the
parser defined by org.exolab.castor.parser. The reason this is
hard-coded versus using a castor.properties file is because the
castor.properties file would go into a shared classloader which may
adversely affect other applications that rely on Castor (for an
example see PLUTO-329).
In Pluto 1.2.x, the default value of org.apache.pluto.useJaxp is set
to "true", so Pluto will by default use JAXP. This means that we
shouldn't need to have XML libraries in <tomcat>/common/endorsed for
example. Pluto 1.2.x no longer has a dependency on Xerces or the
older XML apis.
In the Pluto 1.1.x branch (1.1.4+), the default value of
org.apache.pluto.useJaxp is set to "false", so by default Pluto will
behave as it always has - using XML libraries in
<tomcat>/common/endorsed.
The default value of org.apache.pluto.useJaxp can be overridden. The
user is responsible for ensuring the proper location and version of
the XML libraries.
Remove dependency on shared/lib xerces and xmlAPIs
--------------------------------------------------
Key: PLUTO-347 URL: https://issues.apache.org/jira/browse/PLUTO-347
Project: Pluto Issue Type: Improvement Affects Versions: 1.2.0
Reporter: Elliot Metsger Assignee: Elliot Metsger Fix For: 1.2.0
XML API's in shared/lib is causing uPortal some problems. With
Pluto 1.2.0 requiring Java 1.5, I think we can update to Castor 1.1
which supports using the JVM's XML parser, and remove the XML
libraries from shared/lib. See
http://castor.org/xml-faq.html#Is-it-true-that-the-use-of-Castor-XML-mandates-Xerces-as-XML-parser?