[jboss-svn-commits] JBL Code SVN: r32654 - labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/validation.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Mon Apr 26 08:39:19 EDT 2010
Author: tfennelly
Date: 2010-04-26 08:39:17 -0400 (Mon, 26 Apr 2010)
New Revision: 32654
Modified:
labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java
Log:
https://jira.jboss.org/jira/browse/JBESB-3290
Schema validation: DocumentBuilder can be reused between messages
Modified: labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java
===================================================================
--- labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java 2010-04-26 11:31:24 UTC (rev 32653)
+++ labs/jbossesb/branches/JBESB_4_7_CP/product/rosetta/src/org/jboss/soa/esb/actions/validation/SchemaValidationAction.java 2010-04-26 12:39:17 UTC (rev 32654)
@@ -1,12 +1,10 @@
package org.jboss.soa.esb.actions.validation;
-import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.io.StringReader;
import javax.xml.XMLConstants;
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Source;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
@@ -22,7 +20,6 @@
import org.jboss.soa.esb.message.Message;
import org.jboss.soa.esb.message.MessagePayloadProxy;
import org.jboss.soa.esb.util.ClassUtil;
-import org.w3c.dom.Document;
import org.xml.sax.SAXException;
/**
@@ -61,11 +58,6 @@
private String schemaLanguage;
/**
- * DocumentBuilderFactory.
- */
- private DocumentBuilderFactory docBuilderFactory;
-
- /**
* The schema that will be used for validation.
*/
private Schema schema;
@@ -87,7 +79,6 @@
schemaLanguage = config.getAttribute("schemaLanguage", XMLConstants.W3C_XML_SCHEMA_NS_URI);
payloadProxy = new MessagePayloadProxy(config);
- docBuilderFactory = createDocumentBuilderFactory();
schema = createSchema(xsd);
}
@@ -112,7 +103,7 @@
try
{
final Validator validator = schema.newValidator();
- validator.validate(createDomSourceFromPayload(xml));
+ validator.validate(createSourceFromPayload(xml));
}
catch (final SAXException e)
{
@@ -160,26 +151,9 @@
*
* @throws ActionProcessingException If an exception occurs while trying to create the DOMSource.
*/
- private DOMSource createDomSourceFromPayload(final String xml) throws ActionProcessingException
+ private Source createSourceFromPayload(final String xml) throws ActionProcessingException
{
- try
- {
- final DocumentBuilder parser = docBuilderFactory.newDocumentBuilder();
- final Document document = parser.parse(new ByteArrayInputStream(xml.getBytes()));
- return new DOMSource(document);
- }
- catch (final ParserConfigurationException e)
- {
- throw new ActionProcessingException(e.getMessage(), e);
- }
- catch (final SAXException e)
- {
- throw new ActionProcessingException(e.getMessage(), e);
- }
- catch (final IOException e)
- {
- throw new ActionProcessingException(e.getMessage(), e);
- }
+ return new StreamSource(new StringReader(xml));
}
/**
@@ -202,16 +176,4 @@
throw new ConfigurationException("Could not create a validator for schema '" + xsd + "'", e);
}
}
-
- /**
- * Creates a DocumentBuilderFactory that is namespace aware.
- *
- * @return {@link DocumentBuilderFactory} that is namespace aware.
- */
- private DocumentBuilderFactory createDocumentBuilderFactory()
- {
- final DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
- docBuilderFactory.setNamespaceAware(true);
- return docBuilderFactory;
- }
}
More information about the jboss-svn-commits
mailing list