You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2006/12/19 23:00:03 UTC

svn commit: r488826 - in /webservices/axis2/trunk/java/modules: saaj-api/src/javax/xml/soap/MessageFactory.java saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java

Author: dims
Date: Tue Dec 19 14:00:02 2006
New Revision: 488826

URL: http://svn.apache.org/viewvc?view=rev&rev=488826
Log:
support multiple versions of SOAP in our SAAJ Implementation

Modified:
    webservices/axis2/trunk/java/modules/saaj-api/src/javax/xml/soap/MessageFactory.java
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java

Modified: webservices/axis2/trunk/java/modules/saaj-api/src/javax/xml/soap/MessageFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj-api/src/javax/xml/soap/MessageFactory.java?view=diff&rev=488826&r1=488825&r2=488826
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj-api/src/javax/xml/soap/MessageFactory.java (original)
+++ webservices/axis2/trunk/java/modules/saaj-api/src/javax/xml/soap/MessageFactory.java Tue Dec 19 14:00:02 2006
@@ -17,6 +17,8 @@
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
 
 /**
  * <P>A factory for creating <CODE>SOAPMessage</CODE> objects.</P>
@@ -168,7 +170,20 @@
 
     public static MessageFactory newInstance(String s)
             throws SOAPException {
-            return newInstance();
+        MessageFactory factory = newInstance();
+        if(factory.getClass().getName().equals(DEFAULT_MESSAGE_FACTORY)){
+            try {
+                Method m = factory.getClass().getMethod("setSOAPVersion", new Class[]{String.class});
+                m.invoke(factory, new Object[]{s});
+            } catch (IllegalAccessException e) {
+                throw new SOAPException(e);
+            } catch (InvocationTargetException e) {
+                throw new SOAPException(e);
+            } catch (NoSuchMethodException e) {
+                throw new SOAPException(e);
+            }
+        }
+        return factory;
     }
 
     private static final String DEFAULT_MESSAGE_FACTORY =

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java?view=diff&rev=488826&r1=488825&r2=488826
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java Tue Dec 19 14:00:02 2006
@@ -16,11 +16,14 @@
 package org.apache.axis2.saaj;
 
 import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
+import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
 
 import javax.xml.soap.MessageFactory;
 import javax.xml.soap.MimeHeaders;
 import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPConstants;
+
 import java.io.IOException;
 import java.io.InputStream;
 
@@ -104,6 +107,7 @@
  */
 public class MessageFactoryImpl extends MessageFactory {
 
+    protected String soapVersion = SOAPConstants.SOAP_1_1_PROTOCOL;
     /**
      * Creates a new <CODE>SOAPMessage</CODE> object with the
      * default <CODE>SOAPPart</CODE>, <CODE>SOAPEnvelope</CODE>,
@@ -124,9 +128,16 @@
      * @throws SOAPException if a SOAP error occurs
      */
     public SOAPMessage createMessage() throws SOAPException {
-        final SOAPEnvelopeImpl soapEnvelope =
-                new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)
-                        new SOAP11Factory().getDefaultEnvelope());
+        SOAPEnvelopeImpl soapEnvelope;
+        if (soapVersion.equals(SOAPConstants.SOAP_1_2_PROTOCOL)) {
+            soapEnvelope =
+                    new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)
+                            new SOAP12Factory().getDefaultEnvelope());
+        } else {
+            soapEnvelope =
+                    new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)
+                            new SOAP11Factory().getDefaultEnvelope());
+        }
         SOAPMessageImpl soapMessage = new SOAPMessageImpl(soapEnvelope);
         soapMessage.setSaveRequired();
         return soapMessage;
@@ -162,4 +173,7 @@
         return soapMessage;
     }
 
+    public void setSOAPVersion(String soapVersion){
+        this.soapVersion = soapVersion;    
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org