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 ja...@apache.org on 2005/09/14 08:05:27 UTC

svn commit: r280772 - in /webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj: SOAPFactoryImpl.java SOAPMessageImpl.java

Author: jayachandra
Date: Tue Sep 13 23:05:13 2005
New Revision: 280772

URL: http://svn.apache.org/viewcvs?rev=280772&view=rev
Log:
Patched SOAPMessageImpl.writeTo() to take care of some broken test cases.

Modified:
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java?rev=280772&r1=280771&r2=280772&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPFactoryImpl.java Tue Sep 13 23:05:13 2005
@@ -17,6 +17,7 @@
 
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMNamespace;
 
 import javax.xml.soap.Detail;
 import javax.xml.soap.Name;
@@ -26,28 +27,34 @@
 /**
  * @author shaas02
  *         <p/>
- *         TODO To change the template for this generated type comment go to
- *         Window - Preferences - Java - Code Style - Code Templates
+ *
  */
 public class SOAPFactoryImpl extends javax.xml.soap.SOAPFactory {
 
-    /* (non-Javadoc)
+    /**
      * @see javax.xml.soap.SOAPFactory#createElement(javax.xml.soap.Name)
      */
     public SOAPElement createElement(Name name) throws SOAPException {
-        // TODO Auto-generated method stub
-        return null;
+    	String localName = name.getLocalName();
+    	String prefix = name.getPrefix();
+    	String uri = name.getURI();
+    	OMElement newOMElement = OMAbstractFactory.getOMFactory()
+        .createOMElement(localName, uri, prefix);
+    	return new SOAPElementImpl(newOMElement);
     }
 
-    /* (non-Javadoc)
+    /**
      * @see javax.xml.soap.SOAPFactory#createElement(java.lang.String)
      */
     public SOAPElement createElement(String localName) throws SOAPException {
-        // TODO Auto-generated method stub
-        return null;
+    	OMNamespace ns = OMAbstractFactory.getOMFactory()
+    	.createOMNamespace(null, null);
+    	OMElement newOMElement = OMAbstractFactory.getOMFactory()
+        .createOMElement(localName, ns);
+    	return new SOAPElementImpl(newOMElement);
     }
 
-    /* (non-Javadoc)
+    /**
      * @see javax.xml.soap.SOAPFactory#createElement(java.lang.String, java.lang.String, java.lang.String)
      */
     public SOAPElement createElement(String localName,
@@ -59,7 +66,7 @@
         return new SOAPElementImpl(newOMElement);
     }
 
-    /* (non-Javadoc)
+    /**
      * @see javax.xml.soap.SOAPFactory#createDetail()
      */
     public Detail createDetail() throws SOAPException {

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java?rev=280772&r1=280771&r2=280772&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java Tue Sep 13 23:05:13 2005
@@ -16,6 +16,7 @@
 package org.apache.axis2.saaj;
 
 import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.om.impl.OMOutputImpl;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -243,11 +244,17 @@
      */
     public void writeTo(OutputStream out) throws SOAPException, IOException {
         try {
-            XMLStreamWriter writer = XMLOutputFactory.newInstance().createXMLStreamWriter(out);
+            OMOutputImpl output = new OMOutputImpl();
+            output.setCharSetEncoding((String)getProperty(CHARACTER_SET_ENCODING));
+            String writeXmlDecl = (String)getProperty(WRITE_XML_DECLARATION);
+            if(writeXmlDecl==null || writeXmlDecl.equals("false")) { //SAAJ default case doesn't send XML decl
+            	output.ignoreXMLDeclaration(true);
+            }
+            output.setOutputStream(out, false);
             //the writeTo method forces the elements to be built!!!
             ((SOAPEnvelopeImpl) mSOAPPart.getEnvelope()).getOMEnvelope()
-                    .serializeWithCache(writer);
-            writer.flush();
+                    .serializeWithCache(output);
+            output.flush();
         } catch (Exception e) {
             throw new SOAPException(e);
         }