You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by an...@apache.org on 2011/11/09 16:31:54 UTC

svn commit: r1199797 - in /tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime: ./ src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/runtime/ src/main/java/org/apache/tuscany/sca/binding/jms/provider/ src/main/java/org/ap...

Author: antelder
Date: Wed Nov  9 15:31:53 2011
New Revision: 1199797

URL: http://svn.apache.org/viewvc?rev=1199797&view=rev
Log:
Update the JMS binding so that the message format may be either AXIOM or DOM. The default is still DOM as that minimizes the required dependencies but you can now configure it to use AXIOM OMElements which are optimized in some runtime environments

Added:
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/AXIOMXMLHelper.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/DOMXMLHelper.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelper.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelperFactory.java
Modified:
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/pom.xml
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/runtime/OperationSelectorJMSDefaultServiceInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLBytesMessageProcessor.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceProvider.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceProvider.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceProvider.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceProvider.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceInterceptor.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceProvider.java
    tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceProvider.java

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/pom.xml
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/pom.xml?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/pom.xml (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/pom.xml Wed Nov  9 15:31:53 2011
@@ -46,6 +46,13 @@
         </dependency>
 
         <dependency>
+            <groupId>org.apache.ws.commons.axiom</groupId>
+            <artifactId>axiom-api</artifactId>
+            <version>1.2.10</version>			
+            <scope>provided</scope>
+        </dependency>
+
+        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jms_1.1_spec</artifactId>
            <version>1.1.1</version>

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/runtime/OperationSelectorJMSDefaultServiceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/runtime/OperationSelectorJMSDefaultServiceInterceptor.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/runtime/OperationSelectorJMSDefaultServiceInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/operationselector/jmsdefault/runtime/OperationSelectorJMSDefaultServiceInterceptor.java Wed Nov  9 15:31:53 2011
@@ -31,20 +31,18 @@ import org.apache.tuscany.sca.binding.jm
 import org.apache.tuscany.sca.binding.jms.provider.JMSMessageProcessor;
 import org.apache.tuscany.sca.binding.jms.provider.JMSMessageProcessorUtil;
 import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSBytesXML;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSDefault;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSTextXML;
-import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl;
 import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.runtime.RuntimeComponentService;
 import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
 
 /**
  * Policy handler to handle PolicySet related to Logging with the QName
@@ -64,7 +62,7 @@ public class OperationSelectorJMSDefault
     private JMSMessageProcessor responseMessageProcessor;
     private RuntimeComponentService service;
     private List<Operation> serviceOperations;
-    private DOMHelper domHelper;
+    private XMLHelper xmlHelper;
 
     public OperationSelectorJMSDefaultServiceInterceptor(ExtensionPointRegistry registry, JMSResourceFactory jmsResourceFactory, RuntimeEndpoint endpoint) {
         super();
@@ -75,7 +73,7 @@ public class OperationSelectorJMSDefault
         this.responseMessageProcessor = JMSMessageProcessorUtil.getResponseMessageProcessor(registry, jmsBinding);
         this.service = (RuntimeComponentService)endpoint.getService();
         this.serviceOperations = service.getInterfaceContract().getInterface().getOperations();
-        this.domHelper = DOMHelper.getInstance(registry);
+        this.xmlHelper = XMLHelperFactory.createXMLHelper(registry);
     }
     
     public Message invoke(Message msg) {
@@ -118,10 +116,9 @@ public class OperationSelectorJMSDefault
                 }
             }
         } else if (jmsBinding.getRequestWireFormat() instanceof WireFormatJMSDefault
-                || jmsBinding.getRequestWireFormat() instanceof WireFormatJMSTextXML
-                || jmsBinding.getRequestWireFormat() instanceof WireFormatJMSBytesXML) {
+            || jmsBinding.getRequestWireFormat() instanceof WireFormatJMSTextXML
+            || jmsBinding.getRequestWireFormat() instanceof WireFormatJMSBytesXML) {
 
-            Node rootElement;
             String operationFromPayload;
 
             try {
@@ -129,10 +126,9 @@ public class OperationSelectorJMSDefault
                     String xmlPayload = ((TextMessage) jmsMsg).getText();
 
                     if (xmlPayload != null) {
-                        rootElement = domHelper.load(xmlPayload);
-                        Node firstChild = rootElement.getFirstChild();
-                        if (firstChild != null) {
-                            operationFromPayload = firstChild.getLocalName();
+                        Object rootElement = xmlHelper.load(xmlPayload);
+                        operationFromPayload = xmlHelper.getOperationName(rootElement);
+                        if (operationFromPayload != null) {
                             for (Operation op : serviceOperations) {
                                 if (op.getName().equals(operationFromPayload)) {
                                     operation = op;
@@ -148,10 +144,9 @@ public class OperationSelectorJMSDefault
                     ((BytesMessage) jmsMsg).reset();
 
                     if (bytes != null) {
-                        rootElement = domHelper.load(new String(bytes));
-                        Node firstChild = rootElement.getFirstChild();
-                        if (firstChild != null) {
-                            operationFromPayload = firstChild.getLocalName();
+                        Object rootElement = xmlHelper.load(new String(bytes));
+                        operationFromPayload = xmlHelper.getOperationName(rootElement);
+                        if (operationFromPayload != null) {
                             for (Operation op : serviceOperations) {
                                 if (op.getName().equals(operationFromPayload)) {
                                     operation = op;
@@ -164,8 +159,6 @@ public class OperationSelectorJMSDefault
 
             } catch (IOException e) {
                 //let's ignore this in case the client doesn't want to use a wrapped xml message
-            } catch (SAXException e) {
-                //let's ignore this in case the client doesn't want to use a wrapped xml message
             } catch (JMSException e) {
                 throw new JMSBindingException(e);
             }

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/DefaultMessageProcessor.java Wed Nov  9 15:31:53 2011
@@ -26,18 +26,14 @@ import javax.jms.JMSException;
 import javax.jms.Message;
 import javax.jms.Session;
 import javax.jms.TextMessage;
-import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.JMSBindingException;
-import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.interfacedef.util.FaultException;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
 
 /**
  * MessageProcessor for sending/receiving XML over javax.jms.TextMessage or javax.jms.BytesMessage 
@@ -50,11 +46,11 @@ import org.xml.sax.SAXException;
 public class DefaultMessageProcessor extends AbstractMessageProcessor {
     private static final Logger logger = Logger.getLogger(DefaultMessageProcessor.class.getName());
 
-    private DOMHelper domHelper;
+    private XMLHelper xmlHelper;
 
     public DefaultMessageProcessor(JMSBinding jmsBinding, ExtensionPointRegistry registry) {
         super(jmsBinding);
-        this.domHelper = DOMHelper.getInstance(registry);
+        this.xmlHelper = XMLHelperFactory.createXMLHelper(registry);
     }
     
     // inherited methods that don't do anything useful
@@ -79,31 +75,20 @@ public class DefaultMessageProcessor ext
     
     // handle text messages
     
-    public Object extractPayloadFromJMSTextMessage(Message msg, Node wrapper) {
+    public Object extractPayloadFromJMSTextMessage(Message msg, Object wrapper) {
         if (msg instanceof TextMessage) {
             try {
                 String xml = ((TextMessage) msg).getText();
 
                 Object os;
                 if (xml != null && xml.length() > 0) {
-                    os = domHelper.load(xml);
+                    os = xmlHelper.load(xml);
                 } else {
                     os = null;
                 }
                 
                 if (wrapper != null){
-                    //don't modify the original wrapper since it will be reused
-                    //clone the wrapper
-                    Node node = ((Node)os);
-                    if (node == null) {
-                        node = domHelper.newDocument();
-                    }
-                    Element newWrapper = DOMHelper.createElement((Document)node, new QName(wrapper.getNamespaceURI(), wrapper.getLocalName()));
-                    if (os != null){
-                        Node child = node.getFirstChild();
-                        newWrapper.appendChild(child);
-                    } 
-                    return newWrapper;
+                    return xmlHelper.wrap(wrapper, os);
                 }
                 
                 return os;
@@ -112,8 +97,6 @@ public class DefaultMessageProcessor ext
                 throw new JMSBindingException(e);
             } catch (IOException e) {
                 throw new JMSBindingException(e);
-            } catch (SAXException e) {
-                throw new JMSBindingException(e);
             }
         } else {
             // handle the non-text fault case
@@ -127,31 +110,28 @@ public class DefaultMessageProcessor ext
 
             TextMessage message = session.createTextMessage();
 
-            if (o instanceof Node) {
-                
+            if ((o instanceof Object[])) {
                 if (unwrap){
-                    Node firstElement = ((Node)o).getFirstChild();
+                    Object firstElement = xmlHelper.getFirstChild(((Object[])o)[0]);
                     if (firstElement == null ) {
-                        message.setText("");
+                        message.setText(null);
                     } else {
-                        message.setText(domHelper.saveAsString(firstElement));
+                        message.setText(xmlHelper.saveAsString(firstElement));
                     }
                 }else {
-                    message.setText(domHelper.saveAsString((Node)o));
+                    message.setText(xmlHelper.saveAsString(((Object[])o)[0]));
                 }
-            } else if ((o instanceof Object[]) && ((Object[]) o)[0] instanceof Node) {
+            } else if (o != null) {
                 if (unwrap){
-                    Node firstElement = ((Node)((Object[]) o)[0]).getFirstChild();
+                    Object firstElement = xmlHelper.getFirstChild(o);
                     if (firstElement == null ) {
-                        message.setText(null);
+                        message.setText("");
                     } else {
-                        message.setText(domHelper.saveAsString(firstElement));
+                        message.setText(xmlHelper.saveAsString(firstElement));
                     }
                 }else {
-                    message.setText(domHelper.saveAsString((Node)((Object[])o)[0]));
+                    message.setText(xmlHelper.saveAsString(o));
                 }
-            } else if (o != null) {
-                throw new IllegalStateException("expecting Node payload: " + o);
             }
 
             return message;
@@ -171,7 +151,7 @@ public class DefaultMessageProcessor ext
             try {
 
                 TextMessage message = session.createTextMessage();
-                message.setText(domHelper.saveAsString((Node)((FaultException)o).getFaultInfo()));
+                message.setText(xmlHelper.saveAsString(((FaultException)o).getFaultInfo()));
                 message.setBooleanProperty(JMSBindingConstants.FAULT_PROPERTY, true);
                 return message;
 
@@ -186,7 +166,7 @@ public class DefaultMessageProcessor ext
 
     // handle bytes messages
     
-    public Object extractPayloadFromJMSBytesMessage(Message msg, Node wrapper) {
+    public Object extractPayloadFromJMSBytesMessage(Message msg, Object wrapper) {
         
         if (msg instanceof BytesMessage) {        
             try {
@@ -198,24 +178,13 @@ public class DefaultMessageProcessor ext
                 ((BytesMessage)msg).reset();
 
                 if ((bytes != null) && (bytes.length > 0)) {
-                    os = domHelper.load(new String(bytes));
+                    os = xmlHelper.load(new String(bytes));
                 } else {
                     os = null;
                 }
                 
                 if (wrapper != null){
-                    //don't modify the original wrapper since it will be reused
-                    //clone the wrapper
-                    Node node = ((Node)os);
-                    if (node == null) {
-                        node = domHelper.newDocument();
-                    }
-                    Element newWrapper = DOMHelper.createElement((Document)node, new QName(wrapper.getNamespaceURI(), wrapper.getLocalName()));
-                    if (os != null){
-                        Node child = node.getFirstChild();
-                        newWrapper.appendChild(child);
-                    } 
-                    return newWrapper;
+                    return xmlHelper.wrap(wrapper, os);
                 }
                 
                 return os;
@@ -224,8 +193,6 @@ public class DefaultMessageProcessor ext
                 throw new JMSBindingException(e);
             } catch (IOException e) {
                 throw new JMSBindingException(e);
-            } catch (SAXException e) {
-                throw new JMSBindingException(e);
             }
         } else {
             // trap the non-bytes fault case
@@ -238,35 +205,31 @@ public class DefaultMessageProcessor ext
         try {
 
             BytesMessage message = session.createBytesMessage();
-            
 
-            if (o instanceof Node) {
-                if (unwrap) {
-                    Node firstElement = ((Node)o).getFirstChild();
+            if ((o instanceof Object[])) {
+                if (unwrap){
+                    Object firstElement = xmlHelper.getFirstChild(((Object[])o)[0]);
                     if (firstElement == null ) {
                         //do nothing, the message will just be set with a byte[0]
                     } else {
-                        message.writeBytes(domHelper.saveAsString(firstElement).getBytes());
+                        message.writeBytes(xmlHelper.saveAsString(firstElement).getBytes());
                     }
 
-                } else {
-                    message.writeBytes(domHelper.saveAsString((Node)o).getBytes());                    
+                }else {
+                    message.writeBytes(xmlHelper.saveAsString(((Object[]) o)[0]).getBytes());
                 }
-
-            } else if ((o instanceof Object[]) && ((Object[]) o)[0] instanceof Node) {
-                if (unwrap){
-                    Node firstElement = ((Node)((Object[]) o)[0]).getFirstChild();
+            } else if (o != null) {
+                if (unwrap) {
+                    Object firstElement = xmlHelper.getFirstChild(o);
                     if (firstElement == null ) {
                         //do nothing, the message will just be set with a byte[0]
                     } else {
-                        message.writeBytes(domHelper.saveAsString(firstElement).getBytes());
+                        message.writeBytes(xmlHelper.saveAsString(firstElement).getBytes());
                     }
 
-                }else {
-                    message.writeBytes(domHelper.saveAsString((Node)((Object[]) o)[0]).getBytes());
+                } else {
+                    message.writeBytes(xmlHelper.saveAsString(o).getBytes());                    
                 }
-            } else if (o != null) {
-                throw new IllegalStateException("expecting Node payload: " + o);
             }
 
             return message;
@@ -287,7 +250,7 @@ public class DefaultMessageProcessor ext
             try {
 
                 BytesMessage message = session.createBytesMessage();
-                String s = domHelper.saveAsString((Node)((FaultException)o).getFaultInfo());
+                String s = xmlHelper.saveAsString(((FaultException)o).getFaultInfo());
                 message.writeBytes(s.getBytes());
                 message.setBooleanProperty(JMSBindingConstants.FAULT_PROPERTY, true);
                 return message;

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLBytesMessageProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLBytesMessageProcessor.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLBytesMessageProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLBytesMessageProcessor.java Wed Nov  9 15:31:53 2011
@@ -29,11 +29,10 @@ import javax.jms.Session;
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.JMSBindingException;
-import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.interfacedef.util.FaultException;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
 
 /**
  * MessageProcessor for sending/receiving XML javax.jms.BytesMessage with the JMSBinding.
@@ -41,11 +40,11 @@ import org.xml.sax.SAXException;
 public class XMLBytesMessageProcessor extends AbstractMessageProcessor {
     private static final Logger logger = Logger.getLogger(XMLBytesMessageProcessor.class.getName());
 
-    private DOMHelper domHelper;
+    private XMLHelper xmlHelper;
 
     public XMLBytesMessageProcessor(JMSBinding jmsBinding, ExtensionPointRegistry registry) {
         super(jmsBinding);
-        this.domHelper = DOMHelper.getInstance(registry);
+        this.xmlHelper = XMLHelperFactory.createXMLHelper(registry);
     }
 
     @Override
@@ -63,7 +62,7 @@ public class XMLBytesMessageProcessor ex
             
             Object os;
             if (noOfBytes > 0) {
-                os = domHelper.load(new String(bytes));
+                os = xmlHelper.load(new String(bytes));
             } else {
                 os = null;
             }
@@ -72,8 +71,6 @@ public class XMLBytesMessageProcessor ex
             throw new JMSBindingException(e);
         } catch (IOException e) {
             throw new JMSBindingException(e);
-        } catch (SAXException e) {
-            throw new JMSBindingException(e);
         }
     }
 
@@ -95,12 +92,10 @@ public class XMLBytesMessageProcessor ex
         try {
             BytesMessage message = session.createBytesMessage();
             
-            if (o instanceof Node) {
-                message.writeBytes(domHelper.saveAsString((Node)o).getBytes());
-            } else if ((o instanceof Object[]) && ((Object[])o)[0] instanceof Node) {
-                message.writeBytes(domHelper.saveAsString((Node)((Object[])o)[0]).getBytes());
+            if ((o instanceof Object[])) {
+                message.writeBytes(xmlHelper.saveAsString(((Object[])o)[0]).getBytes());
             } else if (o != null) {
-                throw new IllegalStateException("expecting Node payload: " + o);
+                message.writeBytes(xmlHelper.saveAsString(o).getBytes());
             }            
             
             return message;
@@ -121,7 +116,7 @@ public class XMLBytesMessageProcessor ex
             try {
 
                 BytesMessage message = session.createBytesMessage();
-                message.writeBytes(domHelper.saveAsString((Node)((FaultException)o).getFaultInfo()).getBytes());
+                message.writeBytes(xmlHelper.saveAsString(((FaultException)o).getFaultInfo()).getBytes());
                 message.setBooleanProperty(JMSBindingConstants.FAULT_PROPERTY, true);
                 return message;
 

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/XMLTextMessageProcessor.java Wed Nov  9 15:31:53 2011
@@ -29,12 +29,10 @@ import javax.jms.TextMessage;
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.JMSBindingException;
-import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.interfacedef.util.FaultException;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.xml.sax.SAXException;
 
 /**
  * MessageProcessor for sending/receiving XML javax.jms.TextMessage with the JMSBinding.
@@ -44,11 +42,11 @@ import org.xml.sax.SAXException;
 public class XMLTextMessageProcessor extends AbstractMessageProcessor {
     private static final Logger logger = Logger.getLogger(XMLTextMessageProcessor.class.getName());
 
-    private DOMHelper domHelper;
+    private XMLHelper xmlHelper;
 
     public XMLTextMessageProcessor(JMSBinding jmsBinding, ExtensionPointRegistry registry) {
         super(jmsBinding);
-        this.domHelper = DOMHelper.getInstance(registry);
+        this.xmlHelper = XMLHelperFactory.createXMLHelper(registry);
     }
 
     @Override
@@ -58,7 +56,7 @@ public class XMLTextMessageProcessor ext
             String xml = ((TextMessage)msg).getText();
             Object os;
             if (xml != null) {
-                os = domHelper.load(xml);
+                os = xmlHelper.load(xml);
             } else {
                 os = null;
             }
@@ -68,8 +66,6 @@ public class XMLTextMessageProcessor ext
             throw new JMSBindingException(e);
         } catch (JMSException e) {
             throw new JMSBindingException(e);
-        } catch (SAXException e) {
-            throw new JMSBindingException(e);
         }
     }
 
@@ -92,12 +88,10 @@ public class XMLTextMessageProcessor ext
 
             TextMessage message = session.createTextMessage();
 
-            if (o instanceof Element) {
-                message.setText(domHelper.saveAsString((Node)o));
-            } else if ((o instanceof Object[]) && ((Object[])o)[0] instanceof Node) {
-                message.setText(domHelper.saveAsString((Node)((Object[])o)[0]));
-            } else if (o != null) {
-                throw new IllegalStateException("expecting Node payload: " + o);
+            if (o instanceof Object[]) {
+                message.setText(xmlHelper.saveAsString(((Object[])o)[0]));
+            } else {
+                message.setText(xmlHelper.saveAsString(o));
             }
 
             return message;
@@ -117,7 +111,7 @@ public class XMLTextMessageProcessor ext
             try {
 
                 TextMessage message = session.createTextMessage();
-                message.setText(domHelper.saveAsString((Node)((FaultException)o).getFaultInfo()));
+                message.setText(xmlHelper.saveAsString(((FaultException)o).getFaultInfo()));
                 message.setBooleanProperty(JMSBindingConstants.FAULT_PROPERTY, true);
                 return message;
 

Added: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/AXIOMXMLHelper.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/AXIOMXMLHelper.java?rev=1199797&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/AXIOMXMLHelper.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/AXIOMXMLHelper.java Wed Nov  9 15:31:53 2011
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.tuscany.sca.binding.jms.provider.xml;
+
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.tuscany.sca.common.xml.stax.StAXHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.interfacedef.util.FaultException;
+
+public class AXIOMXMLHelper implements XMLHelper<OMElement> {
+
+    private OMFactory factory;
+    private StAXHelper staxhelper;
+
+    public AXIOMXMLHelper(ExtensionPointRegistry epr) {
+        this.staxhelper = StAXHelper.getInstance(epr);
+        this.factory = OMAbstractFactory.getOMFactory();
+    }
+
+    @Override
+    public OMElement load(String xml) throws IOException {
+        StAXOMBuilder builder;
+        try {
+            builder = new StAXOMBuilder(staxhelper.createXMLStreamReader(xml));
+        } catch (XMLStreamException e) {
+            throw new IOException(e);
+        }
+        return builder.getDocumentElement();
+    }
+
+    @Override
+    public String saveAsString(OMElement t) {
+        // TODO: The JMS compliance tests require the XML prefix but AXIOM doesn't include that
+        return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + t.toString();
+    }
+
+    @Override
+    public String getOperationName(OMElement t) {
+        return t.getLocalName();
+    }
+
+    @Override
+    public Object wrap(OMElement template, OMElement os) {
+        OMElement newWrapper = template.cloneOMElement();
+        if (os != null) {
+            os.declareDefaultNamespace(newWrapper.getNamespace().getNamespaceURI());
+            newWrapper.addChild(os);
+        }
+        return newWrapper;
+    }
+
+    @Override
+    public OMElement createWrapper(QName qname) {
+        // The OMElement2JAXB transformer wants the opName to be capitalized
+        String opName = Character.toUpperCase(qname.getLocalPart().charAt(0)) + qname.getLocalPart().substring(1);
+        OMElement om = factory.createOMElement(qname);
+        OMNamespace defaultNS = om.declareDefaultNamespace(qname.getNamespaceURI());
+        return factory.createOMElement(opName, defaultNS);
+    }
+
+    @Override
+    public String getDataBindingName() {
+        return OMElement.class.getName();
+    }
+
+    @Override
+    public OMElement getFirstChild(OMElement o) {
+        return o.getFirstElement();
+    }
+
+    @Override
+    public void setFaultName(FaultException e, Object o) {
+        OMElement om = (OMElement)o;
+        e.setFaultName(new QName(om.getNamespace().getNamespaceURI(), om.getLocalName()));
+    }
+}

Added: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/DOMXMLHelper.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/DOMXMLHelper.java?rev=1199797&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/DOMXMLHelper.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/DOMXMLHelper.java Wed Nov  9 15:31:53 2011
@@ -0,0 +1,102 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.tuscany.sca.binding.jms.provider.xml;
+
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.interfacedef.util.FaultException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.xml.sax.SAXException;
+
+public class DOMXMLHelper implements XMLHelper<Node> {
+    
+    private DOMHelper domHelper;
+
+    public DOMXMLHelper(ExtensionPointRegistry epr) {
+        this.domHelper = DOMHelper.getInstance(epr);
+    }
+
+    @Override
+    public Document load(String xml) throws IOException {
+        try {
+            return domHelper.load(xml);
+        } catch (SAXException e) {
+            throw new IOException(e);
+        }
+    }
+
+    @Override
+    public String saveAsString(Node t) {
+        return domHelper.saveAsString(t);
+    }
+
+    @Override
+    public String getOperationName(Node t) {
+        Node firstChild = t.getFirstChild();
+        if (firstChild != null) {
+            return firstChild.getLocalName();
+        }
+        return null;
+    }
+
+    @Override
+    public Object wrap(Node wrapper, Node os) {
+        //don't modify the original wrapper since it will be reused
+        //clone the wrapper
+        Node node = ((Node)os);
+        if (node == null) {
+            node = domHelper.newDocument();
+        }
+        Element newWrapper = DOMHelper.createElement((Document)node, new QName(wrapper.getNamespaceURI(), wrapper.getLocalName()));
+        if (os != null){
+            Node child = node.getFirstChild();
+            newWrapper.appendChild(child);
+        } 
+        return newWrapper;
+    }
+
+    @Override
+    public Node createWrapper(QName qname) {
+        Document document = domHelper.newDocument();
+        Element wrapper = DOMHelper.createElement(document, qname);
+        return wrapper;
+    }
+    
+    @Override
+    public String getDataBindingName() {
+        return Node.class.getName();
+    }
+
+    @Override
+    public Node getFirstChild(Node o) {
+        return o.getFirstChild();
+    }
+    @Override
+    public void setFaultName(FaultException e, Object response) {
+        Node n = ((Node)response).getFirstChild();
+        e.setFaultName(new QName(n.getNamespaceURI(), n.getLocalName()));
+    }
+}

Added: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelper.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelper.java?rev=1199797&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelper.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelper.java Wed Nov  9 15:31:53 2011
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.tuscany.sca.binding.jms.provider.xml;
+
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+
+import org.apache.tuscany.sca.interfacedef.util.FaultException;
+
+public interface XMLHelper<T> {
+    T load(String xml) throws IOException;
+    String saveAsString(T t);
+    String getOperationName(T t);
+    Object wrap(T template, T t);
+    T createWrapper(QName qname);
+    String getDataBindingName();
+    T getFirstChild(T object);
+    void setFaultName(FaultException e, Object response);
+}

Added: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelperFactory.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelperFactory.java?rev=1199797&view=auto
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelperFactory.java (added)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/provider/xml/XMLHelperFactory.java Wed Nov  9 15:31:53 2011
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you 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.tuscany.sca.binding.jms.provider.xml;
+
+import java.util.Properties;
+
+import org.apache.tuscany.sca.core.ExtensionPointRegistry;
+import org.apache.tuscany.sca.core.UtilityExtensionPoint;
+import org.apache.tuscany.sca.runtime.RuntimeProperties;
+
+public class XMLHelperFactory {
+    
+    public static XMLHelper<?> createXMLHelper(ExtensionPointRegistry epr) {
+        
+        XMLHelper<?> xmlHelper = epr.getExtensionPoint(UtilityExtensionPoint.class).getUtility(XMLHelper.class);
+        if (xmlHelper != null) {
+            return xmlHelper;
+        }
+        if (useAXIOM(epr)) {
+            return new AXIOMXMLHelper(epr);
+        } else {
+            return new DOMXMLHelper(epr);
+        }
+    }
+
+    private static boolean useAXIOM(ExtensionPointRegistry epr) {
+        Properties runtimeProps = epr.getExtensionPoint(UtilityExtensionPoint.class).getUtility(RuntimeProperties.class).getProperties();
+        return Boolean.parseBoolean(runtimeProps.getProperty(RuntimeProperties.USE_AXIOM));
+    }
+
+}

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceInterceptor.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceInterceptor.java Wed Nov  9 15:31:53 2011
@@ -20,7 +20,6 @@ package org.apache.tuscany.sca.binding.j
 
 import javax.jms.JMSException;
 import javax.jms.Session;
-import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
@@ -29,15 +28,15 @@ import org.apache.tuscany.sca.binding.jm
 import org.apache.tuscany.sca.binding.jms.provider.JMSMessageProcessor;
 import org.apache.tuscany.sca.binding.jms.provider.JMSMessageProcessorUtil;
 import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSBytesXML;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl;
 import org.apache.tuscany.sca.interfacedef.util.FaultException;
-import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
-import org.w3c.dom.Node;
 
 
 public class WireFormatJMSBytesXMLReferenceInterceptor extends InterceptorAsyncImpl {
@@ -48,6 +47,7 @@ public class WireFormatJMSBytesXMLRefere
     private JMSBinding jmsBinding;
     private JMSMessageProcessor requestMessageProcessor;
     private JMSMessageProcessor responseMessageProcessor;
+    private XMLHelper<?> xmlhelper;
 
     public WireFormatJMSBytesXMLReferenceInterceptor(ExtensionPointRegistry registry, JMSResourceFactory jmsResourceFactory, RuntimeEndpointReference endpointReference) {
         super();
@@ -56,6 +56,7 @@ public class WireFormatJMSBytesXMLRefere
         this.jmsResourceFactory = jmsResourceFactory;
         this.requestMessageProcessor = JMSMessageProcessorUtil.getRequestMessageProcessor(registry, jmsBinding);
         this.responseMessageProcessor = JMSMessageProcessorUtil.getResponseMessageProcessor(registry, jmsBinding); 
+        this.xmlhelper = XMLHelperFactory.createXMLHelper(registry);
     }
 
     public Message invoke(Message msg) {
@@ -99,8 +100,7 @@ public class WireFormatJMSBytesXMLRefere
                 try {
                     if (jmsMsg.getBooleanProperty(JMSBindingConstants.FAULT_PROPERTY)) {
                         FaultException e = new FaultException("remote exception", response);
-                        Node om = ((Node)response).getFirstChild();
-                        e.setFaultName(new QName(om.getNamespaceURI(), om.getLocalName()));
+                        xmlhelper.setFaultName(e, response);
                         msg.setFaultBody(e);
                     }
                 } catch (JMSException e) {

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceProvider.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLReferenceProvider.java Wed Nov  9 15:31:53 2011
@@ -21,6 +21,7 @@ package org.apache.tuscany.sca.binding.j
 
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSBytesXML;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory;
@@ -67,7 +68,7 @@ public class WireFormatJMSBytesXMLRefere
         WebServiceBinding wsBinding = wsFactory.createWebServiceBinding();
         BindingWSDLGenerator.generateWSDL(endpointReference.getComponent(), endpointReference.getContract(), wsBinding, registry, null);
         interfaceContract = wsBinding.getBindingInterfaceContract();
-        interfaceContract.getInterface().resetDataBinding(DOMDataBinding.NAME);
+        interfaceContract.getInterface().resetDataBinding(XMLHelperFactory.createXMLHelper(registry).getDataBindingName());
     }
         
     public InterfaceContract configureWireFormatInterfaceContract(InterfaceContract interfaceContract){

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceProvider.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsbytesxml/runtime/WireFormatJMSBytesXMLServiceProvider.java Wed Nov  9 15:31:53 2011
@@ -22,6 +22,7 @@ package org.apache.tuscany.sca.binding.j
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSBytesXML;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory;
@@ -71,7 +72,7 @@ public class WireFormatJMSBytesXMLServic
         WebServiceBinding wsBinding = wsFactory.createWebServiceBinding();
         BindingWSDLGenerator.generateWSDL(endpoint.getComponent(), endpoint.getService(), wsBinding, registry, null);
         interfaceContract = wsBinding.getBindingInterfaceContract();
-        interfaceContract.getInterface().resetDataBinding(DOMDataBinding.NAME); 
+        interfaceContract.getInterface().resetDataBinding(XMLHelperFactory.createXMLHelper(registry).getDataBindingName());
     }
        
     public InterfaceContract configureWireFormatInterfaceContract(InterfaceContract interfaceContract){

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceInterceptor.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceInterceptor.java Wed Nov  9 15:31:53 2011
@@ -23,7 +23,6 @@ import java.util.HashMap;
 import javax.jms.BytesMessage;
 import javax.jms.JMSException;
 import javax.jms.Session;
-import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
@@ -31,17 +30,17 @@ import org.apache.tuscany.sca.binding.jm
 import org.apache.tuscany.sca.binding.jms.context.JMSBindingContext;
 import org.apache.tuscany.sca.binding.jms.provider.DefaultMessageProcessor;
 import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSDefault;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.Operation;
 import org.apache.tuscany.sca.interfacedef.util.FaultException;
-import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
-import org.w3c.dom.Node;
 
 /**
  * 
@@ -56,10 +55,11 @@ public class WireFormatJMSDefaultReferen
     private DefaultMessageProcessor requestMessageProcessor;
     private DefaultMessageProcessor responseMessageProcessor;
     private HashMap<String, Boolean> inputWrapperMap;
-    private HashMap<String, Node> outputWrapperMap;
+    private HashMap<String, Object> outputWrapperMap;
+    private XMLHelper xmlhelper;
 
     public WireFormatJMSDefaultReferenceInterceptor(ExtensionPointRegistry registry, JMSResourceFactory jmsResourceFactory, RuntimeEndpointReference endpointReference, HashMap<String, Boolean> inputWrapperMap,
-            HashMap<String, Node> outputWrapperMap) {
+            HashMap<String, Object> outputWrapperMap) {
         super();
         this.jmsBinding = (JMSBinding) endpointReference.getBinding();
         this.endpointReference = endpointReference;
@@ -70,6 +70,7 @@ public class WireFormatJMSDefaultReferen
         this.responseMessageProcessor = new DefaultMessageProcessor(jmsBinding, registry);
         this.inputWrapperMap = inputWrapperMap;
         this.outputWrapperMap = outputWrapperMap;
+        this.xmlhelper = XMLHelperFactory.createXMLHelper(registry);
     }
 
     public Message invoke(Message msg) {
@@ -127,7 +128,7 @@ public class WireFormatJMSDefaultReferen
                 msg.setBody(jmsMsg);
             } else {
 
-                Node wrapper = null;
+                Object wrapper = null;
                 // if we have a fault no need to wrap the response
                 try {
                     if (!jmsMsg.getBooleanProperty(JMSBindingConstants.FAULT_PROPERTY)) {
@@ -150,8 +151,7 @@ public class WireFormatJMSDefaultReferen
                     try {
                         if (jmsMsg.getBooleanProperty(JMSBindingConstants.FAULT_PROPERTY)) {
                             FaultException e = new FaultException("remote exception", response);
-                            Node om = ((Node)response).getFirstChild();
-                            e.setFaultName(new QName(om.getNamespaceURI(), om.getLocalName()));
+                            xmlhelper.setFaultName(e, response);
                             msg.setFaultBody(e);
                         }
                     } catch (JMSException e) {

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceProvider.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultReferenceProvider.java Wed Nov  9 15:31:53 2011
@@ -22,18 +22,16 @@ package org.apache.tuscany.sca.binding.j
 import java.util.HashMap;
 import java.util.List;
 
-import javax.xml.namespace.QName;
-
 import org.apache.tuscany.sca.assembly.ComponentReference;
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSDefault;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory;
 import org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator;
-import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.databinding.xml.DOMDataBinding;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.interfacedef.Operation;
@@ -42,9 +40,6 @@ import org.apache.tuscany.sca.invocation
 import org.apache.tuscany.sca.invocation.Phase;
 import org.apache.tuscany.sca.provider.WireFormatProvider;
 import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
 
 /**
  * @version $Rev$ $Date$
@@ -55,9 +50,9 @@ public class WireFormatJMSDefaultReferen
     private ComponentReference reference;
     private JMSBinding binding;
     private InterfaceContract interfaceContract;
-    private DOMHelper domHelper;
+    private XMLHelper xmlHelper;
     private HashMap<String, Boolean> inputWrapperMap;
-    private HashMap<String, Node> outputWrapperMap;
+    private HashMap<String, Object> outputWrapperMap;
 
     public WireFormatJMSDefaultReferenceProvider(ExtensionPointRegistry registry, RuntimeEndpointReference endpointReference) {
         super();
@@ -65,9 +60,9 @@ public class WireFormatJMSDefaultReferen
         this.endpointReference = endpointReference;
         this.binding = (JMSBinding) endpointReference.getBinding();
 
-        this.domHelper = DOMHelper.getInstance(registry);
+        this.xmlHelper = XMLHelperFactory.createXMLHelper(registry);
         this.inputWrapperMap = new HashMap<String, Boolean>();
-        this.outputWrapperMap = new HashMap<String, Node>();
+        this.outputWrapperMap = new HashMap<String, Object>();
 
         // configure the reference based on this wire format
 
@@ -101,7 +96,7 @@ public class WireFormatJMSDefaultReferen
             WebServiceBinding wsBinding = wsFactory.createWebServiceBinding();
             BindingWSDLGenerator.generateWSDL(endpointReference.getComponent(), reference, wsBinding, registry, null);
             interfaceContract = wsBinding.getBindingInterfaceContract();
-            interfaceContract.getInterface().resetDataBinding(DOMDataBinding.NAME);
+            interfaceContract.getInterface().resetDataBinding(XMLHelperFactory.createXMLHelper(registry).getDataBindingName());
 
             List<Operation> wsdlOpList = interfaceContract.getInterface().getOperations();
 
@@ -140,11 +135,7 @@ public class WireFormatJMSDefaultReferen
                     // we only need to know what the wrapper is on the deserialization
                     // might need to change this when there input/output wrapper style is different
                     ElementInfo ei = op.getWrapper().getOutputWrapperElement();
-                    String namespace = ei.getQName().getNamespaceURI();
-                    String opName = ei.getQName().getLocalPart();
-                    Document document = domHelper.newDocument();
-                    Element wrapper = DOMHelper.createElement(document, new QName(namespace, opName));
-                    this.outputWrapperMap.put(name, wrapper);
+                    this.outputWrapperMap.put(name, xmlHelper.createWrapper(ei.getQName()));
                 } 
             }
         } else {

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceInterceptor.java Wed Nov  9 15:31:53 2011
@@ -36,11 +36,8 @@ import org.apache.tuscany.sca.core.Exten
 import org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.invocation.Interceptor;
-import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
-import org.w3c.dom.Node;
 
 /**
  * Policy handler to handle PolicySet related to Logging with the QName {http://tuscany.apache.org/xmlns/sca/1.1/impl/java}LoggingPolicy
@@ -53,10 +50,10 @@ public class WireFormatJMSDefaultService
     private JMSBinding jmsBinding;
     private DefaultMessageProcessor requestMessageProcessor;
     private DefaultMessageProcessor responseMessageProcessor;
-    private HashMap<String, Node> inputWrapperMap;
+    private HashMap<String, Object> inputWrapperMap;
     private HashMap<String, Boolean> outputWrapperMap;
 
-    public WireFormatJMSDefaultServiceInterceptor(ExtensionPointRegistry registry, JMSResourceFactory jmsResourceFactory, RuntimeEndpoint endpoint, HashMap<String, Node> inputWrapperMap,
+    public WireFormatJMSDefaultServiceInterceptor(ExtensionPointRegistry registry, JMSResourceFactory jmsResourceFactory, RuntimeEndpoint endpoint, HashMap<String, Object> inputWrapperMap,
             HashMap<String, Boolean> outputWrapperMap) {
         super();
         this.jmsBinding = (JMSBinding) endpoint.getBinding();
@@ -115,7 +112,7 @@ public class WireFormatJMSDefaultService
         } else {
 
             // If there is only one arg we must add a wrapper if the operation is wrapper style
-            Node wrapper = this.inputWrapperMap.get(msg.getOperation().getName());
+            Object wrapper = this.inputWrapperMap.get(msg.getOperation().getName());
 
             Object requestPayload;
             if (jmsMsg instanceof BytesMessage) {

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceProvider.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmsdefault/runtime/WireFormatJMSDefaultServiceProvider.java Wed Nov  9 15:31:53 2011
@@ -22,19 +22,17 @@ package org.apache.tuscany.sca.binding.j
 import java.util.HashMap;
 import java.util.List;
 
-import javax.xml.namespace.QName;
-
 import org.apache.tuscany.sca.assembly.ComponentService;
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSDefault;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory;
 import org.apache.tuscany.sca.binding.ws.wsdlgen.BindingWSDLGenerator;
-import org.apache.tuscany.sca.common.xml.dom.DOMHelper;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
-import org.apache.tuscany.sca.databinding.xml.DOMDataBinding;
 import org.apache.tuscany.sca.interfacedef.DataType;
 import org.apache.tuscany.sca.interfacedef.InterfaceContract;
 import org.apache.tuscany.sca.interfacedef.Operation;
@@ -43,9 +41,6 @@ import org.apache.tuscany.sca.invocation
 import org.apache.tuscany.sca.invocation.Phase;
 import org.apache.tuscany.sca.provider.WireFormatProvider;
 import org.apache.tuscany.sca.runtime.RuntimeEndpoint;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
 
 /**
  * @version $Rev$ $Date$
@@ -57,8 +52,8 @@ public class WireFormatJMSDefaultService
     private JMSBinding binding;
     private JMSResourceFactory jmsResourceFactory;
     private InterfaceContract interfaceContract;
-    private DOMHelper domHelper;
-    private HashMap<String, Node> inputWrapperMap;
+    private XMLHelper<?> xmlHelper;
+    private HashMap<String, Object> inputWrapperMap;
     private HashMap<String, Boolean> outputWrapperMap;
 
     public WireFormatJMSDefaultServiceProvider(ExtensionPointRegistry registry, RuntimeEndpoint endpoint, JMSResourceFactory jmsResourceFactory) {
@@ -69,8 +64,8 @@ public class WireFormatJMSDefaultService
         this.service = endpoint.getService();
         this.jmsResourceFactory = jmsResourceFactory;
 
-        this.domHelper = DOMHelper.getInstance(registry);
-        this.inputWrapperMap = new HashMap<String, Node>();
+        this.xmlHelper = XMLHelperFactory.createXMLHelper(registry);
+        this.inputWrapperMap = new HashMap<String, Object>();
         this.outputWrapperMap = new HashMap<String, Boolean>();
 
         // configure the service based on this wire format
@@ -98,7 +93,7 @@ public class WireFormatJMSDefaultService
             WebServiceBinding wsBinding = wsFactory.createWebServiceBinding();
             BindingWSDLGenerator.generateWSDL(endpoint.getComponent(), service, wsBinding, registry, null);
             interfaceContract = wsBinding.getBindingInterfaceContract();
-            interfaceContract.getInterface().resetDataBinding(DOMDataBinding.NAME);
+            interfaceContract.getInterface().resetDataBinding(XMLHelperFactory.createXMLHelper(registry).getDataBindingName());
 
             List<Operation> wsdlOpList = interfaceContract.getInterface().getOperations();
 
@@ -125,11 +120,7 @@ public class WireFormatJMSDefaultService
                         // we only need to know what the wrapper is on the deserialization
                         // might need to change this when the input/output wrapper style is different
                         ElementInfo ei = op.getWrapper().getInputWrapperElement();
-                        String namespace = ei.getQName().getNamespaceURI();
-                        String opName = ei.getQName().getLocalPart();
-                        Document document = domHelper.newDocument();
-                        Element wrapper = DOMHelper.createElement(document, new QName(namespace, opName));
-                        this.inputWrapperMap.put(name, wrapper);
+                        this.inputWrapperMap.put(name, xmlHelper.createWrapper(ei.getQName()));
                     }
                 }
 

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceInterceptor.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceInterceptor.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceInterceptor.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceInterceptor.java Wed Nov  9 15:31:53 2011
@@ -23,7 +23,6 @@ package org.apache.tuscany.sca.binding.j
 
 import javax.jms.JMSException;
 import javax.jms.Session;
-import javax.xml.namespace.QName;
 
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
@@ -32,15 +31,15 @@ import org.apache.tuscany.sca.binding.jm
 import org.apache.tuscany.sca.binding.jms.provider.JMSMessageProcessor;
 import org.apache.tuscany.sca.binding.jms.provider.JMSMessageProcessorUtil;
 import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelper;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSTextXML;
 import org.apache.tuscany.sca.core.ExtensionPointRegistry;
 import org.apache.tuscany.sca.core.invocation.InterceptorAsyncImpl;
 import org.apache.tuscany.sca.interfacedef.util.FaultException;
-import org.apache.tuscany.sca.invocation.Interceptor;
 import org.apache.tuscany.sca.invocation.Invoker;
 import org.apache.tuscany.sca.invocation.Message;
 import org.apache.tuscany.sca.runtime.RuntimeEndpointReference;
-import org.w3c.dom.Node;
 
 /**
  *
@@ -54,6 +53,7 @@ public class WireFormatJMSTextXMLReferen
     private JMSBinding jmsBinding;
     private JMSMessageProcessor requestMessageProcessor;
     private JMSMessageProcessor responseMessageProcessor;
+    private XMLHelper<?> xmlhelper;
 
 
     public WireFormatJMSTextXMLReferenceInterceptor(ExtensionPointRegistry registry, JMSResourceFactory jmsResourceFactory, RuntimeEndpointReference endpointReference) {
@@ -63,6 +63,7 @@ public class WireFormatJMSTextXMLReferen
         this.jmsResourceFactory = jmsResourceFactory;
         this.requestMessageProcessor = JMSMessageProcessorUtil.getRequestMessageProcessor(registry, jmsBinding);
         this.responseMessageProcessor = JMSMessageProcessorUtil.getResponseMessageProcessor(registry, jmsBinding);
+        this.xmlhelper = XMLHelperFactory.createXMLHelper(registry);
     }
 
     public Message invoke(Message msg) {
@@ -105,8 +106,7 @@ public class WireFormatJMSTextXMLReferen
                 try {
                     if (jmsMsg.getBooleanProperty(JMSBindingConstants.FAULT_PROPERTY)) {
                         FaultException e = new FaultException("remote exception", response);
-                        Node node = ((Node)response).getFirstChild();
-                        e.setFaultName(new QName(node.getNamespaceURI(), node.getLocalName()));
+                        xmlhelper.setFaultName(e, response);
                         msg.setFaultBody(e);
                     }
                 } catch (JMSException e) {

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceProvider.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLReferenceProvider.java Wed Nov  9 15:31:53 2011
@@ -21,6 +21,7 @@ package org.apache.tuscany.sca.binding.j
 
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSTextXML;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory;
@@ -71,7 +72,7 @@ public class WireFormatJMSTextXMLReferen
         WebServiceBinding wsBinding = wsFactory.createWebServiceBinding();
         BindingWSDLGenerator.generateWSDL(endpointReference.getComponent(), endpointReference.getReference(), wsBinding, registry, null);
         interfaceContract = wsBinding.getBindingInterfaceContract();
-        interfaceContract.getInterface().resetDataBinding(DOMDataBinding.NAME); 
+        interfaceContract.getInterface().resetDataBinding(XMLHelperFactory.createXMLHelper(registry).getDataBindingName());
     }
     
     protected boolean isOnMessage() {

Modified: tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceProvider.java
URL: http://svn.apache.org/viewvc/tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceProvider.java?rev=1199797&r1=1199796&r2=1199797&view=diff
==============================================================================
--- tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceProvider.java (original)
+++ tuscany/sca-java-2.x/trunk/modules/binding-jms-runtime/src/main/java/org/apache/tuscany/sca/binding/jms/wireformat/jmstextxml/runtime/WireFormatJMSTextXMLServiceProvider.java Wed Nov  9 15:31:53 2011
@@ -22,6 +22,7 @@ package org.apache.tuscany.sca.binding.j
 import org.apache.tuscany.sca.binding.jms.JMSBinding;
 import org.apache.tuscany.sca.binding.jms.JMSBindingConstants;
 import org.apache.tuscany.sca.binding.jms.provider.JMSResourceFactory;
+import org.apache.tuscany.sca.binding.jms.provider.xml.XMLHelperFactory;
 import org.apache.tuscany.sca.binding.jms.wireformat.WireFormatJMSTextXML;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.binding.ws.WebServiceBindingFactory;
@@ -74,7 +75,7 @@ public class WireFormatJMSTextXMLService
         WebServiceBinding wsBinding = wsFactory.createWebServiceBinding();
         BindingWSDLGenerator.generateWSDL(endpoint.getComponent(), endpoint.getService(), wsBinding, registry, null);
         interfaceContract = wsBinding.getBindingInterfaceContract();
-        interfaceContract.getInterface().resetDataBinding(DOMDataBinding.NAME);       
+        interfaceContract.getInterface().resetDataBinding(XMLHelperFactory.createXMLHelper(registry).getDataBindingName());
     }
     
     public InterfaceContract configureWireFormatInterfaceContract(InterfaceContract interfaceContract){