[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