Use the proper APIs to create and interact with builders.


git-svn-id: https://svn.apache.org/repos/asf/synapse/trunk@1524357 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/ServiceDynamicLoadbalanceEndpointFactory.java b/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/ServiceDynamicLoadbalanceEndpointFactory.java
index 47af074..86fbe1b 100644
--- a/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/ServiceDynamicLoadbalanceEndpointFactory.java
+++ b/java/modules/core/src/main/java/org/apache/synapse/config/xml/endpoints/ServiceDynamicLoadbalanceEndpointFactory.java
@@ -20,7 +20,8 @@
 
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.synapse.SynapseConstants;
 import org.apache.synapse.config.xml.XMLConfigConstants;
 import org.apache.synapse.config.xml.endpoints.utils.LoadbalanceAlgorithmFactory;
@@ -100,9 +101,9 @@
                 configuration = System.getProperty(configuration.substring("$system:".length()));
             }
             // Load the file
-            StAXOMBuilder builder = null;
+            OMXMLParserWrapper builder = null;
             try {
-                builder = new StAXOMBuilder(new URL(configuration).openStream());
+                builder = OMXMLBuilderFactory.createOMBuilder(new URL(configuration).openStream());
             } catch (Exception e) {
                 handleException("Could not load ServiceDynamicLoadbalanceEndpoint configuration file " +
                                 configuration);
diff --git a/java/modules/core/src/main/java/org/apache/synapse/libraries/model/ArtifactFile.java b/java/modules/core/src/main/java/org/apache/synapse/libraries/model/ArtifactFile.java
index e321650..8925f43 100644
--- a/java/modules/core/src/main/java/org/apache/synapse/libraries/model/ArtifactFile.java
+++ b/java/modules/core/src/main/java/org/apache/synapse/libraries/model/ArtifactFile.java
@@ -20,13 +20,13 @@
 package org.apache.synapse.libraries.model;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.synapse.SynapseException;
 import org.apache.synapse.deployers.SynapseArtifactDeploymentException;
 
-import javax.xml.stream.XMLStreamException;
 import java.io.*;
 import java.util.Properties;
 
@@ -51,10 +51,10 @@
         InputStream xmlInputStream = null;
         try {
             xmlInputStream = new FileInputStream(f);
-            configurationElement = new StAXOMBuilder(xmlInputStream).getDocumentElement();
+            configurationElement = OMXMLBuilderFactory.createOMBuilder(xmlInputStream).getDocumentElement();
         } catch (FileNotFoundException e) {
                throw new SynapseArtifactDeploymentException("file not found at : " + fileXmlPath);
-        } catch (XMLStreamException e) {
+        } catch (OMException e) {
             throw new SynapseArtifactDeploymentException("Error while parsing the artifacts.xml file : " + fileXmlPath , e);
         } finally {
             if (xmlInputStream != null) {
diff --git a/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java b/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
index 8397fda..2e70a90 100644
--- a/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
+++ b/java/modules/core/src/main/java/org/apache/synapse/libraries/util/LibDeployerUtils.java
@@ -20,7 +20,8 @@
 
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axis2.deployment.DeploymentException;
 import org.apache.axis2.deployment.util.Utils;
 import org.apache.commons.logging.Log;
@@ -33,7 +34,6 @@
 import org.apache.synapse.libraries.model.SynapseLibrary;
 
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLStreamException;
 import java.io.*;
 import java.util.*;
 import java.util.zip.ZipEntry;
@@ -100,7 +100,7 @@
         InputStream xmlInputStream = null;
         try {
             xmlInputStream = new FileInputStream(f);
-            OMElement documentElement = new StAXOMBuilder(xmlInputStream).getDocumentElement();
+            OMElement documentElement = OMXMLBuilderFactory.createOMBuilder(xmlInputStream).getDocumentElement();
             if (documentElement == null) {
                 throw new SynapseArtifactDeploymentException("Document element for artifacts.xml is " +
                                                              "null. Can't build " +
@@ -117,7 +117,7 @@
         } catch (FileNotFoundException e) {
             throw new SynapseArtifactDeploymentException("artifacts.xml File cannot be loaded from " + libXmlPath, e);
 
-        } catch (XMLStreamException e) {
+        } catch (OMException e) {
             throw new SynapseArtifactDeploymentException("Error while parsing the artifacts.xml file ", e);
         } finally {
             if (xmlInputStream != null) {
@@ -238,7 +238,7 @@
     private static LibraryArtifact buildArtifact(SynapseLibrary library, InputStream artifactXmlStream, String directoryPath) {
         LibraryArtifact artifact = null;
         try {
-            OMElement artElement = new StAXOMBuilder(artifactXmlStream).getDocumentElement();
+            OMElement artElement = OMXMLBuilderFactory.createOMBuilder(artifactXmlStream).getDocumentElement();
 
             if (LibDeployerConstants.ARTIFACT.equals(artElement.getLocalName())) {
                 artifact = populateLibraryArtifact(artElement, directoryPath, null, library);
@@ -247,7 +247,7 @@
                           + library.getQName());
                 return null;
             }
-        } catch (XMLStreamException e) {
+        } catch (OMException e) {
             throw new SynapseArtifactDeploymentException("Error parsing artifact.xml for path : " +
                                                          directoryPath ,e);
         }
diff --git a/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediator.java b/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediator.java
index cb8ebe4..2f64d68 100644
--- a/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediator.java
+++ b/java/modules/extensions/src/main/java/org/apache/synapse/mediators/xquery/XQueryMediator.java
@@ -22,9 +22,11 @@
 import net.sf.saxon.xqj.SaxonXQDataSource;
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNode;
 import org.apache.axiom.om.OMText;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.om.util.ElementHelper;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.SynapseException;
@@ -41,8 +43,6 @@
 
 import javax.activation.DataHandler;
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
 import javax.xml.transform.dom.DOMSource;
 import java.io.IOException;
 import java.io.InputStream;
@@ -352,9 +352,8 @@
                     if (XQItemType.XQITEMKIND_DOCUMENT_ELEMENT == itemKind ||
                             XQItemType.XQITEMKIND_ELEMENT == itemKind ||
                             XQItemType.XQITEMKIND_DOCUMENT == itemKind) {
-                        StAXOMBuilder builder = new StAXOMBuilder(
-                                XMLInputFactory.newInstance().createXMLStreamReader(
-                                        new StringReader(xqItem.getItemAsString())));
+                        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(
+                                new StringReader(xqItem.getItemAsString()));
                         OMElement resultOM = builder.getDocumentElement();
                         if (resultOM != null) {
                             //replace the target node from the result
@@ -393,9 +392,8 @@
                     if (XQItemType.XQITEMKIND_DOCUMENT_ELEMENT == itemKind ||
                             XQItemType.XQITEMKIND_ELEMENT == itemKind ||
                             XQItemType.XQITEMKIND_DOCUMENT == itemKind) {
-                        StAXOMBuilder builder = new StAXOMBuilder(
-                                XMLInputFactory.newInstance().createXMLStreamReader(
-                                        new StringReader(xqItem.getItemAsString())));
+                        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(
+                                new StringReader(xqItem.getItemAsString()));
                         OMElement resultOM = builder.getDocumentElement();
                         if (resultOM != null) {
                             ((OMElement) destination).addChild(resultOM);
@@ -409,7 +407,7 @@
             resultSequence.close();  // closing the result sequence
         } catch (XQException e) {
             handleException("Error during the querying " + e.getMessage(), e);
-        } catch (XMLStreamException e) {
+        } catch (OMException e) {
             handleException("Error during retrieving  the Doument Node as  the result "
                     + e.getMessage(), e);
         }
diff --git a/java/modules/extensions/src/test/java/org/apache/synapse/mediators/throttle/ThrottleMediatorTest.java b/java/modules/extensions/src/test/java/org/apache/synapse/mediators/throttle/ThrottleMediatorTest.java
index 0d7af54..e0fd6c9 100644
--- a/java/modules/extensions/src/test/java/org/apache/synapse/mediators/throttle/ThrottleMediatorTest.java
+++ b/java/modules/extensions/src/test/java/org/apache/synapse/mediators/throttle/ThrottleMediatorTest.java
@@ -22,7 +22,8 @@
 import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMDocument;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.synapse.MessageContext;
 import org.apache.synapse.SynapseException;
@@ -34,10 +35,6 @@
 import org.apache.synapse.mediators.AbstractMediator;
 import org.wso2.throttle.*;
 
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamReader;
-import java.io.ByteArrayInputStream;
 import java.io.StringReader;
 
 /**
@@ -168,27 +165,14 @@
                 OMAbstractFactory.getSOAP11Factory().createOMDocument();
         omDoc.addChild(envelope);
 
-        envelope.getBody().addChild(createOMElement(payload));
+        envelope.getBody().addChild(OMXMLBuilderFactory.createOMBuilder(new StringReader(payload)).getDocumentElement());
 
         synMc.setEnvelope(envelope);
         return synMc;
     }
 
-    public static OMElement createOMElement(String xml) {
-        try {
-            XMLStreamReader reader = XMLInputFactory
-                    .newInstance().createXMLStreamReader(new StringReader(xml));
-            StAXOMBuilder builder = new StAXOMBuilder(reader);
-            return builder.getDocumentElement();
-        }
-        catch (XMLStreamException e) {
-            throw new RuntimeException(e);
-        }
-    }
-
     public void testMediate() throws Exception {
-        ByteArrayInputStream in = new ByteArrayInputStream(POLICY.getBytes());
-        StAXOMBuilder builder = new StAXOMBuilder(in);
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new StringReader(POLICY));
         ThrottleTestMediator throttleMediator = new ThrottleTestMediator();
         throttleMediator.setPolicyKey("throttlepolicy");
         MessageContext synCtx = createLightweightSynapseMessageContext("<empty/>");
@@ -222,10 +206,9 @@
     }
 
     public void testMediateWithInLineXML() throws Exception {
-        ByteArrayInputStream in = new ByteArrayInputStream(POLICY.getBytes());
-        StAXOMBuilder build = new StAXOMBuilder(in);
+        OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new StringReader(POLICY));
         ThrottleTestMediator throttleMediator = new ThrottleTestMediator();
-        throttleMediator.setInLinePolicy(build.getDocumentElement());
+        throttleMediator.setInLinePolicy(builder.getDocumentElement());
         MessageContext synCtx = createLightweightSynapseMessageContext("<empty/>");
         synCtx.setProperty(REMOTE_ADDR, "192.168.8.212");
         SynapseConfiguration synCfg = new SynapseConfiguration();
diff --git a/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/SynapseTestCase.java b/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/SynapseTestCase.java
index 18ec48e..dd25c9d 100644
--- a/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/SynapseTestCase.java
+++ b/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/SynapseTestCase.java
@@ -21,7 +21,8 @@
 
 import junit.framework.TestCase;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.logging.Log;
@@ -192,7 +193,7 @@
             if (in == null) {
                 fail("Cannot read sample descriptor file");
             }
-            StAXOMBuilder builder = new StAXOMBuilder(in);
+            OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(in);
             return builder.getDocumentElement();
         } catch (Exception e) {
             log.error("Error loading test descriptor", e);
diff --git a/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/StockQuoteSampleClient.java b/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/StockQuoteSampleClient.java
index da52c93..da82d60 100644
--- a/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/StockQuoteSampleClient.java
+++ b/java/modules/integration/src/test/java/org/apache/synapse/samples/framework/clients/StockQuoteSampleClient.java
@@ -20,7 +20,6 @@
 package org.apache.synapse.samples.framework.clients;
 
 import org.apache.axiom.om.*;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axiom.soap.SOAPFactory;
@@ -48,6 +47,8 @@
 import samples.common.StockQuoteHandler;
 
 import javax.xml.namespace.QName;
+
+import java.io.FileInputStream;
 import java.net.URL;
 import java.util.HashMap;
 import java.util.Map;
@@ -106,7 +107,7 @@
             log.info("Using WS-Security");
             serviceClient.engageModule("addressing");
             serviceClient.engageModule("rampart");
-            StAXOMBuilder builder = new StAXOMBuilder(policyKey);
+            OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(policyKey));
             Policy policy = PolicyEngine.getPolicy(builder.getDocumentElement());
             options.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
         }
diff --git a/java/modules/samples/src/main/java/samples/userguide/AMQPConsumer.java b/java/modules/samples/src/main/java/samples/userguide/AMQPConsumer.java
index da92aa4..8d89893 100644
--- a/java/modules/samples/src/main/java/samples/userguide/AMQPConsumer.java
+++ b/java/modules/samples/src/main/java/samples/userguide/AMQPConsumer.java
@@ -19,20 +19,19 @@
 package samples.userguide;
 
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axiom.soap.SOAPBody;
 import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 
 import javax.jms.*;
 import javax.naming.Context;
 import javax.naming.InitialContext;
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
-import java.io.ByteArrayInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
+import java.io.StringReader;
 import java.util.Iterator;
 import java.util.Properties;
 
@@ -172,12 +171,7 @@
      * @throws XMLStreamException on error
      */
     private void parseOrder(String payload) throws XMLStreamException {
-        InputStream is = new ByteArrayInputStream(payload.getBytes());
-        javax.xml.stream.XMLStreamReader parser = XMLInputFactory
-                .newInstance().createXMLStreamReader(is);
-        StAXSOAPModelBuilder builder = new StAXSOAPModelBuilder(parser,
-                null);
-        SOAPEnvelope envelope = (SOAPEnvelope) builder.getDocumentElement();
+        SOAPEnvelope envelope = OMXMLBuilderFactory.createSOAPModelBuilder(new StringReader(payload)).getSOAPEnvelope();
         // retrieve SOAP body
         SOAPBody soapBody = envelope.getBody();
         OMElement messageNode = soapBody.getFirstChildWithName(new QName(
diff --git a/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ListenerContext.java b/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ListenerContext.java
index 3951dd8..57a8272 100644
--- a/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ListenerContext.java
+++ b/java/modules/transports/core/nhttp/src/main/java/org/apache/synapse/transport/nhttp/ListenerContext.java
@@ -21,7 +21,8 @@
 
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMException;
+import org.apache.axiom.om.OMXMLBuilderFactory;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.description.Parameter;
@@ -165,13 +166,13 @@
         OMElement definitions;
         try {
             FileInputStream fis = new FileInputStream(fileName);
-            definitions = new StAXOMBuilder(fis).getDocumentElement();
+            definitions = OMXMLBuilderFactory.createOMBuilder(fis).getDocumentElement();
             assert definitions != null;
             definitions.build();
         } catch (FileNotFoundException e) {
             handleException("Priority configuration file cannot be found : " + fileName, e);
             return;
-        } catch (XMLStreamException e) {
+        } catch (OMException e) {
             handleException("Error parsing priority configuration xml file " + fileName, e);
             return;
         }