You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jd...@apache.org on 2006/08/04 21:29:52 UTC
svn commit: r428849 - in /geronimo/sandbox/svkmerge/trunk: ./
applications/console/console-standard/src/java/org/apache/geronimo/console/car/
applications/console/console-standard/src/java/org/apache/geronimo/console/configmanager/
applications/console...
Author: jdillon
Date: Fri Aug 4 12:29:51 2006
New Revision: 428849
URL: http://svn.apache.org/viewvc?rev=428849&view=rev
Log:
r665@jason-dillons-computer (orig r428843): dain | 2006-08-04 11:43:59 -0700
GERONIMO-2224 Add a geronimo specific system property for controlling dom, sax, and transformer creation
Added:
geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/util/XmlUtil.java
geronimo/sandbox/svkmerge/trunk/modules/kernel/src/test/org/apache/geronimo/kernel/util/
geronimo/sandbox/svkmerge/trunk/modules/kernel/src/test/org/apache/geronimo/kernel/util/XmlUtilTest.java
Modified:
geronimo/sandbox/svkmerge/trunk/ (props changed)
geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java
geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/configmanager/DeploymentPortlet.java
geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java
geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/jmsmanager/wizard/JMSProviderData.java
geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/bea/WebLogic81DatabaseConverter.java
geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/jboss/JBoss4DatabaseConverter.java
geronimo/sandbox/svkmerge/trunk/modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/ConfigIDExtractor.java
geronimo/sandbox/svkmerge/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/xml/ParserFactoryImpl.java
geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/DomConverter.java
geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/XStreamGBeanState.java
geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java
geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java
geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/repository/AbstractRepository.java
geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/util/PluginRepositoryExporter.java
geronimo/sandbox/svkmerge/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/ServerOverrideTest.java
Propchange: geronimo/sandbox/svkmerge/trunk/
------------------------------------------------------------------------------
--- svk:merge (original)
+++ svk:merge Fri Aug 4 12:29:51 2006
@@ -1,2 +1,2 @@
13f79535-47bb-0310-9956-ffa450edef68:/geronimo/sandbox/svkmerge/m2migration:419395
-13f79535-47bb-0310-9956-ffa450edef68:/geronimo/trunk:428535
+13f79535-47bb-0310-9956-ffa450edef68:/geronimo/trunk:428843
Modified: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java (original)
+++ geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/car/GeronimoAsMavenServlet.java Fri Aug 4 12:29:51 2006
@@ -46,6 +46,7 @@
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.KernelRegistry;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.apache.geronimo.kernel.config.ConfigurationInfo;
import org.apache.geronimo.kernel.config.ConfigurationManager;
import org.apache.geronimo.kernel.config.ConfigurationStore;
@@ -198,7 +199,7 @@
private void generateConfigFile(HttpServletRequest request, Kernel kernel, PrintWriter out) throws ParserConfigurationException, NoSuchStoreException, TransformerException {
ConfigurationManager mgr = ConfigurationUtil.getConfigurationManager(kernel);
PluginInstaller installer = getInstaller(kernel);
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory factory = XmlUtil.newDocumentBuilderFactory();
factory.setNamespaceAware(true);
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
@@ -260,7 +261,7 @@
String repo = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath()+request.getServletPath();
if(!repo.endsWith("/")) repo += "/";
createText(doc, root, "default-repository", repo);
- TransformerFactory xfactory = TransformerFactory.newInstance();
+ TransformerFactory xfactory = XmlUtil.newTransformerFactory();
Transformer xform = xfactory.newTransformer();
xform.setOutputProperty(OutputKeys.INDENT, "yes");
xform.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
@@ -282,7 +283,7 @@
return;
}
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory factory = XmlUtil.newDocumentBuilderFactory();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.newDocument();
Element root = doc.createElement("metadata");
@@ -300,7 +301,7 @@
Artifact artifact = artifacts[i];
createText(doc, versions, "version", artifact.getVersion().toString());
}
- TransformerFactory xfactory = TransformerFactory.newInstance();
+ TransformerFactory xfactory = XmlUtil.newTransformerFactory();
Transformer xform = xfactory.newTransformer();
xform.setOutputProperty(OutputKeys.INDENT, "yes");
xform.transform(new DOMSource(doc), new StreamResult(writer));
Modified: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/configmanager/DeploymentPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/configmanager/DeploymentPortlet.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/configmanager/DeploymentPortlet.java (original)
+++ geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/configmanager/DeploymentPortlet.java Fri Aug 4 12:29:51 2006
@@ -38,7 +38,6 @@
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
@@ -49,6 +48,7 @@
import org.apache.geronimo.deployment.plugin.ConfigIDExtractor;
import org.apache.geronimo.common.DeploymentException;
import org.apache.geronimo.kernel.repository.Artifact;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.apache.geronimo.upgrade.Upgrade1_0To1_1;
import org.w3c.dom.Document;
@@ -164,7 +164,7 @@
byte[] plan = new byte[(int) planFile.length()];
fis = new FileInputStream(planFile);
fis.read(plan);
- DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ DocumentBuilder documentBuilder = XmlUtil.newDocumentBuilderFactory().newDocumentBuilder();
Document doc = documentBuilder.parse(new ByteArrayInputStream(plan));
// v1.1 switched from configId to moduleId
String configId = doc.getDocumentElement().getAttribute("configId");
Modified: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java (original)
+++ geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/databasemanager/wizard/DatabasePoolPortlet.java Fri Aug 4 12:29:51 2006
@@ -96,6 +96,7 @@
import org.apache.geronimo.kernel.repository.ListableRepository;
import org.apache.geronimo.kernel.repository.Repository;
import org.apache.geronimo.kernel.repository.WriteableRepository;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.apache.geronimo.management.geronimo.JCAManagedConnectionFactory;
import org.apache.geronimo.management.geronimo.ResourceAdapterModule;
import org.w3c.dom.Document;
@@ -551,7 +552,7 @@
private ResourceAdapterParams loadConfigPropertiesByAbstractName(PortletRequest request, String abstractName) {
ResourceAdapterModule module = (ResourceAdapterModule) PortletManager.getManagedBean(request, new AbstractName(URI.create(abstractName)));
String dd = module.getDeploymentDescriptor();
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory factory = XmlUtil.newDocumentBuilderFactory();
factory.setValidating(false);
factory.setNamespaceAware(true);
try {
Modified: geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/jmsmanager/wizard/JMSProviderData.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/jmsmanager/wizard/JMSProviderData.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/jmsmanager/wizard/JMSProviderData.java (original)
+++ geronimo/sandbox/svkmerge/trunk/applications/console/console-standard/src/java/org/apache/geronimo/console/jmsmanager/wizard/JMSProviderData.java Fri Aug 4 12:29:51 2006
@@ -36,6 +36,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.geronimo.console.util.PortletManager;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -218,7 +219,7 @@
try {
while((entry = in.getNextEntry()) != null) {
if(entry.getName().equals("META-INF/ra.xml")) {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory factory = XmlUtil.newDocumentBuilderFactory();
factory.setValidating(false);
DocumentBuilder builder = factory.newDocumentBuilder();
doc = builder.parse(in);
Modified: geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/bea/WebLogic81DatabaseConverter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/bea/WebLogic81DatabaseConverter.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/bea/WebLogic81DatabaseConverter.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/bea/WebLogic81DatabaseConverter.java Fri Aug 4 12:29:51 2006
@@ -33,6 +33,7 @@
import org.apache.geronimo.converter.JDBCPool;
import org.apache.geronimo.converter.XADatabasePool;
import org.apache.geronimo.converter.AbstractDatabasePool;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -58,7 +59,7 @@
List local = new ArrayList();
List xa = new ArrayList();
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory factory = XmlUtil.newDocumentBuilderFactory();
factory.setValidating(false);
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Modified: geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/jboss/JBoss4DatabaseConverter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/jboss/JBoss4DatabaseConverter.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/jboss/JBoss4DatabaseConverter.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/converter/src/java/org/apache/geronimo/converter/jboss/JBoss4DatabaseConverter.java Fri Aug 4 12:29:51 2006
@@ -28,6 +28,7 @@
import org.apache.geronimo.converter.XADatabasePool;
import org.apache.geronimo.converter.AbstractDatabasePool;
import org.apache.geronimo.converter.DOMUtils;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -47,7 +48,7 @@
List local = new ArrayList();
List xa = new ArrayList();
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory factory = XmlUtil.newDocumentBuilderFactory();
factory.setValidating(false);
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Modified: geronimo/sandbox/svkmerge/trunk/modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/ConfigIDExtractor.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/ConfigIDExtractor.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/ConfigIDExtractor.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/deploy-jsr88/src/java/org/apache/geronimo/deployment/plugin/ConfigIDExtractor.java Fri Aug 4 12:29:51 2006
@@ -36,6 +36,7 @@
import org.apache.geronimo.common.FileUtils;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.Version;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.xml.sax.Attributes;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
@@ -207,7 +208,7 @@
}
private static String extractModuleIdFromPlan(Reader plan) throws IOException {
- SAXParserFactory factory = SAXParserFactory.newInstance();
+ SAXParserFactory factory = XmlUtil.newSAXParserFactory();
factory.setNamespaceAware(true);
factory.setValidating(false);
try {
Modified: geronimo/sandbox/svkmerge/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/xml/ParserFactoryImpl.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/xml/ParserFactoryImpl.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/xml/ParserFactoryImpl.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/deployment/src/java/org/apache/geronimo/deployment/xml/ParserFactoryImpl.java Fri Aug 4 12:29:51 2006
@@ -25,6 +25,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.xml.sax.EntityResolver;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXParseException;
@@ -44,7 +45,7 @@
public ParserFactoryImpl(EntityResolver entityResolver) {
this.entityResolver = entityResolver;
- factory = DocumentBuilderFactory.newInstance();
+ factory = XmlUtil.newDocumentBuilderFactory();
//sets "http://xml.org/sax/features/namespaces"
factory.setNamespaceAware(true);
//sets "http://xml.org/sax/features/validation"
Modified: geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/DomConverter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/DomConverter.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/DomConverter.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/DomConverter.java Fri Aug 4 12:29:51 2006
@@ -30,6 +30,7 @@
import com.thoughtworks.xstream.io.xml.DomWriter;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import org.apache.geronimo.kernel.util.XmlUtil;
/**
* @version $Rev$ $Date$
@@ -53,7 +54,7 @@
}
public Object unmarshal(HierarchicalStreamReader reader, UnmarshallingContext unmarshallingContext) {
- DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory documentBuilderFactory = XmlUtil.newDocumentBuilderFactory();
DocumentBuilder documentBuilder = null;
try {
documentBuilder = documentBuilderFactory.newDocumentBuilder();
Modified: geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/XStreamGBeanState.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/XStreamGBeanState.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/XStreamGBeanState.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/config/xstream/XStreamGBeanState.java Fri Aug 4 12:29:51 2006
@@ -33,6 +33,7 @@
import org.apache.geronimo.gbean.GBeanData;
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.kernel.Naming;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.apache.geronimo.kernel.config.InvalidConfigException;
import org.apache.geronimo.kernel.config.GBeanState;
import org.apache.geronimo.kernel.repository.Environment;
@@ -125,7 +126,7 @@
private static Element storeGBeans(List gbeans) throws IOException {
GBeanData[] gbeanDatas = (GBeanData[]) gbeans.toArray(new GBeanData[gbeans.size()]);
- DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory documentBuilderFactory = XmlUtil.newDocumentBuilderFactory();
DocumentBuilder documentBuilder = null;
try {
documentBuilder = documentBuilderFactory.newDocumentBuilder();
Added: geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/util/XmlUtil.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/util/XmlUtil.java?rev=428849&view=auto
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/util/XmlUtil.java (added)
+++ geronimo/sandbox/svkmerge/trunk/modules/kernel/src/java/org/apache/geronimo/kernel/util/XmlUtil.java Fri Aug 4 12:29:51 2006
@@ -0,0 +1,112 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.kernel.util;
+
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.FactoryConfigurationError;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
+
+import org.apache.geronimo.kernel.ClassLoading;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public final class XmlUtil {
+ public static final String DOCUMENT_BUILDER_FACTORY = "geronimo.xml.parsers.DocumentBuilderFactory";
+ public static final String SAX_PARSER_FACTORY = "geronimo.xml.parsers.SAXParserFactory";
+ public static final String TRANSFORMER_FACTORY = "geronimo.xml.transform.TransformerFactory";
+
+ private XmlUtil() {
+ }
+
+ public static DocumentBuilderFactory newDocumentBuilderFactory() {
+ return newDocumentBuilderFactory(getClassLoader());
+ }
+
+ public static DocumentBuilderFactory newDocumentBuilderFactory(ClassLoader classLoader) {
+ String documentBuilderName = getSystemProperty(DOCUMENT_BUILDER_FACTORY);
+ if (documentBuilderName != null && documentBuilderName.length() != 0) {
+ try {
+ Class documentBuilderClass = ClassLoading.loadClass(documentBuilderName, classLoader);
+ DocumentBuilderFactory documentBuilderFactory = (DocumentBuilderFactory) documentBuilderClass.newInstance();
+ return documentBuilderFactory;
+ } catch (Exception e) {
+ throw new FactoryConfigurationError(e, "Unable to create DocumentBuilderFactory " +
+ documentBuilderName + ", which was specified in the " + DOCUMENT_BUILDER_FACTORY + " system property");
+ }
+ }
+
+ return DocumentBuilderFactory.newInstance();
+ }
+
+ public static SAXParserFactory newSAXParserFactory() {
+ return newSAXParserFactory(getClassLoader());
+ }
+
+ public static SAXParserFactory newSAXParserFactory(ClassLoader classLoader) {
+ String saxParserName = getSystemProperty(SAX_PARSER_FACTORY);
+ if (saxParserName != null && saxParserName.length() != 0) {
+ try {
+ Class saxParserClass = ClassLoading.loadClass(saxParserName, classLoader);
+ SAXParserFactory saxParserFactory = (SAXParserFactory) saxParserClass.newInstance();
+ return saxParserFactory;
+ } catch (Exception e) {
+ throw new FactoryConfigurationError(e, "Unable to create SAXParserFactory " +
+ saxParserName + ", which was specified in the " + SAX_PARSER_FACTORY + " system property");
+ }
+ }
+
+ return SAXParserFactory.newInstance();
+ }
+
+ public static TransformerFactory newTransformerFactory() {
+ return newTransformerFactory(getClassLoader());
+ }
+
+ public static TransformerFactory newTransformerFactory(ClassLoader classLoader) {
+ String transformerName = getSystemProperty(TRANSFORMER_FACTORY);
+ if (transformerName != null && transformerName.length() != 0) {
+ try {
+ Class transformerClass = ClassLoading.loadClass(transformerName, classLoader);
+ TransformerFactory transformerFactory = (TransformerFactory) transformerClass.newInstance();
+ return transformerFactory;
+ } catch (Exception e) {
+ throw new TransformerFactoryConfigurationError(e, "Unable to create TransformerFactory " +
+ transformerName + ", which was specified in the " + TRANSFORMER_FACTORY + " system property");
+ }
+ }
+
+ return TransformerFactory.newInstance();
+ }
+
+ private static ClassLoader getClassLoader() {
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ if (classLoader != null) {
+ return classLoader;
+ } else {
+ return XmlUtil.class.getClassLoader();
+ }
+ }
+
+ private static String getSystemProperty(String key) {
+ String value = System.getProperty(key);
+ if (value != null) value = value.trim();
+ return value;
+ }
+}
Added: geronimo/sandbox/svkmerge/trunk/modules/kernel/src/test/org/apache/geronimo/kernel/util/XmlUtilTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/kernel/src/test/org/apache/geronimo/kernel/util/XmlUtilTest.java?rev=428849&view=auto
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/kernel/src/test/org/apache/geronimo/kernel/util/XmlUtilTest.java (added)
+++ geronimo/sandbox/svkmerge/trunk/modules/kernel/src/test/org/apache/geronimo/kernel/util/XmlUtilTest.java Fri Aug 4 12:29:51 2006
@@ -0,0 +1,93 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.kernel.util;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.SAXParserFactory;
+import javax.xml.transform.TransformerFactory;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class XmlUtilTest extends TestCase {
+ private String documentBuilderClassName;
+ private String saxParserClassName;
+ private String transformerClassName;
+
+ public void testDocumentBuilderDefault() {
+ System.getProperties().remove(XmlUtil.DOCUMENT_BUILDER_FACTORY);
+ assertNull(System.getProperty(XmlUtil.DOCUMENT_BUILDER_FACTORY));
+
+ DocumentBuilderFactory documentBuilderFactory = XmlUtil.newDocumentBuilderFactory();
+ String className = documentBuilderFactory.getClass().getName();
+ assertEquals(documentBuilderClassName, className);
+ }
+
+ public void testDocumentBuilderOverride() {
+ System.setProperty(XmlUtil.DOCUMENT_BUILDER_FACTORY, documentBuilderClassName);
+ assertEquals(documentBuilderClassName, System.getProperty(XmlUtil.DOCUMENT_BUILDER_FACTORY));
+
+ DocumentBuilderFactory documentBuilderFactory = XmlUtil.newDocumentBuilderFactory();
+ String className = documentBuilderFactory.getClass().getName();
+ assertEquals(documentBuilderClassName, className);
+ }
+
+ public void testSaxparserDefault() {
+ System.getProperties().remove(XmlUtil.SAX_PARSER_FACTORY);
+ assertNull(System.getProperty(XmlUtil.SAX_PARSER_FACTORY));
+
+ SAXParserFactory saxParserFactory = XmlUtil.newSAXParserFactory();
+ String className = saxParserFactory.getClass().getName();
+ assertEquals(saxParserClassName, className);
+ }
+
+ public void testSAXParserOverride() {
+ System.setProperty(XmlUtil.SAX_PARSER_FACTORY, saxParserClassName);
+ assertEquals(saxParserClassName, System.getProperty(XmlUtil.SAX_PARSER_FACTORY));
+
+ SAXParserFactory saxParserFactory = XmlUtil.newSAXParserFactory();
+ String className = saxParserFactory.getClass().getName();
+ assertEquals(saxParserClassName, className);
+ }
+
+ public void testTransformerDefault() {
+ System.getProperties().remove(XmlUtil.TRANSFORMER_FACTORY);
+ assertNull(System.getProperty(XmlUtil.TRANSFORMER_FACTORY));
+
+ TransformerFactory transformerFactory = XmlUtil.newTransformerFactory();
+ String className = transformerFactory.getClass().getName();
+ assertEquals(transformerClassName, className);
+ }
+
+ public void testTransformerOverride() {
+ System.setProperty(XmlUtil.TRANSFORMER_FACTORY, transformerClassName);
+ assertEquals(transformerClassName, System.getProperty(XmlUtil.TRANSFORMER_FACTORY));
+
+ TransformerFactory transformerFactory = XmlUtil.newTransformerFactory();
+ String className = transformerFactory.getClass().getName();
+ assertEquals(transformerClassName, className);
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ documentBuilderClassName = DocumentBuilderFactory.newInstance().getClass().getName();
+ saxParserClassName = SAXParserFactory.newInstance().getClass().getName();
+ transformerClassName = TransformerFactory.newInstance().getClass().getName();
+ }
+}
Modified: geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/configuration/LocalAttributeManager.java Fri Aug 4 12:29:51 2006
@@ -33,6 +33,7 @@
import org.apache.geronimo.kernel.config.Configuration;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.InvalidGBeanException;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.apache.geronimo.system.serverinfo.ServerInfo;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -365,7 +366,7 @@
FileInputStream fis = new FileInputStream(attributeFile);
InputSource in = new InputSource(fis);
in.setSystemId(attributeFile.toString());
- DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory dFactory = XmlUtil.newDocumentBuilderFactory();
try {
dFactory.setValidating(true);
dFactory.setNamespaceAware(true);
@@ -453,7 +454,7 @@
}
private static void saveXmlToFile(File file, ServerOverride serverOverride) {
- DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory dFactory = XmlUtil.newDocumentBuilderFactory();
dFactory.setValidating(true);
dFactory.setNamespaceAware(true);
dFactory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
@@ -464,7 +465,7 @@
try {
Document doc = dFactory.newDocumentBuilder().newDocument();
serverOverride.writeXml(doc);
- TransformerFactory xfactory = TransformerFactory.newInstance();
+ TransformerFactory xfactory = XmlUtil.newTransformerFactory();
Transformer xform = xfactory.newTransformer();
xform.setOutputProperty(OutputKeys.INDENT, "yes");
xform.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
Modified: geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/plugin/PluginInstallerGBean.java Fri Aug 4 12:29:51 2006
@@ -75,6 +75,7 @@
import org.apache.geronimo.kernel.repository.Version;
import org.apache.geronimo.kernel.repository.WritableListableRepository;
import org.apache.geronimo.kernel.InvalidGBeanException;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.apache.geronimo.system.configuration.ConfigurationStoreUtil;
import org.apache.geronimo.system.configuration.GBeanOverride;
import org.apache.geronimo.system.configuration.PluginAttributeStore;
@@ -269,7 +270,7 @@
entry = new JarEntry(entry.getName());
out.putNextEntry(entry);
Document doc = writePluginMetadata(metadata);
- TransformerFactory xfactory = TransformerFactory.newInstance();
+ TransformerFactory xfactory = XmlUtil.newTransformerFactory();
Transformer xform = xfactory.newTransformer();
xform.setOutputProperty(OutputKeys.INDENT, "yes");
xform.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
@@ -313,7 +314,7 @@
}
}
Document doc = writePluginMetadata(metadata);
- TransformerFactory xfactory = TransformerFactory.newInstance();
+ TransformerFactory xfactory = XmlUtil.newTransformerFactory();
Transformer xform = xfactory.newTransformer();
xform.setOutputProperty(OutputKeys.INDENT, "yes");
xform.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
@@ -1055,7 +1056,7 @@
return null;
}
// Don't use the validating parser that we normally do
- DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+ DocumentBuilder builder = XmlUtil.newDocumentBuilderFactory().newDocumentBuilder();
Document doc = builder.parse(in);
Element root = doc.getDocumentElement();
NodeList list = root.getElementsByTagName("versions");
@@ -1091,7 +1092,7 @@
*/
private void readNameAndID(File xml, Map plugins) {
try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
+ SAXParserFactory factory = XmlUtil.newSAXParserFactory();
SAXParser parser = factory.newSAXParser();
PluginNameIDHandler handler = new PluginNameIDHandler();
parser.parse(xml, handler);
@@ -1112,7 +1113,7 @@
*/
private void readNameAndID(InputStream xml, Map plugins) {
try {
- SAXParserFactory factory = SAXParserFactory.newInstance();
+ SAXParserFactory factory = XmlUtil.newSAXParserFactory();
SAXParser parser = factory.newSAXParser();
PluginNameIDHandler handler = new PluginNameIDHandler();
parser.parse(xml, handler);
@@ -1243,7 +1244,7 @@
* @throws ParserConfigurationException
*/
private static DocumentBuilder createDocumentBuilder() throws ParserConfigurationException {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory factory = XmlUtil.newDocumentBuilderFactory();
factory.setValidating(true);
factory.setNamespaceAware(true);
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
Modified: geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/repository/AbstractRepository.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/repository/AbstractRepository.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/repository/AbstractRepository.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/repository/AbstractRepository.java Fri Aug 4 12:29:51 2006
@@ -41,6 +41,7 @@
import org.apache.geronimo.kernel.repository.ArtifactTypeHandler;
import org.apache.geronimo.kernel.repository.FileWriteMonitor;
import org.apache.geronimo.kernel.repository.WriteableRepository;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.apache.geronimo.system.serverinfo.ServerInfo;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -125,7 +126,7 @@
try {
if (is != null) {
InputSource in = new InputSource(is);
- DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory dfactory = XmlUtil.newDocumentBuilderFactory();
dfactory.setNamespaceAware(true);
try {
Document doc = dfactory.newDocumentBuilder().parse(in);
Modified: geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/util/PluginRepositoryExporter.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/util/PluginRepositoryExporter.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/util/PluginRepositoryExporter.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/system/src/java/org/apache/geronimo/system/util/PluginRepositoryExporter.java Fri Aug 4 12:29:51 2006
@@ -40,6 +40,7 @@
import org.apache.geronimo.kernel.config.IOUtil;
import org.apache.geronimo.kernel.repository.Artifact;
import org.apache.geronimo.kernel.repository.Version;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.apache.geronimo.system.configuration.RepositoryConfigurationStore;
import org.apache.geronimo.system.configuration.ConfigurationStoreUtil;
import org.apache.geronimo.system.configuration.GBeanOverride;
@@ -237,7 +238,7 @@
}
Map plugins = installer.getInstalledPlugins();
Document doc = generateConfigFile(installer, plugins.values());
- TransformerFactory xfactory = TransformerFactory.newInstance();
+ TransformerFactory xfactory = XmlUtil.newTransformerFactory();
Transformer xform = xfactory.newTransformer();
xform.setOutputProperty(OutputKeys.INDENT, "yes");
xform.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
@@ -291,7 +292,7 @@
private void updateMavenMetadata(File dir, Artifact artifact) throws TransformerException, IOException, SAXException, ParserConfigurationException {
File mavenFile = new File(dir, "maven-metadata.xml");
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory factory = XmlUtil.newDocumentBuilderFactory();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc;
if(mavenFile.exists()) {
@@ -323,7 +324,7 @@
newVersion.appendChild(doc.createTextNode(artifact.getVersion().toString()));
versionsElement.appendChild(newVersion);
}
- TransformerFactory xfactory = TransformerFactory.newInstance();
+ TransformerFactory xfactory = XmlUtil.newTransformerFactory();
Transformer xform = xfactory.newTransformer();
xform.setOutputProperty(OutputKeys.INDENT, "yes");
xform.transform(new DOMSource(doc), new StreamResult(mavenFile));
@@ -344,7 +345,7 @@
private Document generateConfigFile(PluginInstaller installer, Collection plugins) throws ParserConfigurationException {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory factory = XmlUtil.newDocumentBuilderFactory();
factory.setNamespaceAware(true);
factory.setValidating(true);
factory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
Modified: geronimo/sandbox/svkmerge/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/ServerOverrideTest.java
URL: http://svn.apache.org/viewvc/geronimo/sandbox/svkmerge/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/ServerOverrideTest.java?rev=428849&r1=428848&r2=428849&view=diff
==============================================================================
--- geronimo/sandbox/svkmerge/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/ServerOverrideTest.java (original)
+++ geronimo/sandbox/svkmerge/trunk/modules/system/src/test/org/apache/geronimo/system/configuration/ServerOverrideTest.java Fri Aug 4 12:29:51 2006
@@ -20,6 +20,7 @@
import org.apache.geronimo.gbean.AbstractNameQuery;
import org.apache.geronimo.gbean.ReferencePatterns;
import org.apache.geronimo.kernel.repository.Artifact;
+import org.apache.geronimo.kernel.util.XmlUtil;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -31,13 +32,11 @@
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.OutputKeys;
-import javax.xml.transform.TransformerException;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.dom.DOMSource;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
-import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
@@ -282,7 +281,7 @@
}
private Element parseXml(InputStream in, String name) throws Exception {
- DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory documentBuilderFactory = XmlUtil.newDocumentBuilderFactory();
Document doc = documentBuilderFactory.newDocumentBuilder().parse(in);
Element elem = doc.getDocumentElement();
if(elem.getNodeName().equals(name)) {
@@ -293,14 +292,14 @@
}
private Document createDocument() throws ParserConfigurationException {
- DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilderFactory dFactory = XmlUtil.newDocumentBuilderFactory();
dFactory.setValidating(false);
return dFactory.newDocumentBuilder().newDocument();
}
private Element readElement(Element e, String name) throws Exception {
ByteArrayOutputStream out = new ByteArrayOutputStream();
- TransformerFactory xfactory = TransformerFactory.newInstance();
+ TransformerFactory xfactory = XmlUtil.newTransformerFactory();
Transformer xform = xfactory.newTransformer();
xform.setOutputProperty(OutputKeys.INDENT, "yes");
xform.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");