You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.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