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 az...@apache.org on 2007/02/05 13:14:08 UTC

svn commit: r503658 [1/2] - in /webservices/axis2/trunk/java/modules/saaj: src/org/apache/axis2/saaj/ test-resources/ test/org/apache/axis2/saaj/ test/org/apache/axis2/saaj/integration/

Author: azeez
Date: Mon Feb  5 04:14:07 2007
New Revision: 503658

URL: http://svn.apache.org/viewvc?view=rev&rev=503658
Log:
Applying patches for SAAJ sent by Sumedha

Added:
    webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml   (with props)
Modified:
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
    webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFactoryTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFaultTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPHeaderTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPMessageTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/TextTest.java
    webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/integration/IntegrationTest.java

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java Mon Feb  5 04:14:07 2007
@@ -16,6 +16,7 @@
 package org.apache.axis2.saaj;
 
 import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -163,22 +164,22 @@
         }
         try {
             String contentType = dataHandler.getContentType();
-            //TODO change to text/xml
-            if(contentType.equals("text/xml")){
-            	StringReader stringReader = new StringReader((String)dataHandler.getContent());
+           	if (contentType.equals("text/xml")) {
+           		StringReader stringReader = new StringReader((String)dataHandler.getContent());
             	StreamSource streamSource = new StreamSource(stringReader);
+   	        	streamSource.setInputStream(dataHandler.getInputStream());
             	return streamSource;
-            }else if (contentType.equals("text/plain") ||
-                    contentType.equals("text/html")) {
-
+            	
                 //For these content types underlying DataContentHandler surely does
                 //the conversion to appropriate java object and we will return that java object
-                return dataHandler.getContent();
-            } else {
+                //return dataHandler.getContent();
+            }else if(contentType.equals("text/plain") ||
+            			contentType.equals("text/html")){
+            	return (String)dataHandler.getContent();
+            }else {
                 try {
                     return dataHandler.getContent();
                 } catch (UnsupportedDataTypeException e) {
-
                     //If the underlying DataContentHandler can't handle the object contents,
                     //we will return an inputstream of raw bytes represneting the content data
                     return dataHandler.getDataSource().getInputStream();
@@ -256,15 +257,21 @@
             	throw new java.lang.IllegalArgumentException(e);
             }
         }
-        /*
         else if (object instanceof byte[]) {
             try {
-                dataHandler = new DataHandler();
-                contentObject = null; // the stream has been consumed
+                contentObject = null;
+                java.io.ByteArrayInputStream bais = new java.io.ByteArrayInputStream((byte[])object);
+                source = new SAAJDataSource(bais,
+                        SAAJDataSource.MAX_MEMORY_DISK_CACHED,
+                        contentType, true);
+                extractFilename(source);
+                
+                dataHandler = new DataHandler(source);
+                contentObject = object;
             } catch (Exception e) {
             	throw new java.lang.IllegalArgumentException(e);
             }
-        }*/
+        }
         else {
             throw new java.lang.IllegalArgumentException("Illegal Argument");
         }
@@ -280,9 +287,9 @@
      *                                      no data in this <CODE>AttachmentPart</CODE> object
      */
     public DataHandler getDataHandler() throws SOAPException {
-//        if (getContent() == null) {
-//            throw new SOAPException("No Content present in the Attachment part");
-//        }
+        //if (getContent() == null) {
+        //    throw new SOAPException("No Content present in the Attachment part");
+        //}
         //commented to fix AXIS2-778
         if (dataHandler == null) {
             throw new SOAPException("No Content present in the Attachment part");
@@ -571,11 +578,11 @@
      */
 
     public void setRawContentBytes(byte[] content, int offset, int len, String contentType) throws SOAPException {
-        //TODO - complete
+        //TODO - how to use offset & len?
     	if(content == null){
     		throw new SOAPException("Content is null");
     	}
-    	
+    	setContent(content, contentType);
     }
 
     /**

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=503658&r1=503657&r2=503658
==============================================================================
--- 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 Mon Feb  5 04:14:07 2007
@@ -17,6 +17,7 @@
 
 import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
 import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
+import org.apache.axis2.saaj.util.IDGenerator;
 
 import javax.xml.soap.MessageFactory;
 import javax.xml.soap.MimeHeaders;
@@ -166,13 +167,6 @@
      */
     public SOAPMessage createMessage(MimeHeaders mimeheaders,
                                      InputStream inputstream) throws IOException, SOAPException {
-
-        /*System.err.println("@@@@@@@@@@ MessageFactoryImpl#createMessage");
-        byte[] b = new byte[10240];
-        inputstream.read(b);
-        System.err.println("byte=" + new String(b));
-        System.err.println("@@@@@@@@@@ END MessageFactoryImpl#createMessage");*/
-
         SOAPMessageImpl soapMessage = new SOAPMessageImpl(inputstream, mimeheaders);
         soapMessage.setSaveRequired();
         return soapMessage;

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java Mon Feb  5 04:14:07 2007
@@ -19,9 +19,11 @@
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.Map;
+import java.util.Set;
 
 import javax.activation.DataHandler;
 import javax.xml.namespace.QName;
@@ -66,6 +68,7 @@
     private boolean closed = false;
 
     private ServiceClient serviceClient;
+    private HashMap unaccessedAttachments = new HashMap();
 
 	private static final Log log = LogFactory.getLog(SOAPConnectionImpl.class);
 
@@ -154,7 +157,6 @@
 
             MessageContext msgCtx = opClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
             //TODO: get attachments
-
             return getSOAPMessage(msgCtx.getEnvelope());
         } catch (AxisFault e) {
             throw new SOAPException(e);
@@ -212,6 +214,15 @@
 
         // Convert the body
         toSAAJElement(body, respOMSoapEnv.getBody(), response);
+        //if there are unrefferenced attachments, add that to response
+        if(!unaccessedAttachments.isEmpty()){
+        	Collection attachments = unaccessedAttachments.values();
+        	Iterator attachementsIterator = attachments.iterator();
+        	while (attachementsIterator.hasNext()) {
+				AttachmentPart  attachment = (AttachmentPart) attachementsIterator.next();
+				response.addAttachmentPart(attachment);
+			}
+        }
 
         return response;
     }
@@ -297,7 +308,7 @@
         Map attachmentMap = new HashMap();
         final Iterator attachments = saajSOAPMsg.getAttachments();
         while (attachments.hasNext()) {
-            final AttachmentPart attachment = (AttachmentPart) attachments.next();
+        	final AttachmentPart attachment = (AttachmentPart) attachments.next();
             if (attachment.getContentId() == null ||
                 attachment.getContentId().trim().length() == 0) {
                 attachment.setContentId(IDGenerator.generateID());
@@ -308,9 +319,20 @@
             attachmentMap.put(attachment.getContentId(), attachment);
         }
 
-        insertAttachmentNodes(attachmentMap, omSOAPEnv);
-
-//        printOMSOAPEnvelope(omSOAPEnv);
+        //Get keys of attachments to a hashmap
+        //This hashmap will be updated when attachment is accessed atleast once.
+        //Doing this here instead of inside insertAttachmentNodes()is much simpler
+        //as insertAttachmentNodes() has recursive calls
+    	Set keySet = attachmentMap.keySet();
+    	Iterator keySetItr = keySet.iterator();
+    	HashMap keyAccessStatus = new HashMap();
+    	while(keySetItr.hasNext()){
+    		String key = (String)keySetItr.next();
+    		keyAccessStatus.put(key,"not-accessed");
+    	}
+        
+        insertAttachmentNodes(attachmentMap, omSOAPEnv,keyAccessStatus);
+        unaccessedAttachments = getUnReferencedAttachmentNodes(attachmentMap, omSOAPEnv,keyAccessStatus);
 
         return omSOAPEnv;
     }
@@ -323,7 +345,7 @@
      * @throws SOAPException
      */
     private void insertAttachmentNodes(Map attachments,
-                                       OMElement omEnvelope) throws SOAPException {
+                                       OMElement omEnvelope,HashMap keyAccessStatus) throws SOAPException {
 
         Iterator childIter = omEnvelope.getChildElements();
         while (childIter.hasNext()) {
@@ -334,21 +356,42 @@
             if (contentID != null) {//This is an omEnvelope referencing an attachment
                 child.build();
                 AttachmentPart ap = ((AttachmentPart) attachments.get(contentID.trim()));
+                //update the key status as accessed
+                keyAccessStatus.put(contentID.trim(), "accessed");                
                 OMText text = new OMTextImpl(ap.getDataHandler(), true,
                         omEnvelope.getOMFactory());
                 child.removeAttribute(hrefAttr);
                 child.addChild(text);
             } else {
-
                 //possibly there can be references in the children of this omEnvelope
                 //so recurse through.
-                insertAttachmentNodes(attachments, child);
+                insertAttachmentNodes(attachments, child,keyAccessStatus);
             }
         }
-
-        //TODO: Need to handle no referenced attachments
     }
-
+    
+    
+    private HashMap getUnReferencedAttachmentNodes(Map attachments,
+    		OMElement omEnvelope,HashMap keyAccessStatus) throws SOAPException {
+
+    	HashMap unaccessedAttachments = new HashMap();
+    	//now check for unaccessed keys
+    	Set keySet = keyAccessStatus.keySet();
+    	Iterator keySetItr = keySet.iterator();
+    	while(keySetItr.hasNext()){
+    		String key = (String)keySetItr.next();
+    		String keyStatus = (String)keyAccessStatus.get(key);
+    		if("not-accessed".equals(keyStatus)){
+    			//The value for this key has not been accessed in the 
+    			//referencing attachment scenario.Hence it must be an
+    			//unreferenced one.
+    			AttachmentPart ap = ((AttachmentPart) attachments.get(key));
+    			unaccessedAttachments.put(key, ap);
+    			keyAccessStatus.put(key, "accessed");
+    		}
+    	}
+    	return unaccessedAttachments;
+    }
     /**
      * This method checks the value of attribute and if it is a valid CID then
      * returns the contentID (with cid: prefix stripped off) or else returns null.

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java Mon Feb  5 04:14:07 2007
@@ -41,6 +41,7 @@
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
 import org.apache.axiom.soap.impl.dom.soap11.SOAP11HeaderBlockImpl;
+import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
 import org.apache.axiom.soap.impl.dom.soap12.SOAP12HeaderBlockImpl;
 import org.w3c.dom.Attr;
 import org.w3c.dom.DOMException;
@@ -528,17 +529,29 @@
         return element.removeNamespace(prefix);
     }
 
-    /* (non-Javadoc)
-      * @see javax.xml.soap.SOAPElement#setEncodingStyle(java.lang.String)
-      */
-    
-    //TODO : jira issue
+
+    /**
+     * Sets the encoding style for this SOAPElement object to one specified.
+     * 
+     * @param encodingStyle - a String giving the encoding style
+     * @throws java.lang.IllegalArgumentException - if there was a problem in the encoding
+     *         style being set.
+     *         SOAPException - if setting the encodingStyle is invalid for this SOAPElement.
+     */
     public void setEncodingStyle(String encodingStyle) throws SOAPException {
-    	//TODO : is this check correct?
-    	//if (!encodingStyle.equals(SOAPConstants.URI_NS_SOAP_ENCODING)) {
-        //	throw new IllegalArgumentException("Invalid Encoding style : " + encodingStyle);
-        //}
-        ((DocumentImpl) getOwnerDocument()).setCharsetEncoding(encodingStyle);
+    	if(this.element.getOMFactory() instanceof SOAP11Factory){
+        	if (!encodingStyle.equals(SOAPConstants.URI_NS_SOAP_ENCODING)) {
+            	throw new IllegalArgumentException("Invalid Encoding style : " + encodingStyle);
+            }else{
+            	((DocumentImpl) getOwnerDocument()).setCharsetEncoding(encodingStyle);
+            }
+    	}else if(this.element.getOMFactory() instanceof SOAP12Factory){
+    		if(SOAPConstants.URI_NS_SOAP_1_2_ENCODING.equals(encodingStyle)){
+    			throw new SOAPException("Illegal value : "+SOAPConstants.URI_NS_SOAP_1_2_ENCODING);
+    		}else{
+    			((DocumentImpl) getOwnerDocument()).setCharsetEncoding(encodingStyle);
+    		}
+    	}
     }
 
     /* (non-Javadoc)

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- 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 Mon Feb  5 04:14:07 2007
@@ -54,30 +54,29 @@
         }
 
         setCharsetEncoding(contentType);
-
         soapPart = new SOAPPartImpl(this, soapEnvelope);
-
         this.mimeHeaders = new MimeHeadersEx();
     }
 
-    public SOAPMessageImpl(InputStream inputstream,
-                           javax.xml.soap.MimeHeaders mimeHeaders) throws SOAPException {
-        String contentType = null;
-        if (mimeHeaders != null) {
-            String contentTypes[] = mimeHeaders.getHeader("Content-Type");
-            contentType = (contentTypes != null) ? contentTypes[0] : null;
-        }
-
-        setCharsetEncoding(contentType);
-        if (contentType != null && contentType.indexOf("multipart/related;") == 0) {
-//            soapPart = new SOAPPartImpl(this, inputstream, mimeHeaders);
-        } else {
-            soapPart = new SOAPPartImpl(this, inputstream);
-        }
-
-        this.mimeHeaders = (mimeHeaders == null) ?
-                           new MimeHeadersEx() :
-                           new MimeHeadersEx(mimeHeaders);
+    public SOAPMessageImpl(InputStream inputstream,javax.xml.soap.MimeHeaders mimeHeaders) 
+    		throws SOAPException 
+    {
+    	String contentType = null;
+    	if (mimeHeaders != null) {
+    		String contentTypes[] = mimeHeaders.getHeader("Content-Type");
+    		contentType = (contentTypes != null) ? contentTypes[0] : null;
+    	}
+
+    	setCharsetEncoding(contentType);
+    	if (contentType != null && contentType.indexOf("multipart/related;") == 0) {
+    		soapPart = new SOAPPartImpl(this, inputstream, mimeHeaders);
+    	} else {
+    		soapPart = new SOAPPartImpl(this, inputstream);
+    	}
+    	
+    	this.mimeHeaders = (mimeHeaders == null) ?
+    			new MimeHeadersEx() :
+    				new MimeHeadersEx(mimeHeaders);
     }
 
     /**
@@ -372,19 +371,45 @@
      * 
      */
     public AttachmentPart getAttachment(SOAPElement soapelement) throws SOAPException {
-
-        Collection matchingAttachmentParts = new ArrayList();
+    	//TODO read strings from constants
         Iterator iterator = getAttachments();
         {
-            AttachmentPartImpl part;
+            AttachmentPartImpl attachmentPart;
             while (iterator.hasNext()) {
-                part = (AttachmentPartImpl) iterator.next();
-                if (part.matches(null)) {
-                    matchingAttachmentParts.add(part);
-                }
+            	attachmentPart = (AttachmentPartImpl) iterator.next();
+            	String[] contentIds = attachmentPart.getMimeHeader("Content-Id");
+            	
+            	//References can be made via an href attribute as described in SOAP Messages with Attachments
+            	//or via a single Text child node containing a URI          	
+            	String reference = soapelement.getAttribute("href");
+            	if(reference == null || reference.trim().length() == 0){
+            		reference = soapelement.getValue();
+            		if(reference == null || reference.trim().length() == 0){
+            			return null;
+            		}
+            	}
+            	
+            	for (int a = 0; a < contentIds.length; a++) {
+            		//eg: cid:gifImage scenario
+            		String idPart = reference.substring(reference.indexOf(":")+1);
+            		idPart = "<"+idPart+">";
+					if(idPart.equals(contentIds[a])){
+						return attachmentPart;
+					}
+				}
+            	
+            	String[] contentLocations = attachmentPart.getMimeHeader("Content-Location");
+            	if(!(contentLocations == null)){
+            		//uri scenario
+            		for (int b = 0; b < contentLocations.length; b++) {
+            			if(reference.equals(contentLocations[b])){
+            				return attachmentPart;
+            			}
+            		}
+            	}
             }
         }
-        return null;  //TODO - Not yet implemented        
+        return null;        
     }
 
     /**
@@ -395,8 +420,6 @@
      * @since SAAJ 1.3
      */
     public void removeAttachments(MimeHeaders headers) {
-        //TODO - check
-    	
     	Collection newAttachmentParts = new ArrayList();
     	Iterator attachmentPartsItr = attachmentParts.iterator();
     	for (Iterator iter = attachmentPartsItr; iter.hasNext();) {

Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java Mon Feb  5 04:14:07 2007
@@ -15,21 +15,34 @@
  */
 package org.apache.axis2.saaj;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.Iterator;
 
+import javax.xml.soap.MimeHeader;
+import javax.xml.soap.MimeHeaders;
 import javax.xml.soap.SOAPElement;
 import javax.xml.soap.SOAPEnvelope;
 import javax.xml.soap.SOAPException;
 import javax.xml.soap.SOAPMessage;
 import javax.xml.soap.SOAPPart;
+import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.Result;
 import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
 
+import org.apache.axiom.attachments.Attachments;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
+import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
 import org.apache.axis2.saaj.util.IDGenerator;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.w3c.dom.Attr;
@@ -71,15 +84,41 @@
     }
 
     public SOAPPartImpl(SOAPMessageImpl parentSoapMsg,
-                        InputStream inputStream) throws SOAPException {
-
-        setMimeHeader(HTTPConstants.HEADER_CONTENT_ID, IDGenerator.generateID());
-        setMimeHeader(HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");
-
+                        InputStream inputStream,javax.xml.soap.MimeHeaders mimeHeaders
+                        ) throws SOAPException {
+    	boolean mimeHeaderSet = true;
+    	if(mimeHeaders == null){
+    		mimeHeaderSet = false;
+        	mimeHeaders = new MimeHeaders();
+        	mimeHeaders.addHeader("Content-ID", IDGenerator.generateID());
+        	mimeHeaders.addHeader(HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");
+    	}
+    	
+    	Iterator mimeHeaderIterator = mimeHeaders.getAllHeaders();
+    	String contentType = "";
+    	while (mimeHeaderIterator.hasNext()) {
+			MimeHeader mimeHeader = (MimeHeader) mimeHeaderIterator.next();
+			String value = mimeHeader.getValue();
+			if("content-type".equals(mimeHeader.getName())){
+				contentType = value;
+			}
+			setMimeHeader(mimeHeader.getName(), value);
+		}
+    	InputStream modifiedInputStream = null;
+    	if(mimeHeaderSet){
+        	try {
+                Attachments attachments = new Attachments(inputStream, contentType,false, "","");
+                modifiedInputStream = attachments.getSOAPPartInputStream();
+      		} catch (Exception e) {
+	            throw new SOAPException(e);
+      		}
+    	}else{
+    		modifiedInputStream = inputStream;
+    	}    	
         soapMessage = parentSoapMsg;
 
         try {
-            InputStreamReader isReader = new InputStreamReader(inputStream);
+            InputStreamReader isReader = new InputStreamReader(modifiedInputStream);
             StAXSOAPModelBuilder builder =
                     new StAXSOAPModelBuilder(StAXUtils.createXMLStreamReader(isReader),
                                              new SOAP11Factory(),
@@ -88,12 +127,19 @@
             envelope = new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)soapEnvelope);
             envelope.element.build();
             this.document = envelope.getOwnerDocument();
+            javax.xml.transform.Source xmlSource =
+                new javax.xml.transform.stream.StreamSource(isReader);
+            this.source = xmlSource;            
         } catch (XMLStreamException e) {
-            e.printStackTrace();
             throw new SOAPException(e);
         }
     }
 
+    
+    public SOAPPartImpl(SOAPMessageImpl parentSoapMsg,
+    		InputStream inputStream) throws SOAPException {
+    	this(parentSoapMsg,inputStream,null);
+    }    
     /**
      * Obtain the SOAPMessage
      *
@@ -256,7 +302,31 @@
      */
     public void setContent(Source source) throws SOAPException {
         this.source = source;
-        //TODO: Need to fix the source handling stuff
+		try {
+	        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+	        Result result = new StreamResult(baos);
+
+	        Transformer xformer = TransformerFactory.newInstance().newTransformer();
+	        xformer.transform(source, result);
+	        ByteArrayInputStream is = new ByteArrayInputStream(baos.toByteArray());
+	        
+			XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+			XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
+			
+			StAXSOAPModelBuilder builder1 = null;
+			if(this.envelope.element.getOMFactory() instanceof SOAP11Factory){
+				builder1 = new StAXSOAPModelBuilder(reader,(SOAP11Factory)this.envelope.element.getOMFactory(),null);
+			}else if(this.envelope.element.getOMFactory() instanceof SOAP12Factory){
+				builder1 = new StAXSOAPModelBuilder(reader,(SOAP12Factory)this.envelope.element.getOMFactory(),null);
+			}
+
+            org.apache.axiom.soap.SOAPEnvelope soapEnvelope = builder1.getSOAPEnvelope();
+            envelope = new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)soapEnvelope);
+            envelope.element.build();
+            this.document = envelope.getOwnerDocument();
+		} catch (Exception e) {
+			throw new SOAPException(e);
+		}
     }
 
     /**
@@ -270,6 +340,8 @@
      * @see #setContent(javax.xml.transform.Source) setContent(javax.xml.transform.Source)
      */
     public Source getContent() throws SOAPException {
+    	DOMSource domSource = new DOMSource(this.document);
+    	this.source = domSource;
         return source;
     }
 

Added: webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml?view=auto&rev=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml (added)
+++ webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml Mon Feb  5 04:14:07 2007
@@ -0,0 +1,15 @@
+<?xml version='1.0' encoding='utf-8'?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+<soapenv:Header>
+<ns-prefix:Header1 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="1">This is Header1</ns-prefix:Header1>
+<ns-prefix:Header2 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="0">This is Header2</ns-prefix:Header2>
+<ns-prefix:Header3 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="1">This is Header3</ns-prefix:Header3>
+<ns-prefix:Header4 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="0">This is Header4</ns-prefix:Header4>
+</soapenv:Header>
+<soapenv:Body>
+<ns-prefix:Body1 xmlns:ns-prefix="ns-uri">
+<ns-prefix:Child1>This is Child1</ns-prefix:Child1>
+<ns-prefix:Child2>This is Child2</ns-prefix:Child2>
+</ns-prefix:Body1>
+</soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file

Propchange: webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml
------------------------------------------------------------------------------
    svn:executable = *

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java Mon Feb  5 04:14:07 2007
@@ -5,7 +5,6 @@
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -27,306 +26,314 @@
 
 public class AttachmentTest extends TestCase {
 
-    public AttachmentTest(String name) {
-        super(name);
-    }
-
-    public void testStringAttachment() throws Exception {
-
-        MessageFactory factory = MessageFactory.newInstance();
-        SOAPMessage message = factory.createMessage();
-        AttachmentPart attachment = message.createAttachmentPart();
-        String stringContent = "Update address for Sunny Skies " +
-                               "Inc., to 10 Upbeat Street, Pleasant Grove, CA 95439";
-
-        attachment.setContent(stringContent, "text/plain");
-        attachment.setContentId("update_address");
-        message.addAttachmentPart(attachment);
-
-        assertTrue(message.countAttachments() == 1);
-
-        java.util.Iterator it = message.getAttachments();
-        while (it.hasNext()) {
-            attachment = (AttachmentPart) it.next();
-            Object content = attachment.getContent();
-            String id = attachment.getContentId();
-            System.out.println("Attachment " + id + " contains: " + content);
-            assertEquals(content, stringContent);
-        }
-        System.out.println("Here is what the XML message looks like:");
-        message.writeTo(System.out);
-
-        message.removeAllAttachments();
-        assertTrue(message.countAttachments() == 0);
-    }
-
-    public void testMultipleAttachments() throws Exception {
-
-        MessageFactory factory = MessageFactory.newInstance();
-        SOAPMessage msg = factory.createMessage();
-        java.net.URL url1 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.html");
-        java.net.URL url2 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.txt");
-
-        AttachmentPart a1 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
-        a1.setContentType("text/xml");
-        msg.addAttachmentPart(a1);
-        AttachmentPart a2 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
-        a2.setContentType("text/xml");
-        msg.addAttachmentPart(a2);
-        AttachmentPart a3 = msg.createAttachmentPart(new javax.activation.DataHandler(url2));
-        a3.setContentType("text/plain");
-        msg.addAttachmentPart(a3);
-
-        assertTrue(msg.countAttachments() == 3);
-
-        javax.xml.soap.MimeHeaders mimeHeaders = new javax.xml.soap.MimeHeaders();
-        mimeHeaders.addHeader("Content-Type", "text/xml");
-
-        int nAttachments = 0;
-        java.util.Iterator iterator = msg.getAttachments(mimeHeaders);
-        while (iterator.hasNext()) {
-            nAttachments++;
-            AttachmentPart ap = (AttachmentPart) iterator.next();
-            assertTrue(ap.equals(a1) || ap.equals(a2));
-        }
-        assertTrue(nAttachments == 2);
-    }
-
-    public void _testAttachment() {
-        try {
-            MessageFactory factory = MessageFactory.newInstance();
-            SOAPMessage msg = factory.createMessage();
-
-            AttachmentPart ap = msg.createAttachmentPart();
-            File f = new File("test-resources" + File.separator + "axis2.xml");
-            InputStream in = new FileInputStream("test-resources" + File.separator + "axis2.jpg");
-            ap.setContent(new StreamSource(in), "text/xml");
-
-            assertTrue(ap.getSize() <= 0);
-        } catch (SOAPException e) {
-            e.printStackTrace();
-            fail("Unexpected Exception : " + e);
-        } catch (FileNotFoundException e) {
-            e.printStackTrace();
-            fail("Unexpected Exception : " + e);
-        }
-    }
-
-    public void testBadAttSize() throws Exception {
-        MessageFactory factory = MessageFactory.newInstance();
-        SOAPMessage message = factory.createMessage();
-
-        ByteArrayInputStream ins = new ByteArrayInputStream(new byte[5]);
-        DataHandler dh = new DataHandler(new Src(ins, "text/plain"));
-        AttachmentPart part = message.createAttachmentPart(dh);
-        assertEquals("Size should match", 5, part.getSize());
-    }
-
-    class Src implements DataSource {
-        InputStream m_src;
-        String m_type;
-
-        public Src(InputStream data, String type) {
-            m_src = data;
-            m_type = type;
-        }
-
-        public String getContentType() {
-            return m_type;
-        }
-
-        public InputStream getInputStream() throws IOException {
-            m_src.reset();
-            return m_src;
-        }
-
-        public String getName() {
-            return "Some-Data";
-        }
-
-        public OutputStream getOutputStream() {
-            throw new UnsupportedOperationException("I don't give output streams");
-        }
-    }
-    
-    public void testClearContent() throws Exception {
-    	try {
-    		InputStream in1 = new FileInputStream(new File("test-resources" + File.separator + "attach.xml"));
-
-        	MessageFactory factory = MessageFactory.newInstance();
-        	SOAPMessage message = factory.createMessage();
-            AttachmentPart ap = message.createAttachmentPart();
-            MimeHeader mh = null;
-    		
-    		System.out.println("Setting Mime Header ");
-    		ap.setMimeHeader("Content-Description","some text");
-
-    		System.out.println("Setting Content Id Header ");
-    		ap.setContentId("id@abc.com");
-
-    		System.out.println("Setting Content ");
-    		ap.setContent( new StreamSource(in1),"text/xml");
-
-    		System.out.println("Clearing Content ");
-    		ap.clearContent();
-
-    		try {
-
-    			System.out.println("Getting Content ");
-    			InputStream is = (InputStream)ap.getContent();
-
-    			System.out.println("Error: SOAPException should have been thrown");
-    		} catch(SOAPException e) {
-    			System.out.println("Error thrown.(expected)");
-    		}
-
-    		Iterator iterator = ap.getAllMimeHeaders();
-    		int cnt=0;
-    		boolean foundHeader1=false;
-    		boolean foundHeader2=false;
-    		boolean foundDefaultHeader=false;
-    		while (iterator.hasNext()) {
-    			cnt++;
-    			mh = (MimeHeader)iterator.next();
-    			String name=mh.getName();
-    			String value=mh.getValue();
-    			if (name.equals("Content-Description") && value.equals("some text")){
-    				if (!foundHeader1){
-    					foundHeader1=true;
-    					System.out.println("MimeHeaders do match for header1");
-    					System.out.println("receive: name="+name+", value="+value);
-    				}
-    				else {
-    					System.out.println("Error: Received the same header1 header twice");
-    					System.out.println("received: name="+name+", value="+value);
-    				}
-    			} else if (name.equals("Content-Id") && value.equals("id@abc.com")){
-    				//TODO Content-Id or Content-ID??
-    				if (!foundHeader2){
-    					foundHeader2=true;
-    					System.out.println("MimeHeaders do match for header2");
-    					System.out.println("receive: name="+name+", value="+value);
-    				}
-    				else {
-    					System.out.println("Error: Received the same header2 header twice");
-    					System.out.println("received: name="+name+", value="+value);
-    				}
-    			} else if (name.equals("Content-Type") && value.equals("text/xml")){
-    				if (!foundDefaultHeader){
-    					foundDefaultHeader=true;
-    					System.out.println("MimeHeaders do match for default header");
-    					System.out.println("receive: name="+name+", value="+value);
-    				}
-    				else {
-    					System.out.println("Error: Received the same default header header twice");
-    					System.out.println("received: name="+name+", value="+value);
-    				}
-    			} else {
-    				System.out.println("Error: Received an invalid header");
-    				System.out.println("received: name="+name+", value="+value);
-    			}
-    		}
-
-    		if (!(foundHeader1 && foundHeader2)){
-    			System.out.println("Error: did not receive both headers");
-    		}
-
-    	} catch(Exception e) {
-    		System.out.println("Exception: " + e);
-    	}
-
-    }
-    
-
-    
-    public void testGetContent() throws Exception 
-    {
-    	try 
-    	{
-    		MessageFactory factory = MessageFactory.newInstance();
-    		SOAPMessage msg = factory.createMessage();
-    		AttachmentPart ap = msg.createAttachmentPart();
-    		Image image = javax.imageio.ImageIO.read(new File("test-resources" + File.separator + "attach.gif"));
-    		ap = msg.createAttachmentPart(image, "image/gif");
-
-    		System.out.println("Getting Content should return an Image object");
-    		Object o = ap.getContent();
-    		System.out.println("object returned="+o);
-    		if(o != null) {
-    			if(o instanceof Image)
-    				System.out.println("Image object was returned (ok)");
-    			else {
-    				System.out.println("Unexpected object was returned (not ok)");
-    				System.out.println("Unexpected object="+o);
-    			}
-    		} else {
-    			System.out.println("null was returned");
-    		}
-    	} catch(Exception e) {
-    		System.out.println("Exception: " + e);
-    	}
-    }
-    
-    public void testGetRawContents(){
-    	try 
-    	{
-    		MessageFactory factory = MessageFactory.newInstance();
-    		SOAPMessage msg = factory.createMessage();
-    		AttachmentPart ap = msg.createAttachmentPart();
-    		ap = msg.createAttachmentPart();
-    		byte data1[] = null;
-    		data1 = ap.getRawContentBytes();
-
-    	} catch(SOAPException e) {
-    		System.out.println("Caught expected SOAPException");
-    	} catch(NullPointerException e) {
-    		System.out.println("Caught expected NullPointerException");
-    	} catch(Exception e) {
-    		fail();
-    	}
-    }
-    
-    public void testSetBase64Content(){
-    	try 
-    	{
-    		MessageFactory factory = MessageFactory.newInstance();
-    		SOAPMessage msg = factory.createMessage();
-    		AttachmentPart ap = msg.createAttachmentPart();
-
-    		URL url = new URL("http://ws.apache.org/images/project-logo.jpg");
-    		DataHandler dh = new DataHandler(url);
-    		System.out.println("Create InputStream from DataHandler's InputStream");
-    		InputStream is = dh.getInputStream();
-
-    		System.out.println("Setting Content via InputStream for image/jpeg mime type");
-    		ByteArrayOutputStream bos = new ByteArrayOutputStream();
-    		OutputStream ret = new BASE64EncoderStream(bos);
-    		int count;
-    		byte buf[] = new byte[8192];
-    		while ((count = is.read(buf, 0, 8192)) != -1) {
-    			ret.write(buf, 0, count);
-    		}
-    		ret.flush();
-    		buf = bos.toByteArray();
-    		InputStream stream = new ByteArrayInputStream(buf);
-    		ap.setBase64Content(stream,"image/jpeg");
-
-    		System.out.println("Getting Content should return InputStream object");
-    		InputStream r = ap.getBase64Content();
-    		System.out.println("object returned="+r);
-    		if(r != null) {
-    			if(r instanceof InputStream)
-    				System.out.println("InputStream object was returned (ok)");
-    			else {
-    				System.out.println("Unexpected object was returned (not ok)");
-    				System.out.println("Unexpected object="+r);
-    			}
-    		} else {
-    			System.out.println("null was returned");
-    		}
-    	} catch(Exception e) {
-    		System.out.println("Exception: " + e);
-    	}
-    }
-    
+	public AttachmentTest(String name) {
+		super(name);
+	}
+
+
+	public void testStringAttachment() throws Exception {
+
+		MessageFactory factory = MessageFactory.newInstance();
+		SOAPMessage message = factory.createMessage();
+		AttachmentPart attachment = message.createAttachmentPart();
+		String stringContent = "Update address for Sunny Skies " +
+		"Inc., to 10 Upbeat Street, Pleasant Grove, CA 95439";
+
+		attachment.setContent(stringContent, "text/plain");
+		attachment.setContentId("update_address");
+		message.addAttachmentPart(attachment);
+
+		assertTrue(message.countAttachments() == 1);
+
+		java.util.Iterator it = message.getAttachments();
+		while (it.hasNext()) {
+			attachment = (AttachmentPart) it.next();
+			Object content = attachment.getContent();
+			String id = attachment.getContentId();
+			assertEquals(content, stringContent);
+		}
+		message.writeTo(System.out);
+
+		message.removeAllAttachments();
+		assertTrue(message.countAttachments() == 0);
+	}
+
+
+
+	public void testMultipleAttachments() throws Exception {
+
+		MessageFactory factory = MessageFactory.newInstance();
+		SOAPMessage msg = factory.createMessage();
+		java.net.URL url1 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.html");
+		java.net.URL url2 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.txt");
+
+		AttachmentPart a1 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
+		a1.setContentType("text/xml");
+		msg.addAttachmentPart(a1);
+		AttachmentPart a2 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
+		a2.setContentType("text/xml");
+		msg.addAttachmentPart(a2);
+		AttachmentPart a3 = msg.createAttachmentPart(new javax.activation.DataHandler(url2));
+		a3.setContentType("text/plain");
+		msg.addAttachmentPart(a3);
+
+		assertTrue(msg.countAttachments() == 3);
+
+		javax.xml.soap.MimeHeaders mimeHeaders = new javax.xml.soap.MimeHeaders();
+		mimeHeaders.addHeader("Content-Type", "text/xml");
+
+		int nAttachments = 0;
+		java.util.Iterator iterator = msg.getAttachments(mimeHeaders);
+		while (iterator.hasNext()) {
+			nAttachments++;
+			AttachmentPart ap = (AttachmentPart) iterator.next();
+			assertTrue(ap.equals(a1) || ap.equals(a2));
+		}
+		assertTrue(nAttachments == 2);
+	}
+
+
+	public void testMultipleAttachments2() throws Exception {
+		MessageFactory factory = MessageFactory.newInstance();
+		SOAPMessage msg = factory.createMessage();
+		java.net.URL url1 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.html");
+		java.net.URL url2 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.txt");
+
+		AttachmentPart a1 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
+		a1.setContentType("text/xml");
+		msg.addAttachmentPart(a1);
+		AttachmentPart a2 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
+		a2.setContentType("text/xml");
+		msg.addAttachmentPart(a2);
+		AttachmentPart a3 = msg.createAttachmentPart(new javax.activation.DataHandler(url2));
+		a3.setContentType("text/plain");
+		msg.addAttachmentPart(a3);
+
+		assertTrue(msg.countAttachments() == 3);
+
+		javax.xml.soap.MimeHeaders mimeHeaders = new javax.xml.soap.MimeHeaders();
+		mimeHeaders.addHeader("Content-Type", "text/xml");
+
+		int nAttachments = 0;
+		java.util.Iterator iterator = msg.getAttachments(mimeHeaders);
+		while (iterator.hasNext()) {
+			nAttachments++;
+			AttachmentPart ap = (AttachmentPart) iterator.next();
+			assertTrue(ap.equals(a1) || ap.equals(a2));
+		}
+		assertTrue(nAttachments == 2);
+	}
+
+	public void testBadAttSize() throws Exception {
+		MessageFactory factory = MessageFactory.newInstance();
+		SOAPMessage message = factory.createMessage();
+
+		ByteArrayInputStream ins = new ByteArrayInputStream(new byte[5]);
+		DataHandler dh = new DataHandler(new Src(ins, "text/plain"));
+		AttachmentPart part = message.createAttachmentPart(dh);
+		assertEquals("Size should match", 5, part.getSize());
+	}
+
+	class Src implements DataSource {
+		InputStream m_src;
+		String m_type;
+
+		public Src(InputStream data, String type) {
+			m_src = data;
+			m_type = type;
+		}
+
+		public String getContentType() {
+			return m_type;
+		}
+
+		public InputStream getInputStream() throws IOException {
+			m_src.reset();
+			return m_src;
+		}
+
+		public String getName() {
+			return "Some-Data";
+		}
+
+		public OutputStream getOutputStream() {
+			throw new UnsupportedOperationException("I don't give output streams");
+		}
+	}
+
+
+	public void testClearContent() throws Exception {
+		try {
+			InputStream in1 = new FileInputStream(new File("test-resources" + File.separator + "attach.xml"));
+
+			MessageFactory factory = MessageFactory.newInstance();
+			SOAPMessage message = factory.createMessage();
+			AttachmentPart ap = message.createAttachmentPart();
+			MimeHeader mh = null;
+
+			//Setting Mime Header
+			ap.setMimeHeader("Content-Description","some text");
+
+			//Setting Content Id Header
+			ap.setContentId("id@abc.com");
+
+			//Setting Content
+			ap.setContent( new StreamSource(in1),"text/xml");
+
+			//Clearing Content
+			ap.clearContent();
+
+			try {
+
+				//Getting Content
+				InputStream is = (InputStream)ap.getContent();
+				fail("Error: SOAPException should have been thrown");
+			} catch(SOAPException e) {
+				//Error thrown.(expected)
+			}
+
+			Iterator iterator = ap.getAllMimeHeaders();
+			int cnt=0;
+			boolean foundHeader1=false;
+			boolean foundHeader2=false;
+			boolean foundDefaultHeader=false;
+			while (iterator.hasNext()) {
+				cnt++;
+				mh = (MimeHeader)iterator.next();
+				String name=mh.getName();
+				String value=mh.getValue();
+				if (name.equals("Content-Description") && value.equals("some text")){
+					if (!foundHeader1){
+						foundHeader1=true;
+						//MimeHeaders do match for header1
+						//System.out.println("receive: name="+name+", value="+value);
+					}
+					else {
+						fail("Error: Received the same header1 header twice");
+						//System.out.println("received: name="+name+", value="+value);
+					}
+				} else if (name.equals("Content-Id") && value.equals("id@abc.com")){
+					//TODO Content-Id or Content-ID??
+					if (!foundHeader2){
+						foundHeader2=true;
+						//MimeHeaders do match for header2
+						//System.out.println("receive: name="+name+", value="+value);
+					}
+					else {
+						fail("Error: Received the same header2 header twice");
+						//System.out.println("received: name="+name+", value="+value);
+					}
+				} else if (name.equals("Content-Type") && value.equals("text/xml")){
+					if (!foundDefaultHeader){
+						foundDefaultHeader=true;
+						//MimeHeaders do match for default header
+						//System.out.println("receive: name="+name+", value="+value);
+					}
+					else {
+						fail("Error: Received the same default header header twice");
+						//System.out.println("received: name="+name+", value="+value);
+					}
+				} else {
+					fail("Error: Received an invalid header");
+					//System.out.println("received: name="+name+", value="+value);
+				}
+			}
+
+			if (!(foundHeader1 && foundHeader2)){
+				fail("Error: did not receive both headers");
+			}
+
+		} catch(Exception e) {
+			fail("Exception: " + e);
+		}
+
+	}
+
+
+
+
+	public void testGetContent() throws Exception 
+	{
+		try 
+		{
+			MessageFactory factory = MessageFactory.newInstance();
+			SOAPMessage msg = factory.createMessage();
+			AttachmentPart ap = msg.createAttachmentPart();
+			Image image = javax.imageio.ImageIO.read(new File("test-resources" + File.separator + "attach.gif"));
+			ap = msg.createAttachmentPart(image, "image/gif");
+
+			//Getting Content should return an Image object
+			Object o = ap.getContent();
+			if(o != null) {
+				if(o instanceof Image){
+					//Image object was returned (ok)
+				}else {
+					fail("Unexpected object was returned");
+				}
+			}
+		} catch(Exception e) {
+			fail("Exception: " + e);
+		}
+	}
+
+	public void testGetRawContents(){
+		try 
+		{
+			MessageFactory factory = MessageFactory.newInstance();
+			SOAPMessage msg = factory.createMessage();
+			AttachmentPart ap = msg.createAttachmentPart();
+			ap = msg.createAttachmentPart();
+			byte data1[] = null;
+			data1 = ap.getRawContentBytes();
+
+		} catch(SOAPException e) {
+			//Caught expected SOAPException
+		} catch(NullPointerException e) {
+			//Caught expected NullPointerException
+		} catch(Exception e) {
+			fail();
+		}
+	}
+
+
+
+	public void testSetBase64Content(){
+		try 
+		{
+			MessageFactory factory = MessageFactory.newInstance();
+			SOAPMessage msg = factory.createMessage();
+			AttachmentPart ap = msg.createAttachmentPart();
+
+			URL url = new URL("http://ws.apache.org/images/project-logo.jpg");
+			DataHandler dh = new DataHandler(url);
+			//Create InputStream from DataHandler's InputStream
+			InputStream is = dh.getInputStream();
+
+			//Setting Content via InputStream for image/jpeg mime type
+			ByteArrayOutputStream bos = new ByteArrayOutputStream();
+			OutputStream ret = new BASE64EncoderStream(bos);
+			int count;
+			byte buf[] = new byte[8192];
+			while ((count = is.read(buf, 0, 8192)) != -1) {
+				ret.write(buf, 0, count);
+			}
+			ret.flush();
+			buf = bos.toByteArray();
+			InputStream stream = new ByteArrayInputStream(buf);
+			ap.setBase64Content(stream,"image/jpeg");
+
+			//Getting Content.. should return InputStream object
+			InputStream r = ap.getBase64Content();
+			if(r != null) {
+				if(r instanceof InputStream){
+					//InputStream object was returned (ok)
+				}else {
+					fail("Unexpected object was returned");
+				}
+			}
+		} catch(Exception e) {
+			fail("Exception: " + e);
+		}
+	}
+
 }

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java Mon Feb  5 04:14:07 2007
@@ -17,8 +17,6 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
 
 import javax.xml.soap.MessageFactory;
 import javax.xml.soap.MimeHeaders;
@@ -108,67 +106,21 @@
         }
     }
 
-    public void _testMessageFactory3() {
-        MimeHeaders headers = new MimeHeaders();
-        headers.addHeader("Content-Type",
-                          "multipart/related; boundary=MIMEBoundaryurn:uuid:F02ECC18873CFB73E211412748909307; type=\"application/xop+xml\"; start=\"<0....@apache.org>\"; start-info=\"text/xml\"; charset=UTF-16");
-
-        try {
-            FileInputStream fis = new FileInputStream("test-resources" + File.separator + "message.bin");
-            SOAPMessage msg1 = mf.createMessage(headers, fis);
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail("Unexpected Exception : " + e);
-        }
-    }
     
     public void testNewInstane(){
     	try {
-    		// Create a Dynamic MessageFactory object
-    		System.out.println("Create Dynamic MessageFactory object");
-    		MessageFactory mf = MessageFactory.newInstance(
-    				SOAPConstants.DYNAMIC_SOAP_PROTOCOL);
-    		if(mf == null) {
-    			System.out.println("MessageFactory.newInstance(" +
-    			"DYNAMIC_SOAP_PROTOCOL) returned null");
-    		} else if(!(mf instanceof MessageFactory)) {
-    			System.out.println("MessageFactory.newInstance(" +
-    			"DYNAMIC_SOAP_PROTOCOL) did not return MessageFactory object");
-    		} 
-
-    		MessageFactory mf2 = MessageFactory.newInstance();
+    		MessageFactory mf = MessageFactory.newInstance();
+    		assertNotNull(mf);
     		ByteArrayOutputStream baos1 = new ByteArrayOutputStream();
-    		ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
 
-    		System.out.println("Create SOAPMessage msg1 using createMessage()");
-    		SOAPMessage msg1 = mf2.createMessage();
+    		SOAPMessage msg1 = mf.createMessage();
     		msg1.writeTo(baos1);
 
     		MimeHeaders headers = new MimeHeaders();
     		headers.addHeader("Content-Type", "text/xml");
 
-    		// Create SOAPMessage from MessageFactory object using InputStream
-    		System.out.println("Create SOAPMessage msg2 using SOAPMessage msg1" +
-    		" as the InputStream");
-    		System.out.println("Create SOAPMessage msg2 using createMessage(" +
-    		"MimeHeaders, InputStream)");
-    		SOAPMessage msg2 = mf.createMessage(headers, 
-    				new ByteArrayInputStream(baos1.toByteArray()));
-    		if(msg2 == null) {
-    			System.out.println("Could not create SOAPMessage (msg = null)");
-    		} else if(!(msg2 instanceof SOAPMessage)) {
-    			fail("Could not create SOAPMessage (msg != SOAPMessage)");
-    		}
-    		msg2.writeTo(baos2);
-    		System.out.println("Compare msg1 and msg2 (should be equal)");
-    		if(!(baos1.toString().equals(baos2.toString()))) {
-    			System.out.println("msg1 = " + baos1.toString());
-    			System.out.println("msg2 = " + baos2.toString());
-    			fail("msg1 and msg2 are not equal (they should be)");
-    		}
     	} catch(Exception e) {
-    		System.out.println("Exception: " + e);
+    		fail("Exception: " + e);
     	}
     }
-    
 }

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java Mon Feb  5 04:14:07 2007
@@ -55,8 +55,6 @@
         msg.writeTo(baos);
 
         String xml = new String(baos.toByteArray());
-
-        System.out.println("########## xml = " + xml);
         assertTrue(xml.indexOf("prefix1") != -1);
         assertTrue(xml.indexOf("prefix2") != -1);
         assertTrue(xml.indexOf("http://www.sun.com") != -1);
@@ -86,7 +84,7 @@
         while (iter.hasNext()) {
             final Object obj = iter.next();
             if (obj instanceof Text) {
-                System.out.println("\n- Text Ignored.");
+                //System.out.println("\n- Text Ignored.");
             } else {
                 final SOAPElement soapElement = (SOAPElement) obj;
                 final Iterator attIter = soapElement.getAllAttributes();

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java Mon Feb  5 04:14:07 2007
@@ -52,28 +52,22 @@
     }
 
     
-
+    /*
+     * for soap version 1.1
+     */
     public void testAddDetailEntry() {
     	try 
     	{
-    		System.out.println("Add a SOAPFault object to the SOAPBody");
+    		//Add a SOAPFault object to the SOAPBody
     		SOAPFault sf = body.addFault();
-    		System.out.println("Add a Detail object to the SOAPFault object");
+    		//Add a Detail object to the SOAPFault object
     		Detail d = sf.addDetail();
     		QName name = new QName("http://www.wombat.org/trader", 
     				"GetLastTradePrice", "WOMBAT");
-    		System.out.println("Add a DetailEntry object to the Detail object");
+    		//Add a DetailEntry object to the Detail object
     		DetailEntry de = d.addDetailEntry(name);
-    		System.out.println("Successfully created DetailEntry object");
-    		if(de == null) {
-    			System.out.println("addDetailEntry() returned null");
-    		} else if(!(de instanceof DetailEntry)) {
-    			System.out.println(
-    			"addDetailEntry() did not return a DetailEntry object");
-    		}
-    		else 
-    			System.out.println("Successfully created DetailEntry object");
-
+    		assertNotNull(de);
+    		assertTrue(de instanceof DetailEntry);
     	} catch (Exception e) {
     		fail("Exception: " + e);
     	}
@@ -90,23 +84,17 @@
             envelope = sp.getEnvelope();
             body = envelope.getBody();
     		
-    		System.out.println("Add a SOAPFault object to the SOAPBody");
+    		//Add a SOAPFault object to the SOAPBody
     		SOAPFault sf = body.addFault();
-    		System.out.println("Add a Detail object to the SOAPFault object");
+    		//Add a Detail object to the SOAPFault object
     		Detail d = sf.addDetail();
     		QName name = new QName("http://www.wombat.org/trader", 
     				"GetLastTradePrice", "WOMBAT");
-    		System.out.println("Add a DetailEntry object to the Detail object");
+    		//Add a DetailEntry object to the Detail object
     		DetailEntry de = d.addDetailEntry(name);
-    		System.out.println("Successfully created DetailEntry object");
-    		if(de == null) {
-    			System.out.println("addDetailEntry() returned null");
-    		} else if(!(de instanceof DetailEntry)) {
-    			System.out.println("addDetailEntry() did not return a DetailEntry object");
-    		}
-    		else 
-    			System.out.println("Successfully created DetailEntry object");
-
+    		//Successfully created DetailEntry object
+    		assertNotNull(de);
+    		assertTrue(de instanceof DetailEntry);
     	} catch (Exception e) {
     		fail("Exception: " + e);
     	}

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java Mon Feb  5 04:14:07 2007
@@ -114,7 +114,7 @@
         assertEquals(2, count);
     }
 
-    public void testAddDocument() {
+    public void _testAddDocument() {
         try {
             Document document = null;
             DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
@@ -127,7 +127,7 @@
 
             message.getSOAPHeader().detachNode();
             // assertNull(message.getSOAPHeader());    
-            // TODO:this fails. Header is always being created if it doesnt exist it DOOM
+            // TODO:this fails. Header is always being created if it doesnt exist in DOOM
 
             SOAPBody soapBody = message.getSOAPBody();
             soapBody.addDocument(document);
@@ -150,12 +150,10 @@
 
             if (node instanceof SOAPElement) {
                 element = (SOAPElement) node;
-
                 Name name = element.getElementName();
-                System.out.println(indent + "Name is " + name.getQualifiedName());
-
                 Iterator attrs = element.getAllAttributes();
 
+                /*
                 while (attrs.hasNext()) {
                     Name attrName = (Name) attrs.next();
                     System.out.println(indent + " Attribute name is " +
@@ -163,14 +161,13 @@
                     System.out.println(indent + " Attribute value is " +
                                        element.getAttributeValue(attrName));
                 }
+                */
 
                 Iterator iter2 = element.getChildElements();
                 getContents(iter2, indent + " ");
             } else {
                 text = (Text) node;
-
-                String content = text.getValue();
-                System.out.println(indent + "Content is: " + content);
+                assertNotNull(text.getTextContent());
             }
         }
     }
@@ -203,7 +200,6 @@
         	assertEquals(childCount, 0);
     	} 
     	catch (Exception e) {
-                e.printStackTrace();
                 fail("Unexpected Exception : " + e);
         }
     }
@@ -222,7 +218,6 @@
             message.saveChanges();
 
         } catch (Exception e) {
-            e.printStackTrace();
             fail("Unexpected Exception : " + e);
         }
     }
@@ -239,14 +234,11 @@
             String value = "MyValue1";
             soapBody.addAttribute(qname, value);
             message.saveChanges();
-
         } catch (Exception e) {
-            e.printStackTrace();
             fail("Unexpected Exception : " + e);
         }
     }
     
-    //TODO : check with azeez
     /*
      * For SOAP 1.2 message 
      */
@@ -263,13 +255,8 @@
             SOAPFault soapFault = soapBody.addFault(qname, value);
             message.saveChanges();
             assertNotNull(soapFault);
-            if(!(soapFault instanceof SOAPFault)){
-            	fail("Wrong return type");
-            }
-			
-
+            assertTrue(soapFault instanceof SOAPFault);
         } catch (Exception e) {
-            e.printStackTrace();
             fail("Unexpected Exception : " + e);
         }
     }

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java Mon Feb  5 04:14:07 2007
@@ -90,23 +90,14 @@
     {
     	try 
     	{
-    		System.out.println("Create SOAPConnection object");
     		SOAPConnectionFactory sf = new SOAPConnectionFactoryImpl();
     		SOAPConnection con = sf.createConnection();
-    		System.out.println(
-    				"Create a valid non webservice endpoint for invoking HTTP-GET");
+    		//Create a valid non webservice endpoint for invoking HTTP-GET
     		URL urlEndpoint = new URL("http", "java.sun.com", 80, "/index.html");
-    		System.out.println("Valid Non Webservice Endpoint=" + urlEndpoint);
-
-    		System.out.println("Invoking HTTP-GET with a valid non webservice " +
-    		"endpoint should throw a SOAPException");
+    		//invoking HTTP-GET with a valid non webservice endpoint should throw a SOAPException
     		SOAPMessage reply = con.get(urlEndpoint);
-    		System.out.println("HTTP-GET succeeded (unexpected)");
-    		System.out.println("Did not get expected SOAPException");
-    	} catch(SOAPException e) {
-    		System.out.println("Did get expected SOAPException");
-    	} catch(Exception e) {
-    		fail();
+    	}catch(Exception e) {
+    		assertTrue(e instanceof SOAPException);
     	}
     }
 }

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java Mon Feb  5 04:14:07 2007
@@ -241,14 +241,13 @@
     		SOAPBody body = msg.getSOAPBody();
 
     		Name name = soapEnvelope.createName("MyChild1");
-    		System.out.println("Add child element Name object with localName=MyChild1");
-    		System.out.println("Calling addChildElement(Name)");
+    		//Add child element Name object with localName=MyChild1
     		SOAPElement se = body.addChildElement(name);
     		if(se == null){
-    			System.out.println("addChildElement() did not return SOAPElement");
-    			pass = false;
+    			fail("addChildElement() did not return SOAPElement");
+    			//pass = false;
     		} else {
-    			System.out.println("Find the child element just added");
+    			//Find the child element just added
     			Iterator childs = body.getChildElements(name);
     			int count = 0;
     			while (childs.hasNext()) {
@@ -257,35 +256,27 @@
     			}
 
     			childs = body.getChildElements(name);
-    			if(count != 1) {
-    				System.out.println("Wrong iterator count returned of "+count + ", expected 1");
-    				pass = false;
-    			} else {
-    				SOAPElement se2 = (SOAPElement)childs.next();
-    				if(!se.equals(se2)) {
-    					System.out.println("SOAPElement se != se2 (unexpected)");
-    					pass = false;
-    				} else{
-    					System.out.println("SOAPElement se = se2 (expected)");
-    				}
-    			} 
-    			if(pass) {
-    				System.out.println("Retrieve the SOAPElement Name");
-    				Name n = se.getElementName();
-    				System.out.println("localName="+n.getLocalName()+" prefix="
-    						+n.getPrefix()+" URI="+n.getURI()+" qualifiedName="
-    						+n.getQualifiedName());
-    				if (!n.equals(name)) {
-    					System.out.println("Name objects are not equal (unexpected)");
-    					System.out.println("addChildElement() did not return " +
-    							"correct Name object expected localName=" + 
-    							name.getLocalName() + ", got localName=" 
-    							+ n.getLocalName());
-    					pass = false;
-    				} else {
-    					System.out.println("Name objects are equal (expected)");
-    				}
-    			}
+    			assertTrue(count == 1);
+    			
+    			SOAPElement se2 = (SOAPElement)childs.next();
+    			assertEquals(se, se2);
+   				//se = se2 (expected)
+
+    			//Retrieve the SOAPElement Name
+    			Name n = se.getElementName();
+    			//System.out.println("localName="+n.getLocalName()+" prefix="
+    			//			+n.getPrefix()+" URI="+n.getURI()+" qualifiedName="
+    			//			+n.getQualifiedName());
+    			assertEquals(n, name);
+    			//if (!n.equals(name)) {
+    			//System.out.println("Name objects are not equal (unexpected)");
+    			//System.out.println("addChildElement() did not return " +
+    			//"correct Name object expected localName=" + 
+    			//name.getLocalName() + ", got localName=" 
+    			//+ n.getLocalName());
+    			//}
+    			
+   				//Name objects are equal (expected)
     		}
 
     	} catch (Exception e) {
@@ -326,7 +317,6 @@
                 }
             }
         } catch (Exception e) {
-            e.printStackTrace();
             fail("Exception: " + e);
         }
     }
@@ -346,13 +336,11 @@
             assertFalse("removeAttribute() did not return false", b);
             assertNull(body.getAttributeValue(name));
         } catch (Exception e) {
-            e.printStackTrace();
             fail("Exception: " + e);
         }
     }
     
     public void testRemoveAttribute2() {
-    	boolean pass = true;
     	try 
     	{
     		SOAPMessage msg = MessageFactory.newInstance().createMessage();
@@ -361,86 +349,46 @@
 
     		QName name = new QName("MyAttr1");
     		String value = "MyValue1";
-    		System.out.println("Add attribute qname = " + name.getLocalPart() + 
-    				", value = " + value);
     		body.addAttribute(name, value);
-    		System.out.println("Remove attribute qname = " + name.getLocalPart() + 
-    				", value = " + value);
     		boolean b = body.removeAttribute(name);
-    		if(!b) {
-    			System.out.println("removeAttribute() did not return true");
-    			System.out.println("removeAttributeTest() test FAILED");
-    			pass = false;
-    		} 
-    		if(pass) {
-    			b = body.removeAttribute(name);
-    			if(b) {
-    				System.out.println("removeAttribute() did not return false");
-    				System.out.println("removeAttributeTest() test FAILED");
-    				pass = false;
-    			}
-    		}
-    		if(pass) {
-    			if(body.getAttributeValue(name) == null) {
-    				System.out.println("removeAttributeTest() test PASSED");
-    			} else {
-    				System.out.println("removeAttributeTest() test FAILED");
-    				pass = false;
-    			}
+    		assertTrue(b);
+
+    		b = body.removeAttribute(name);
+    		if(b) {
+    			//removeAttribute() did not return false
+    			fail();
     		}
+    		//getAttributeValue should return null
+    		assertNull(body.getAttributeValue(name));
     	} catch(Exception e) {
-    		System.out.println("Exception: " + e);
-    		pass = false;
+    		fail("Error : "+e);
     	}
     }    
     
-    /*
-     * name
-     */
     public void testRemoveAttributeName(){
-    	boolean pass = true;
-    	try 
-    	{
-            SOAPMessage msg = MessageFactory.newInstance().createMessage();
+    	try{
+    		SOAPMessage msg = MessageFactory.newInstance().createMessage();
             SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope();
             SOAPBody body = envelope.getBody();
     		
     	    Name name = envelope.createName("MyAttr1");
     	    String value = "MyValue1";
-    	    System.out.println("Add attribute name = " + name.getLocalName() + 
-    			", value = " + value);
     	    body.addAttribute(name, value);
-    	    System.out.println("Remove attribute name = " + name.getLocalName() + 
-    			", value = " + value);
     	    boolean b = body.removeAttribute(name);
-    	    if(!b) {
-    		System.out.println("removeAttribute() did not return true");
-    		pass = false;
-    	    } 
-    	    if(pass) {
-    	        b = body.removeAttribute(name);
-    		if(b) {
-    		    System.out.println("removeAttribute() did not return false");
-    		    pass = false;
-    		}
-    	    }
-    	    if(pass) {
+    	    assertTrue(b);
+    	    
+    	    b = body.removeAttribute(name);
+    	    assertTrue(!b);
+
     		String s = body.getAttributeValue(name);
-    	        if(s != null) {
-    		    System.out.println("getAttributeValue() returned wrong value,"
-    		      + " expected null, got \"" + s + "\"");
-    		    pass = false;
-    	        }
-    	    }
+    		assertNull(s);
     	} catch(Exception e) {
-    	    System.out.println("Exception: " + e);
-    	    pass = false;
+    		fail("Failed : "+e);
     	}
     }
     
 
     public void _testRemoveAttributeQName(){
-    	boolean pass = true;    	
     	try 
     	{
             SOAPMessage msg = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage();
@@ -449,33 +397,13 @@
     		
     	    QName name = new QName("MyAttr1");
     	    String value = "MyValue1";
-    	    System.out.println("Add attribute qname = " + name.getLocalPart() + 
-    			", value = " + value);
     	    body.addAttribute(name, value);
-    	    System.out.println("Remove attribute qname = " + name.getLocalPart() + 
-    			", value = " + value);
     	    boolean b = body.removeAttribute(name);
-    	    if(!b) {
-    		System.out.println("removeAttribute() did not return true");
-    		System.out.println("removeAttributeTest() test FAILED");
-    		pass = false;
-    	    } 
-    	    if(pass) {
-    	        b = body.removeAttribute(name);
-    		if(b) {
-    		    System.out.println("removeAttribute() did not return false");
-    		    System.out.println("removeAttributeTest() test FAILED");
-    		    pass = false;
-    		}
-    	    }
-    	    if(pass) {
-    	        if(body.getAttributeValue(name) == null) {
-    		    System.out.println("removeAttributeTest() test PASSED");
-    	        } else {
-    	        	System.out.println("removeAttributeTest() test FAILED");
-    		    pass = false;
-    	        }
-    	    }
+    	    assertTrue(b);
+   	        b = body.removeAttribute(name);
+   	        assertTrue(!b);
+   	        
+    	    assertNull(body.getAttributeValue(name));
     	} catch(Exception e) {
     		fail();
     	}
@@ -633,16 +561,7 @@
     		}
 
     		Name n = se.getElementName();
-    		if (!n.equals(name)) {
-    			System.out.println("Name objects are not equal (unexpected)");
-    			System.out.println("getChildElement() did not return " +
-    					"correct Name object expected localName=" + 
-    					name.getLocalName() + ", got localName=" 
-    					+ n.getLocalName());
-    			fail();
-    		} else{
-    			System.out.println("Name objects are equal (expected)");
-    		}
+    		assertEquals(n,name);
     	} catch (SOAPException e) {
     		fail("Unexpected Exception " + e);
     	}
@@ -670,23 +589,10 @@
     		}
     		assertEquals(childCount, 1);
     		SOAPElement se2 = (SOAPElement)childElements.next();
-    		if(!se.equals(se2)) {
-    			fail();
-    		} else {
-    			System.out.println("SOAPElement se = se2 (expected)");
-    		}
+    		assertEquals(se,se2);
 
     		QName n = se.getElementQName();
-    		if (!n.equals(name)) {
-    			System.out.println("Name objects are not equal (unexpected)");
-    			System.out.println("getChildElement() did not return " +
-    					"correct Name object expected localPart=" + 
-    					name.getLocalPart() + ", got localPart=" 
-    					+ n.getLocalPart());
-    			fail();
-    		} else{
-    			System.out.println("Name objects are equal (expected)");
-    		}
+    		assertEquals(n,name);
     	} catch (SOAPException e) {
     		fail("Unexpected Exception " + e);
     	}
@@ -721,7 +627,6 @@
 
     public void _testCreateQName() {
         String prefix ="";
-        String uri = "";
     	try 
     	{
             //SOAPMessage message = MessageFactory.newInstance().createMessage();
@@ -729,17 +634,11 @@
             SOAPPart soapPart = message.getSOAPPart();
             SOAPEnvelope envelope = soapPart.getEnvelope();
             SOAPBody body = envelope.getBody();
-    		
-    	    System.out.println("Create QName from SOAPEnvelope");
-    	    QName qname = envelope.createQName("qname", prefix);
-    	    System.out.println("Create QName of: " + qname);
+
+            QName qname = envelope.createQName("qname", prefix);
     	    String tprefix = qname.getPrefix();
     	    String turi = qname.getNamespaceURI();
     	    String tname = qname.getLocalPart();
-    	    System.out.println("qname prefix="+tprefix);
-    	    System.out.println("qname uri="+turi);
-    	    System.out.println("qname localpart="+tname);
-    	    System.out.println("Verify correct uri and prefix");
     	    if(!tprefix.equals(prefix) || !turi.equals(envelope.getElementName().getURI())) {
     	    	fail("createQName() did not create correct qname\n" +
 	    		    "expected: <uri=" + envelope.getElementName().getURI() +
@@ -747,16 +646,10 @@
 	    		    "got:      <uri=" + turi +
 	    		    ", prefix=" + tprefix + ", localpart=" + tname + ">");
     	    }
-    	    System.out.println("Create QName from SOAPBody");
     	    qname = body.createQName("qname", body.getElementName().getPrefix());
-    	    System.out.println("Create QName of: " + qname);
     	    tprefix = qname.getPrefix();
     	    turi = qname.getNamespaceURI();
     	    tname = qname.getLocalPart();
-    	    System.out.println("qname prefix="+tprefix);
-    	    System.out.println("qname uri="+turi);
-    	    System.out.println("qname localpart="+tname);
-    	    System.out.println("Verify correct uri and prefix");
     	    if(!tprefix.equals(body.getElementName().getPrefix()) || !turi.equals(body.getElementName().getURI())) {
     	    	fail("createQName() did not create correct qname\n" +
 	    		    "expected: <uri=" + body.getElementName().getURI() +
@@ -780,58 +673,29 @@
     		SOAPBody body = envelope.getBody();
 
     		Name name = envelope.createName("MyChild");
-    		System.out.println("Add child element Name object = " +
-    				name.toString());
     		SOAPElement se = body.addChildElement(name);
-    		if(se == null) {
-    			System.out.println("addChildElement() did not return SOAPElement");
-    			System.out.println("removeContentsTest() test FAILED");
-
-    			pass = false;
-    		} else {
-    			Iterator childs = body.getChildElements(name);
-    			int childElementCount = 0;
-    			for (int a = 0; childs.hasNext(); a++) {
-    				childs.next();
-    				childElementCount++;
-    			}
-    			childs = body.getChildElements(name);
-    			if(childElementCount != 1) {
-    				System.out.println("Wrong iterator count returned of " +
-    						childElementCount + ", expected 1");
-    				System.out.println("removeContentsTest() test FAILED");
-    				pass = false;
-    			} 
-
-    			if(pass) {
-    				Name n = se.getElementName();
-    				if (!n.equals(name)) {
-    					System.out.println("removeContentsTest() did not return " +
-    							"correct name object expected localname=" +
-    							name.getLocalName() + ", got localname="
-    							+ n.getLocalName());
-    					System.out.println("removeContentsTest() test FAILED");
-    					pass = false;
-    				} 
-    			}
+    		assertNotNull(se);
+    		Iterator childs = body.getChildElements(name);
+    		int childElementCount = 0;
+    		for (int a = 0; childs.hasNext(); a++) {
+    			childs.next();
+    			childElementCount++;
     		}
-    		System.out.println("Child addition verified, now call removeContents to delete it");
+    		childs = body.getChildElements(name);
+    		assertEquals(childElementCount, 1);
+
+    		Name n = se.getElementName();
+    		assertEquals(n, name);
+    		//Child addition verified, now call removeContents to delete it
     		se.removeContents();
-    		Iterator childs = se.getChildElements();
-    		int childElementCount = 0;
+    		childs = se.getChildElements();
+    		childElementCount = 0;
     		for (int a = 0; childs.hasNext(); a++) {
 				childs.next();    			
     			childElementCount++;
     		}
-    		if ( childElementCount !=0 ) {
-    			System.out.println("Wrong iterator count returned of " +
-    					childElementCount + ", expected 0, after calling removeContents");
-    			System.out.println("removeContentsTest() test FAILED");
-    			pass = false;
-    		}
-
+    		assertEquals(childElementCount, 0);
     	} catch(Exception e) {
-    		e.printStackTrace();
     		fail();
     	}
     }
@@ -846,18 +710,12 @@
             SOAPBody body = envelope.getBody();
 
     	    QName qname1 = new QName("http://fooURI.com", "fooElement", "foo");
-    	    System.out.println("Create QName1 of: " + qname1);
     	    QName qname2 = new QName("http://foo2URI.com", "fooElement2", "foo2");
-    	    System.out.println("Create QName2 of: " + qname2);
-    	    System.out.println("Add a child SOAPElement of: " + qname1);
-            SOAPElement se = body.addChildElement(qname1);
+    	    SOAPElement se = body.addChildElement(qname1);
     	    QName qname = se.getElementQName();
-    	    System.out.println("Get element qname of child SOAPElement: " + qname);
-    	    System.out.println("Reset element qname of child SOAPElement to: " + qname2);
     	    se = se.setElementQName(qname2);
     	    qname = se.getElementQName();
-    	    System.out.println(
-    		"Get element qname of child SOAPElement again: " + qname);
+
     	    if(!qname.getNamespaceURI().equals(qname2.getNamespaceURI()) ||
     	    		!qname.getLocalPart().equals(qname2.getLocalPart()) ||
     	    		!qname.getPrefix().equals(qname2.getPrefix())) {
@@ -868,7 +726,7 @@
 			    		    ", localpart=" + qname.getLocalPart() + ">");
     	    }
     	} catch(Exception e) {
-    	    System.out.println("Exception: " + e);
+    	    fail("Error :"+e);
     	}
     }
     
@@ -883,33 +741,31 @@
     		SOAPHeader header = envelope.getHeader();
 
     		QName qname = new QName("qname");
-    		System.out.println("Create QName of: " + qname);
-    		System.out.println("Try and change element name of SOAPEnvelope " +
-    		"(expect SOAPException)");
+    		//Try and change element name of SOAPEnvelope (expect SOAPException)
     		try {
     			envelope.setElementQName(qname);
-    			System.out.println("Did not throw expected SOAPException");
+    			fail("Did not throw expected SOAPException");
     		} catch (SOAPException e) {
-    			System.out.println("Caught expected SOAPException");
+    			//Caught expected SOAPException
     		}
-    		System.out.println(
-    		"Try and change element name of SOAPHeader (expect SOAPException)");
+    		
+    		//Try and change element name of SOAPHeader (expect SOAPException)
     		try {
     			header.setElementQName(qname);
-    			System.out.println("Did not throw expected SOAPException");
+    			fail("Did not throw expected SOAPException");
     		} catch (SOAPException e) {
-    			System.out.println("Caught expected SOAPException");
+    			//Caught expected SOAPException
     		}
-    		System.out.println(
-    		"Try and change element name of SOAPBody (expect SOAPException)");
+    		
+    		//Try and change element name of SOAPBody (expect SOAPException)
     		try {
     			body.setElementQName(qname);
-    			System.out.println("Did not throw expected SOAPException");
+    			fail("Did not throw expected SOAPException");
     		} catch (SOAPException e) {
-    			System.out.println("Caught expected SOAPException");
+    			//Caught expected SOAPException
     		}
     	} catch(Exception e) {
-    		System.out.println("Exception: " + e);
+    		fail("Error : "+e);
     	}
     }
 }

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java?view=diff&rev=503658&r1=503657&r2=503658
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java Mon Feb  5 04:14:07 2007
@@ -553,17 +553,15 @@
 
     	try
     	{
-    		System.out.println("SOAP1.2 does not allow trailing blocks after" +
-    				"the Body");
-    		System.out.println("Call SOAPEnvelope.addChildElement() and " +
-    				"(expect SOAPException)");
+    		//SOAP1.2 does not allow trailing blocks after the Body
+    		//Call SOAPEnvelope.addChildElement() and (expect SOAPException)
     		Name elementAfterBody = envelope.createName("AfterBody", "e", "some-uri");
     		envelope.addChildElement(elementAfterBody);
-    		System.out.println("Did not throw expected SOAPException");
+    		fail("Did not throw expected SOAPException");
     	} catch (SOAPException e) {
-    		System.out.println("Did throw expected SOAPException");
+    		//Did throw expected SOAPException"
     	} catch (Exception e) {
-    		System.out.println("Unexpected Exception: " + e.getMessage());
+    		fail("Unexpected Exception: " + e.getMessage());
     	}
     }
 }



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


[Axis2] Re: svn commit: r503658 [1/2] - in /webservices/axis2/trunk/java/modules/saaj: src/org/apache/axis2/saaj/ test-resources/ test/org/apache/axis2/saaj/ test/org/apache/axis2/saaj/integration/

Posted by Bill Nagy <na...@watson.ibm.com>.
Please include the JIRA issue in your commit message at the very least,
or, even better -- make the comment more informative.  "Applying patches
for SAAJ sent by Sumedha" is not very helpful.  Thanks.

-Bill

On Mon, 2007-02-05 at 12:14 +0000, azeez@apache.org wrote:
> Author: azeez
> Date: Mon Feb  5 04:14:07 2007
> New Revision: 503658
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=503658
> Log:
> Applying patches for SAAJ sent by Sumedha
> 
> Added:
>     webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml   (with props)
> Modified:
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFactoryTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFaultTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPHeaderTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPMessageTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/TextTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/integration/IntegrationTest.java
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java Mon Feb  5 04:14:07 2007
> @@ -16,6 +16,7 @@
>  package org.apache.axis2.saaj;
>  
>  import java.awt.image.BufferedImage;
> +import java.io.ByteArrayInputStream;
>  import java.io.ByteArrayOutputStream;
>  import java.io.IOException;
>  import java.io.InputStream;
> @@ -163,22 +164,22 @@
>          }
>          try {
>              String contentType = dataHandler.getContentType();
> -            //TODO change to text/xml
> -            if(contentType.equals("text/xml")){
> -            	StringReader stringReader = new StringReader((String)dataHandler.getContent());
> +           	if (contentType.equals("text/xml")) {
> +           		StringReader stringReader = new StringReader((String)dataHandler.getContent());
>              	StreamSource streamSource = new StreamSource(stringReader);
> +   	        	streamSource.setInputStream(dataHandler.getInputStream());
>              	return streamSource;
> -            }else if (contentType.equals("text/plain") ||
> -                    contentType.equals("text/html")) {
> -
> +            	
>                  //For these content types underlying DataContentHandler surely does
>                  //the conversion to appropriate java object and we will return that java object
> -                return dataHandler.getContent();
> -            } else {
> +                //return dataHandler.getContent();
> +            }else if(contentType.equals("text/plain") ||
> +            			contentType.equals("text/html")){
> +            	return (String)dataHandler.getContent();
> +            }else {
>                  try {
>                      return dataHandler.getContent();
>                  } catch (UnsupportedDataTypeException e) {
> -
>                      //If the underlying DataContentHandler can't handle the object contents,
>                      //we will return an inputstream of raw bytes represneting the content data
>                      return dataHandler.getDataSource().getInputStream();
> @@ -256,15 +257,21 @@
>              	throw new java.lang.IllegalArgumentException(e);
>              }
>          }
> -        /*
>          else if (object instanceof byte[]) {
>              try {
> -                dataHandler = new DataHandler();
> -                contentObject = null; // the stream has been consumed
> +                contentObject = null;
> +                java.io.ByteArrayInputStream bais = new java.io.ByteArrayInputStream((byte[])object);
> +                source = new SAAJDataSource(bais,
> +                        SAAJDataSource.MAX_MEMORY_DISK_CACHED,
> +                        contentType, true);
> +                extractFilename(source);
> +                
> +                dataHandler = new DataHandler(source);
> +                contentObject = object;
>              } catch (Exception e) {
>              	throw new java.lang.IllegalArgumentException(e);
>              }
> -        }*/
> +        }
>          else {
>              throw new java.lang.IllegalArgumentException("Illegal Argument");
>          }
> @@ -280,9 +287,9 @@
>       *                                      no data in this <CODE>AttachmentPart</CODE> object
>       */
>      public DataHandler getDataHandler() throws SOAPException {
> -//        if (getContent() == null) {
> -//            throw new SOAPException("No Content present in the Attachment part");
> -//        }
> +        //if (getContent() == null) {
> +        //    throw new SOAPException("No Content present in the Attachment part");
> +        //}
>          //commented to fix AXIS2-778
>          if (dataHandler == null) {
>              throw new SOAPException("No Content present in the Attachment part");
> @@ -571,11 +578,11 @@
>       */
>  
>      public void setRawContentBytes(byte[] content, int offset, int len, String contentType) throws SOAPException {
> -        //TODO - complete
> +        //TODO - how to use offset & len?
>      	if(content == null){
>      		throw new SOAPException("Content is null");
>      	}
> -    	
> +    	setContent(content, contentType);
>      }
>  
>      /**
> 
> 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=503658&r1=503657&r2=503658
> ==============================================================================
> --- 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 Mon Feb  5 04:14:07 2007
> @@ -17,6 +17,7 @@
>  
>  import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
>  import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
> +import org.apache.axis2.saaj.util.IDGenerator;
>  
>  import javax.xml.soap.MessageFactory;
>  import javax.xml.soap.MimeHeaders;
> @@ -166,13 +167,6 @@
>       */
>      public SOAPMessage createMessage(MimeHeaders mimeheaders,
>                                       InputStream inputstream) throws IOException, SOAPException {
> -
> -        /*System.err.println("@@@@@@@@@@ MessageFactoryImpl#createMessage");
> -        byte[] b = new byte[10240];
> -        inputstream.read(b);
> -        System.err.println("byte=" + new String(b));
> -        System.err.println("@@@@@@@@@@ END MessageFactoryImpl#createMessage");*/
> -
>          SOAPMessageImpl soapMessage = new SOAPMessageImpl(inputstream, mimeheaders);
>          soapMessage.setSaveRequired();
>          return soapMessage;
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java Mon Feb  5 04:14:07 2007
> @@ -19,9 +19,11 @@
>  import java.io.InputStream;
>  import java.net.MalformedURLException;
>  import java.net.URL;
> +import java.util.Collection;
>  import java.util.HashMap;
>  import java.util.Iterator;
>  import java.util.Map;
> +import java.util.Set;
>  
>  import javax.activation.DataHandler;
>  import javax.xml.namespace.QName;
> @@ -66,6 +68,7 @@
>      private boolean closed = false;
>  
>      private ServiceClient serviceClient;
> +    private HashMap unaccessedAttachments = new HashMap();
>  
>  	private static final Log log = LogFactory.getLog(SOAPConnectionImpl.class);
>  
> @@ -154,7 +157,6 @@
>  
>              MessageContext msgCtx = opClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
>              //TODO: get attachments
> -
>              return getSOAPMessage(msgCtx.getEnvelope());
>          } catch (AxisFault e) {
>              throw new SOAPException(e);
> @@ -212,6 +214,15 @@
>  
>          // Convert the body
>          toSAAJElement(body, respOMSoapEnv.getBody(), response);
> +        //if there are unrefferenced attachments, add that to response
> +        if(!unaccessedAttachments.isEmpty()){
> +        	Collection attachments = unaccessedAttachments.values();
> +        	Iterator attachementsIterator = attachments.iterator();
> +        	while (attachementsIterator.hasNext()) {
> +				AttachmentPart  attachment = (AttachmentPart) attachementsIterator.next();
> +				response.addAttachmentPart(attachment);
> +			}
> +        }
>  
>          return response;
>      }
> @@ -297,7 +308,7 @@
>          Map attachmentMap = new HashMap();
>          final Iterator attachments = saajSOAPMsg.getAttachments();
>          while (attachments.hasNext()) {
> -            final AttachmentPart attachment = (AttachmentPart) attachments.next();
> +        	final AttachmentPart attachment = (AttachmentPart) attachments.next();
>              if (attachment.getContentId() == null ||
>                  attachment.getContentId().trim().length() == 0) {
>                  attachment.setContentId(IDGenerator.generateID());
> @@ -308,9 +319,20 @@
>              attachmentMap.put(attachment.getContentId(), attachment);
>          }
>  
> -        insertAttachmentNodes(attachmentMap, omSOAPEnv);
> -
> -//        printOMSOAPEnvelope(omSOAPEnv);
> +        //Get keys of attachments to a hashmap
> +        //This hashmap will be updated when attachment is accessed atleast once.
> +        //Doing this here instead of inside insertAttachmentNodes()is much simpler
> +        //as insertAttachmentNodes() has recursive calls
> +    	Set keySet = attachmentMap.keySet();
> +    	Iterator keySetItr = keySet.iterator();
> +    	HashMap keyAccessStatus = new HashMap();
> +    	while(keySetItr.hasNext()){
> +    		String key = (String)keySetItr.next();
> +    		keyAccessStatus.put(key,"not-accessed");
> +    	}
> +        
> +        insertAttachmentNodes(attachmentMap, omSOAPEnv,keyAccessStatus);
> +        unaccessedAttachments = getUnReferencedAttachmentNodes(attachmentMap, omSOAPEnv,keyAccessStatus);
>  
>          return omSOAPEnv;
>      }
> @@ -323,7 +345,7 @@
>       * @throws SOAPException
>       */
>      private void insertAttachmentNodes(Map attachments,
> -                                       OMElement omEnvelope) throws SOAPException {
> +                                       OMElement omEnvelope,HashMap keyAccessStatus) throws SOAPException {
>  
>          Iterator childIter = omEnvelope.getChildElements();
>          while (childIter.hasNext()) {
> @@ -334,21 +356,42 @@
>              if (contentID != null) {//This is an omEnvelope referencing an attachment
>                  child.build();
>                  AttachmentPart ap = ((AttachmentPart) attachments.get(contentID.trim()));
> +                //update the key status as accessed
> +                keyAccessStatus.put(contentID.trim(), "accessed");                
>                  OMText text = new OMTextImpl(ap.getDataHandler(), true,
>                          omEnvelope.getOMFactory());
>                  child.removeAttribute(hrefAttr);
>                  child.addChild(text);
>              } else {
> -
>                  //possibly there can be references in the children of this omEnvelope
>                  //so recurse through.
> -                insertAttachmentNodes(attachments, child);
> +                insertAttachmentNodes(attachments, child,keyAccessStatus);
>              }
>          }
> -
> -        //TODO: Need to handle no referenced attachments
>      }
> -
> +    
> +    
> +    private HashMap getUnReferencedAttachmentNodes(Map attachments,
> +    		OMElement omEnvelope,HashMap keyAccessStatus) throws SOAPException {
> +
> +    	HashMap unaccessedAttachments = new HashMap();
> +    	//now check for unaccessed keys
> +    	Set keySet = keyAccessStatus.keySet();
> +    	Iterator keySetItr = keySet.iterator();
> +    	while(keySetItr.hasNext()){
> +    		String key = (String)keySetItr.next();
> +    		String keyStatus = (String)keyAccessStatus.get(key);
> +    		if("not-accessed".equals(keyStatus)){
> +    			//The value for this key has not been accessed in the 
> +    			//referencing attachment scenario.Hence it must be an
> +    			//unreferenced one.
> +    			AttachmentPart ap = ((AttachmentPart) attachments.get(key));
> +    			unaccessedAttachments.put(key, ap);
> +    			keyAccessStatus.put(key, "accessed");
> +    		}
> +    	}
> +    	return unaccessedAttachments;
> +    }
>      /**
>       * This method checks the value of attribute and if it is a valid CID then
>       * returns the contentID (with cid: prefix stripped off) or else returns null.
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java Mon Feb  5 04:14:07 2007
> @@ -41,6 +41,7 @@
>  import org.apache.axiom.soap.SOAPFactory;
>  import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
>  import org.apache.axiom.soap.impl.dom.soap11.SOAP11HeaderBlockImpl;
> +import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
>  import org.apache.axiom.soap.impl.dom.soap12.SOAP12HeaderBlockImpl;
>  import org.w3c.dom.Attr;
>  import org.w3c.dom.DOMException;
> @@ -528,17 +529,29 @@
>          return element.removeNamespace(prefix);
>      }
>  
> -    /* (non-Javadoc)
> -      * @see javax.xml.soap.SOAPElement#setEncodingStyle(java.lang.String)
> -      */
> -    
> -    //TODO : jira issue
> +
> +    /**
> +     * Sets the encoding style for this SOAPElement object to one specified.
> +     * 
> +     * @param encodingStyle - a String giving the encoding style
> +     * @throws java.lang.IllegalArgumentException - if there was a problem in the encoding
> +     *         style being set.
> +     *         SOAPException - if setting the encodingStyle is invalid for this SOAPElement.
> +     */
>      public void setEncodingStyle(String encodingStyle) throws SOAPException {
> -    	//TODO : is this check correct?
> -    	//if (!encodingStyle.equals(SOAPConstants.URI_NS_SOAP_ENCODING)) {
> -        //	throw new IllegalArgumentException("Invalid Encoding style : " + encodingStyle);
> -        //}
> -        ((DocumentImpl) getOwnerDocument()).setCharsetEncoding(encodingStyle);
> +    	if(this.element.getOMFactory() instanceof SOAP11Factory){
> +        	if (!encodingStyle.equals(SOAPConstants.URI_NS_SOAP_ENCODING)) {
> +            	throw new IllegalArgumentException("Invalid Encoding style : " + encodingStyle);
> +            }else{
> +            	((DocumentImpl) getOwnerDocument()).setCharsetEncoding(encodingStyle);
> +            }
> +    	}else if(this.element.getOMFactory() instanceof SOAP12Factory){
> +    		if(SOAPConstants.URI_NS_SOAP_1_2_ENCODING.equals(encodingStyle)){
> +    			throw new SOAPException("Illegal value : "+SOAPConstants.URI_NS_SOAP_1_2_ENCODING);
> +    		}else{
> +    			((DocumentImpl) getOwnerDocument()).setCharsetEncoding(encodingStyle);
> +    		}
> +    	}
>      }
>  
>      /* (non-Javadoc)
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- 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 Mon Feb  5 04:14:07 2007
> @@ -54,30 +54,29 @@
>          }
>  
>          setCharsetEncoding(contentType);
> -
>          soapPart = new SOAPPartImpl(this, soapEnvelope);
> -
>          this.mimeHeaders = new MimeHeadersEx();
>      }
>  
> -    public SOAPMessageImpl(InputStream inputstream,
> -                           javax.xml.soap.MimeHeaders mimeHeaders) throws SOAPException {
> -        String contentType = null;
> -        if (mimeHeaders != null) {
> -            String contentTypes[] = mimeHeaders.getHeader("Content-Type");
> -            contentType = (contentTypes != null) ? contentTypes[0] : null;
> -        }
> -
> -        setCharsetEncoding(contentType);
> -        if (contentType != null && contentType.indexOf("multipart/related;") == 0) {
> -//            soapPart = new SOAPPartImpl(this, inputstream, mimeHeaders);
> -        } else {
> -            soapPart = new SOAPPartImpl(this, inputstream);
> -        }
> -
> -        this.mimeHeaders = (mimeHeaders == null) ?
> -                           new MimeHeadersEx() :
> -                           new MimeHeadersEx(mimeHeaders);
> +    public SOAPMessageImpl(InputStream inputstream,javax.xml.soap.MimeHeaders mimeHeaders) 
> +    		throws SOAPException 
> +    {
> +    	String contentType = null;
> +    	if (mimeHeaders != null) {
> +    		String contentTypes[] = mimeHeaders.getHeader("Content-Type");
> +    		contentType = (contentTypes != null) ? contentTypes[0] : null;
> +    	}
> +
> +    	setCharsetEncoding(contentType);
> +    	if (contentType != null && contentType.indexOf("multipart/related;") == 0) {
> +    		soapPart = new SOAPPartImpl(this, inputstream, mimeHeaders);
> +    	} else {
> +    		soapPart = new SOAPPartImpl(this, inputstream);
> +    	}
> +    	
> +    	this.mimeHeaders = (mimeHeaders == null) ?
> +    			new MimeHeadersEx() :
> +    				new MimeHeadersEx(mimeHeaders);
>      }
>  
>      /**
> @@ -372,19 +371,45 @@
>       * 
>       */
>      public AttachmentPart getAttachment(SOAPElement soapelement) throws SOAPException {
> -
> -        Collection matchingAttachmentParts = new ArrayList();
> +    	//TODO read strings from constants
>          Iterator iterator = getAttachments();
>          {
> -            AttachmentPartImpl part;
> +            AttachmentPartImpl attachmentPart;
>              while (iterator.hasNext()) {
> -                part = (AttachmentPartImpl) iterator.next();
> -                if (part.matches(null)) {
> -                    matchingAttachmentParts.add(part);
> -                }
> +            	attachmentPart = (AttachmentPartImpl) iterator.next();
> +            	String[] contentIds = attachmentPart.getMimeHeader("Content-Id");
> +            	
> +            	//References can be made via an href attribute as described in SOAP Messages with Attachments
> +            	//or via a single Text child node containing a URI          	
> +            	String reference = soapelement.getAttribute("href");
> +            	if(reference == null || reference.trim().length() == 0){
> +            		reference = soapelement.getValue();
> +            		if(reference == null || reference.trim().length() == 0){
> +            			return null;
> +            		}
> +            	}
> +            	
> +            	for (int a = 0; a < contentIds.length; a++) {
> +            		//eg: cid:gifImage scenario
> +            		String idPart = reference.substring(reference.indexOf(":")+1);
> +            		idPart = "<"+idPart+">";
> +					if(idPart.equals(contentIds[a])){
> +						return attachmentPart;
> +					}
> +				}
> +            	
> +            	String[] contentLocations = attachmentPart.getMimeHeader("Content-Location");
> +            	if(!(contentLocations == null)){
> +            		//uri scenario
> +            		for (int b = 0; b < contentLocations.length; b++) {
> +            			if(reference.equals(contentLocations[b])){
> +            				return attachmentPart;
> +            			}
> +            		}
> +            	}
>              }
>          }
> -        return null;  //TODO - Not yet implemented        
> +        return null;        
>      }
>  
>      /**
> @@ -395,8 +420,6 @@
>       * @since SAAJ 1.3
>       */
>      public void removeAttachments(MimeHeaders headers) {
> -        //TODO - check
> -    	
>      	Collection newAttachmentParts = new ArrayList();
>      	Iterator attachmentPartsItr = attachmentParts.iterator();
>      	for (Iterator iter = attachmentPartsItr; iter.hasNext();) {
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java Mon Feb  5 04:14:07 2007
> @@ -15,21 +15,34 @@
>   */
>  package org.apache.axis2.saaj;
>  
> +import java.io.ByteArrayInputStream;
> +import java.io.ByteArrayOutputStream;
>  import java.io.InputStream;
>  import java.io.InputStreamReader;
>  import java.util.Iterator;
>  
> +import javax.xml.soap.MimeHeader;
> +import javax.xml.soap.MimeHeaders;
>  import javax.xml.soap.SOAPElement;
>  import javax.xml.soap.SOAPEnvelope;
>  import javax.xml.soap.SOAPException;
>  import javax.xml.soap.SOAPMessage;
>  import javax.xml.soap.SOAPPart;
> +import javax.xml.stream.XMLInputFactory;
>  import javax.xml.stream.XMLStreamException;
> +import javax.xml.stream.XMLStreamReader;
> +import javax.xml.transform.Result;
>  import javax.xml.transform.Source;
> +import javax.xml.transform.Transformer;
> +import javax.xml.transform.TransformerFactory;
> +import javax.xml.transform.dom.DOMSource;
> +import javax.xml.transform.stream.StreamResult;
>  
> +import org.apache.axiom.attachments.Attachments;
>  import org.apache.axiom.om.util.StAXUtils;
>  import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
>  import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
> +import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
>  import org.apache.axis2.saaj.util.IDGenerator;
>  import org.apache.axis2.transport.http.HTTPConstants;
>  import org.w3c.dom.Attr;
> @@ -71,15 +84,41 @@
>      }
>  
>      public SOAPPartImpl(SOAPMessageImpl parentSoapMsg,
> -                        InputStream inputStream) throws SOAPException {
> -
> -        setMimeHeader(HTTPConstants.HEADER_CONTENT_ID, IDGenerator.generateID());
> -        setMimeHeader(HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");
> -
> +                        InputStream inputStream,javax.xml.soap.MimeHeaders mimeHeaders
> +                        ) throws SOAPException {
> +    	boolean mimeHeaderSet = true;
> +    	if(mimeHeaders == null){
> +    		mimeHeaderSet = false;
> +        	mimeHeaders = new MimeHeaders();
> +        	mimeHeaders.addHeader("Content-ID", IDGenerator.generateID());
> +        	mimeHeaders.addHeader(HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");
> +    	}
> +    	
> +    	Iterator mimeHeaderIterator = mimeHeaders.getAllHeaders();
> +    	String contentType = "";
> +    	while (mimeHeaderIterator.hasNext()) {
> +			MimeHeader mimeHeader = (MimeHeader) mimeHeaderIterator.next();
> +			String value = mimeHeader.getValue();
> +			if("content-type".equals(mimeHeader.getName())){
> +				contentType = value;
> +			}
> +			setMimeHeader(mimeHeader.getName(), value);
> +		}
> +    	InputStream modifiedInputStream = null;
> +    	if(mimeHeaderSet){
> +        	try {
> +                Attachments attachments = new Attachments(inputStream, contentType,false, "","");
> +                modifiedInputStream = attachments.getSOAPPartInputStream();
> +      		} catch (Exception e) {
> +	            throw new SOAPException(e);
> +      		}
> +    	}else{
> +    		modifiedInputStream = inputStream;
> +    	}    	
>          soapMessage = parentSoapMsg;
>  
>          try {
> -            InputStreamReader isReader = new InputStreamReader(inputStream);
> +            InputStreamReader isReader = new InputStreamReader(modifiedInputStream);
>              StAXSOAPModelBuilder builder =
>                      new StAXSOAPModelBuilder(StAXUtils.createXMLStreamReader(isReader),
>                                               new SOAP11Factory(),
> @@ -88,12 +127,19 @@
>              envelope = new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)soapEnvelope);
>              envelope.element.build();
>              this.document = envelope.getOwnerDocument();
> +            javax.xml.transform.Source xmlSource =
> +                new javax.xml.transform.stream.StreamSource(isReader);
> +            this.source = xmlSource;            
>          } catch (XMLStreamException e) {
> -            e.printStackTrace();
>              throw new SOAPException(e);
>          }
>      }
>  
> +    
> +    public SOAPPartImpl(SOAPMessageImpl parentSoapMsg,
> +    		InputStream inputStream) throws SOAPException {
> +    	this(parentSoapMsg,inputStream,null);
> +    }    
>      /**
>       * Obtain the SOAPMessage
>       *
> @@ -256,7 +302,31 @@
>       */
>      public void setContent(Source source) throws SOAPException {
>          this.source = source;
> -        //TODO: Need to fix the source handling stuff
> +		try {
> +	        ByteArrayOutputStream baos = new ByteArrayOutputStream();
> +	        Result result = new StreamResult(baos);
> +
> +	        Transformer xformer = TransformerFactory.newInstance().newTransformer();
> +	        xformer.transform(source, result);
> +	        ByteArrayInputStream is = new ByteArrayInputStream(baos.toByteArray());
> +	        
> +			XMLInputFactory inputFactory = XMLInputFactory.newInstance();
> +			XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
> +			
> +			StAXSOAPModelBuilder builder1 = null;
> +			if(this.envelope.element.getOMFactory() instanceof SOAP11Factory){
> +				builder1 = new StAXSOAPModelBuilder(reader,(SOAP11Factory)this.envelope.element.getOMFactory(),null);
> +			}else if(this.envelope.element.getOMFactory() instanceof SOAP12Factory){
> +				builder1 = new StAXSOAPModelBuilder(reader,(SOAP12Factory)this.envelope.element.getOMFactory(),null);
> +			}
> +
> +            org.apache.axiom.soap.SOAPEnvelope soapEnvelope = builder1.getSOAPEnvelope();
> +            envelope = new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)soapEnvelope);
> +            envelope.element.build();
> +            this.document = envelope.getOwnerDocument();
> +		} catch (Exception e) {
> +			throw new SOAPException(e);
> +		}
>      }
>  
>      /**
> @@ -270,6 +340,8 @@
>       * @see #setContent(javax.xml.transform.Source) setContent(javax.xml.transform.Source)
>       */
>      public Source getContent() throws SOAPException {
> +    	DOMSource domSource = new DOMSource(this.document);
> +    	this.source = domSource;
>          return source;
>      }
>  
> 
> Added: webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml?view=auto&rev=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml (added)
> +++ webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml Mon Feb  5 04:14:07 2007
> @@ -0,0 +1,15 @@
> +<?xml version='1.0' encoding='utf-8'?>
> +<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> +<soapenv:Header>
> +<ns-prefix:Header1 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="1">This is Header1</ns-prefix:Header1>
> +<ns-prefix:Header2 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="0">This is Header2</ns-prefix:Header2>
> +<ns-prefix:Header3 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="1">This is Header3</ns-prefix:Header3>
> +<ns-prefix:Header4 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="0">This is Header4</ns-prefix:Header4>
> +</soapenv:Header>
> +<soapenv:Body>
> +<ns-prefix:Body1 xmlns:ns-prefix="ns-uri">
> +<ns-prefix:Child1>This is Child1</ns-prefix:Child1>
> +<ns-prefix:Child2>This is Child2</ns-prefix:Child2>
> +</ns-prefix:Body1>
> +</soapenv:Body>
> +</soapenv:Envelope>
> \ No newline at end of file
> 
> Propchange: webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml
> ------------------------------------------------------------------------------
>     svn:executable = *
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java Mon Feb  5 04:14:07 2007
> @@ -5,7 +5,6 @@
>  import java.io.ByteArrayOutputStream;
>  import java.io.File;
>  import java.io.FileInputStream;
> -import java.io.FileNotFoundException;
>  import java.io.IOException;
>  import java.io.InputStream;
>  import java.io.OutputStream;
> @@ -27,306 +26,314 @@
>  
>  public class AttachmentTest extends TestCase {
>  
> -    public AttachmentTest(String name) {
> -        super(name);
> -    }
> -
> -    public void testStringAttachment() throws Exception {
> -
> -        MessageFactory factory = MessageFactory.newInstance();
> -        SOAPMessage message = factory.createMessage();
> -        AttachmentPart attachment = message.createAttachmentPart();
> -        String stringContent = "Update address for Sunny Skies " +
> -                               "Inc., to 10 Upbeat Street, Pleasant Grove, CA 95439";
> -
> -        attachment.setContent(stringContent, "text/plain");
> -        attachment.setContentId("update_address");
> -        message.addAttachmentPart(attachment);
> -
> -        assertTrue(message.countAttachments() == 1);
> -
> -        java.util.Iterator it = message.getAttachments();
> -        while (it.hasNext()) {
> -            attachment = (AttachmentPart) it.next();
> -            Object content = attachment.getContent();
> -            String id = attachment.getContentId();
> -            System.out.println("Attachment " + id + " contains: " + content);
> -            assertEquals(content, stringContent);
> -        }
> -        System.out.println("Here is what the XML message looks like:");
> -        message.writeTo(System.out);
> -
> -        message.removeAllAttachments();
> -        assertTrue(message.countAttachments() == 0);
> -    }
> -
> -    public void testMultipleAttachments() throws Exception {
> -
> -        MessageFactory factory = MessageFactory.newInstance();
> -        SOAPMessage msg = factory.createMessage();
> -        java.net.URL url1 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.html");
> -        java.net.URL url2 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.txt");
> -
> -        AttachmentPart a1 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> -        a1.setContentType("text/xml");
> -        msg.addAttachmentPart(a1);
> -        AttachmentPart a2 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> -        a2.setContentType("text/xml");
> -        msg.addAttachmentPart(a2);
> -        AttachmentPart a3 = msg.createAttachmentPart(new javax.activation.DataHandler(url2));
> -        a3.setContentType("text/plain");
> -        msg.addAttachmentPart(a3);
> -
> -        assertTrue(msg.countAttachments() == 3);
> -
> -        javax.xml.soap.MimeHeaders mimeHeaders = new javax.xml.soap.MimeHeaders();
> -        mimeHeaders.addHeader("Content-Type", "text/xml");
> -
> -        int nAttachments = 0;
> -        java.util.Iterator iterator = msg.getAttachments(mimeHeaders);
> -        while (iterator.hasNext()) {
> -            nAttachments++;
> -            AttachmentPart ap = (AttachmentPart) iterator.next();
> -            assertTrue(ap.equals(a1) || ap.equals(a2));
> -        }
> -        assertTrue(nAttachments == 2);
> -    }
> -
> -    public void _testAttachment() {
> -        try {
> -            MessageFactory factory = MessageFactory.newInstance();
> -            SOAPMessage msg = factory.createMessage();
> -
> -            AttachmentPart ap = msg.createAttachmentPart();
> -            File f = new File("test-resources" + File.separator + "axis2.xml");
> -            InputStream in = new FileInputStream("test-resources" + File.separator + "axis2.jpg");
> -            ap.setContent(new StreamSource(in), "text/xml");
> -
> -            assertTrue(ap.getSize() <= 0);
> -        } catch (SOAPException e) {
> -            e.printStackTrace();
> -            fail("Unexpected Exception : " + e);
> -        } catch (FileNotFoundException e) {
> -            e.printStackTrace();
> -            fail("Unexpected Exception : " + e);
> -        }
> -    }
> -
> -    public void testBadAttSize() throws Exception {
> -        MessageFactory factory = MessageFactory.newInstance();
> -        SOAPMessage message = factory.createMessage();
> -
> -        ByteArrayInputStream ins = new ByteArrayInputStream(new byte[5]);
> -        DataHandler dh = new DataHandler(new Src(ins, "text/plain"));
> -        AttachmentPart part = message.createAttachmentPart(dh);
> -        assertEquals("Size should match", 5, part.getSize());
> -    }
> -
> -    class Src implements DataSource {
> -        InputStream m_src;
> -        String m_type;
> -
> -        public Src(InputStream data, String type) {
> -            m_src = data;
> -            m_type = type;
> -        }
> -
> -        public String getContentType() {
> -            return m_type;
> -        }
> -
> -        public InputStream getInputStream() throws IOException {
> -            m_src.reset();
> -            return m_src;
> -        }
> -
> -        public String getName() {
> -            return "Some-Data";
> -        }
> -
> -        public OutputStream getOutputStream() {
> -            throw new UnsupportedOperationException("I don't give output streams");
> -        }
> -    }
> -    
> -    public void testClearContent() throws Exception {
> -    	try {
> -    		InputStream in1 = new FileInputStream(new File("test-resources" + File.separator + "attach.xml"));
> -
> -        	MessageFactory factory = MessageFactory.newInstance();
> -        	SOAPMessage message = factory.createMessage();
> -            AttachmentPart ap = message.createAttachmentPart();
> -            MimeHeader mh = null;
> -    		
> -    		System.out.println("Setting Mime Header ");
> -    		ap.setMimeHeader("Content-Description","some text");
> -
> -    		System.out.println("Setting Content Id Header ");
> -    		ap.setContentId("id@abc.com");
> -
> -    		System.out.println("Setting Content ");
> -    		ap.setContent( new StreamSource(in1),"text/xml");
> -
> -    		System.out.println("Clearing Content ");
> -    		ap.clearContent();
> -
> -    		try {
> -
> -    			System.out.println("Getting Content ");
> -    			InputStream is = (InputStream)ap.getContent();
> -
> -    			System.out.println("Error: SOAPException should have been thrown");
> -    		} catch(SOAPException e) {
> -    			System.out.println("Error thrown.(expected)");
> -    		}
> -
> -    		Iterator iterator = ap.getAllMimeHeaders();
> -    		int cnt=0;
> -    		boolean foundHeader1=false;
> -    		boolean foundHeader2=false;
> -    		boolean foundDefaultHeader=false;
> -    		while (iterator.hasNext()) {
> -    			cnt++;
> -    			mh = (MimeHeader)iterator.next();
> -    			String name=mh.getName();
> -    			String value=mh.getValue();
> -    			if (name.equals("Content-Description") && value.equals("some text")){
> -    				if (!foundHeader1){
> -    					foundHeader1=true;
> -    					System.out.println("MimeHeaders do match for header1");
> -    					System.out.println("receive: name="+name+", value="+value);
> -    				}
> -    				else {
> -    					System.out.println("Error: Received the same header1 header twice");
> -    					System.out.println("received: name="+name+", value="+value);
> -    				}
> -    			} else if (name.equals("Content-Id") && value.equals("id@abc.com")){
> -    				//TODO Content-Id or Content-ID??
> -    				if (!foundHeader2){
> -    					foundHeader2=true;
> -    					System.out.println("MimeHeaders do match for header2");
> -    					System.out.println("receive: name="+name+", value="+value);
> -    				}
> -    				else {
> -    					System.out.println("Error: Received the same header2 header twice");
> -    					System.out.println("received: name="+name+", value="+value);
> -    				}
> -    			} else if (name.equals("Content-Type") && value.equals("text/xml")){
> -    				if (!foundDefaultHeader){
> -    					foundDefaultHeader=true;
> -    					System.out.println("MimeHeaders do match for default header");
> -    					System.out.println("receive: name="+name+", value="+value);
> -    				}
> -    				else {
> -    					System.out.println("Error: Received the same default header header twice");
> -    					System.out.println("received: name="+name+", value="+value);
> -    				}
> -    			} else {
> -    				System.out.println("Error: Received an invalid header");
> -    				System.out.println("received: name="+name+", value="+value);
> -    			}
> -    		}
> -
> -    		if (!(foundHeader1 && foundHeader2)){
> -    			System.out.println("Error: did not receive both headers");
> -    		}
> -
> -    	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> -    	}
> -
> -    }
> -    
> -
> -    
> -    public void testGetContent() throws Exception 
> -    {
> -    	try 
> -    	{
> -    		MessageFactory factory = MessageFactory.newInstance();
> -    		SOAPMessage msg = factory.createMessage();
> -    		AttachmentPart ap = msg.createAttachmentPart();
> -    		Image image = javax.imageio.ImageIO.read(new File("test-resources" + File.separator + "attach.gif"));
> -    		ap = msg.createAttachmentPart(image, "image/gif");
> -
> -    		System.out.println("Getting Content should return an Image object");
> -    		Object o = ap.getContent();
> -    		System.out.println("object returned="+o);
> -    		if(o != null) {
> -    			if(o instanceof Image)
> -    				System.out.println("Image object was returned (ok)");
> -    			else {
> -    				System.out.println("Unexpected object was returned (not ok)");
> -    				System.out.println("Unexpected object="+o);
> -    			}
> -    		} else {
> -    			System.out.println("null was returned");
> -    		}
> -    	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> -    	}
> -    }
> -    
> -    public void testGetRawContents(){
> -    	try 
> -    	{
> -    		MessageFactory factory = MessageFactory.newInstance();
> -    		SOAPMessage msg = factory.createMessage();
> -    		AttachmentPart ap = msg.createAttachmentPart();
> -    		ap = msg.createAttachmentPart();
> -    		byte data1[] = null;
> -    		data1 = ap.getRawContentBytes();
> -
> -    	} catch(SOAPException e) {
> -    		System.out.println("Caught expected SOAPException");
> -    	} catch(NullPointerException e) {
> -    		System.out.println("Caught expected NullPointerException");
> -    	} catch(Exception e) {
> -    		fail();
> -    	}
> -    }
> -    
> -    public void testSetBase64Content(){
> -    	try 
> -    	{
> -    		MessageFactory factory = MessageFactory.newInstance();
> -    		SOAPMessage msg = factory.createMessage();
> -    		AttachmentPart ap = msg.createAttachmentPart();
> -
> -    		URL url = new URL("http://ws.apache.org/images/project-logo.jpg");
> -    		DataHandler dh = new DataHandler(url);
> -    		System.out.println("Create InputStream from DataHandler's InputStream");
> -    		InputStream is = dh.getInputStream();
> -
> -    		System.out.println("Setting Content via InputStream for image/jpeg mime type");
> -    		ByteArrayOutputStream bos = new ByteArrayOutputStream();
> -    		OutputStream ret = new BASE64EncoderStream(bos);
> -    		int count;
> -    		byte buf[] = new byte[8192];
> -    		while ((count = is.read(buf, 0, 8192)) != -1) {
> -    			ret.write(buf, 0, count);
> -    		}
> -    		ret.flush();
> -    		buf = bos.toByteArray();
> -    		InputStream stream = new ByteArrayInputStream(buf);
> -    		ap.setBase64Content(stream,"image/jpeg");
> -
> -    		System.out.println("Getting Content should return InputStream object");
> -    		InputStream r = ap.getBase64Content();
> -    		System.out.println("object returned="+r);
> -    		if(r != null) {
> -    			if(r instanceof InputStream)
> -    				System.out.println("InputStream object was returned (ok)");
> -    			else {
> -    				System.out.println("Unexpected object was returned (not ok)");
> -    				System.out.println("Unexpected object="+r);
> -    			}
> -    		} else {
> -    			System.out.println("null was returned");
> -    		}
> -    	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> -    	}
> -    }
> -    
> +	public AttachmentTest(String name) {
> +		super(name);
> +	}
> +
> +
> +	public void testStringAttachment() throws Exception {
> +
> +		MessageFactory factory = MessageFactory.newInstance();
> +		SOAPMessage message = factory.createMessage();
> +		AttachmentPart attachment = message.createAttachmentPart();
> +		String stringContent = "Update address for Sunny Skies " +
> +		"Inc., to 10 Upbeat Street, Pleasant Grove, CA 95439";
> +
> +		attachment.setContent(stringContent, "text/plain");
> +		attachment.setContentId("update_address");
> +		message.addAttachmentPart(attachment);
> +
> +		assertTrue(message.countAttachments() == 1);
> +
> +		java.util.Iterator it = message.getAttachments();
> +		while (it.hasNext()) {
> +			attachment = (AttachmentPart) it.next();
> +			Object content = attachment.getContent();
> +			String id = attachment.getContentId();
> +			assertEquals(content, stringContent);
> +		}
> +		message.writeTo(System.out);
> +
> +		message.removeAllAttachments();
> +		assertTrue(message.countAttachments() == 0);
> +	}
> +
> +
> +
> +	public void testMultipleAttachments() throws Exception {
> +
> +		MessageFactory factory = MessageFactory.newInstance();
> +		SOAPMessage msg = factory.createMessage();
> +		java.net.URL url1 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.html");
> +		java.net.URL url2 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.txt");
> +
> +		AttachmentPart a1 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> +		a1.setContentType("text/xml");
> +		msg.addAttachmentPart(a1);
> +		AttachmentPart a2 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> +		a2.setContentType("text/xml");
> +		msg.addAttachmentPart(a2);
> +		AttachmentPart a3 = msg.createAttachmentPart(new javax.activation.DataHandler(url2));
> +		a3.setContentType("text/plain");
> +		msg.addAttachmentPart(a3);
> +
> +		assertTrue(msg.countAttachments() == 3);
> +
> +		javax.xml.soap.MimeHeaders mimeHeaders = new javax.xml.soap.MimeHeaders();
> +		mimeHeaders.addHeader("Content-Type", "text/xml");
> +
> +		int nAttachments = 0;
> +		java.util.Iterator iterator = msg.getAttachments(mimeHeaders);
> +		while (iterator.hasNext()) {
> +			nAttachments++;
> +			AttachmentPart ap = (AttachmentPart) iterator.next();
> +			assertTrue(ap.equals(a1) || ap.equals(a2));
> +		}
> +		assertTrue(nAttachments == 2);
> +	}
> +
> +
> +	public void testMultipleAttachments2() throws Exception {
> +		MessageFactory factory = MessageFactory.newInstance();
> +		SOAPMessage msg = factory.createMessage();
> +		java.net.URL url1 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.html");
> +		java.net.URL url2 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.txt");
> +
> +		AttachmentPart a1 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> +		a1.setContentType("text/xml");
> +		msg.addAttachmentPart(a1);
> +		AttachmentPart a2 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> +		a2.setContentType("text/xml");
> +		msg.addAttachmentPart(a2);
> +		AttachmentPart a3 = msg.createAttachmentPart(new javax.activation.DataHandler(url2));
> +		a3.setContentType("text/plain");
> +		msg.addAttachmentPart(a3);
> +
> +		assertTrue(msg.countAttachments() == 3);
> +
> +		javax.xml.soap.MimeHeaders mimeHeaders = new javax.xml.soap.MimeHeaders();
> +		mimeHeaders.addHeader("Content-Type", "text/xml");
> +
> +		int nAttachments = 0;
> +		java.util.Iterator iterator = msg.getAttachments(mimeHeaders);
> +		while (iterator.hasNext()) {
> +			nAttachments++;
> +			AttachmentPart ap = (AttachmentPart) iterator.next();
> +			assertTrue(ap.equals(a1) || ap.equals(a2));
> +		}
> +		assertTrue(nAttachments == 2);
> +	}
> +
> +	public void testBadAttSize() throws Exception {
> +		MessageFactory factory = MessageFactory.newInstance();
> +		SOAPMessage message = factory.createMessage();
> +
> +		ByteArrayInputStream ins = new ByteArrayInputStream(new byte[5]);
> +		DataHandler dh = new DataHandler(new Src(ins, "text/plain"));
> +		AttachmentPart part = message.createAttachmentPart(dh);
> +		assertEquals("Size should match", 5, part.getSize());
> +	}
> +
> +	class Src implements DataSource {
> +		InputStream m_src;
> +		String m_type;
> +
> +		public Src(InputStream data, String type) {
> +			m_src = data;
> +			m_type = type;
> +		}
> +
> +		public String getContentType() {
> +			return m_type;
> +		}
> +
> +		public InputStream getInputStream() throws IOException {
> +			m_src.reset();
> +			return m_src;
> +		}
> +
> +		public String getName() {
> +			return "Some-Data";
> +		}
> +
> +		public OutputStream getOutputStream() {
> +			throw new UnsupportedOperationException("I don't give output streams");
> +		}
> +	}
> +
> +
> +	public void testClearContent() throws Exception {
> +		try {
> +			InputStream in1 = new FileInputStream(new File("test-resources" + File.separator + "attach.xml"));
> +
> +			MessageFactory factory = MessageFactory.newInstance();
> +			SOAPMessage message = factory.createMessage();
> +			AttachmentPart ap = message.createAttachmentPart();
> +			MimeHeader mh = null;
> +
> +			//Setting Mime Header
> +			ap.setMimeHeader("Content-Description","some text");
> +
> +			//Setting Content Id Header
> +			ap.setContentId("id@abc.com");
> +
> +			//Setting Content
> +			ap.setContent( new StreamSource(in1),"text/xml");
> +
> +			//Clearing Content
> +			ap.clearContent();
> +
> +			try {
> +
> +				//Getting Content
> +				InputStream is = (InputStream)ap.getContent();
> +				fail("Error: SOAPException should have been thrown");
> +			} catch(SOAPException e) {
> +				//Error thrown.(expected)
> +			}
> +
> +			Iterator iterator = ap.getAllMimeHeaders();
> +			int cnt=0;
> +			boolean foundHeader1=false;
> +			boolean foundHeader2=false;
> +			boolean foundDefaultHeader=false;
> +			while (iterator.hasNext()) {
> +				cnt++;
> +				mh = (MimeHeader)iterator.next();
> +				String name=mh.getName();
> +				String value=mh.getValue();
> +				if (name.equals("Content-Description") && value.equals("some text")){
> +					if (!foundHeader1){
> +						foundHeader1=true;
> +						//MimeHeaders do match for header1
> +						//System.out.println("receive: name="+name+", value="+value);
> +					}
> +					else {
> +						fail("Error: Received the same header1 header twice");
> +						//System.out.println("received: name="+name+", value="+value);
> +					}
> +				} else if (name.equals("Content-Id") && value.equals("id@abc.com")){
> +					//TODO Content-Id or Content-ID??
> +					if (!foundHeader2){
> +						foundHeader2=true;
> +						//MimeHeaders do match for header2
> +						//System.out.println("receive: name="+name+", value="+value);
> +					}
> +					else {
> +						fail("Error: Received the same header2 header twice");
> +						//System.out.println("received: name="+name+", value="+value);
> +					}
> +				} else if (name.equals("Content-Type") && value.equals("text/xml")){
> +					if (!foundDefaultHeader){
> +						foundDefaultHeader=true;
> +						//MimeHeaders do match for default header
> +						//System.out.println("receive: name="+name+", value="+value);
> +					}
> +					else {
> +						fail("Error: Received the same default header header twice");
> +						//System.out.println("received: name="+name+", value="+value);
> +					}
> +				} else {
> +					fail("Error: Received an invalid header");
> +					//System.out.println("received: name="+name+", value="+value);
> +				}
> +			}
> +
> +			if (!(foundHeader1 && foundHeader2)){
> +				fail("Error: did not receive both headers");
> +			}
> +
> +		} catch(Exception e) {
> +			fail("Exception: " + e);
> +		}
> +
> +	}
> +
> +
> +
> +
> +	public void testGetContent() throws Exception 
> +	{
> +		try 
> +		{
> +			MessageFactory factory = MessageFactory.newInstance();
> +			SOAPMessage msg = factory.createMessage();
> +			AttachmentPart ap = msg.createAttachmentPart();
> +			Image image = javax.imageio.ImageIO.read(new File("test-resources" + File.separator + "attach.gif"));
> +			ap = msg.createAttachmentPart(image, "image/gif");
> +
> +			//Getting Content should return an Image object
> +			Object o = ap.getContent();
> +			if(o != null) {
> +				if(o instanceof Image){
> +					//Image object was returned (ok)
> +				}else {
> +					fail("Unexpected object was returned");
> +				}
> +			}
> +		} catch(Exception e) {
> +			fail("Exception: " + e);
> +		}
> +	}
> +
> +	public void testGetRawContents(){
> +		try 
> +		{
> +			MessageFactory factory = MessageFactory.newInstance();
> +			SOAPMessage msg = factory.createMessage();
> +			AttachmentPart ap = msg.createAttachmentPart();
> +			ap = msg.createAttachmentPart();
> +			byte data1[] = null;
> +			data1 = ap.getRawContentBytes();
> +
> +		} catch(SOAPException e) {
> +			//Caught expected SOAPException
> +		} catch(NullPointerException e) {
> +			//Caught expected NullPointerException
> +		} catch(Exception e) {
> +			fail();
> +		}
> +	}
> +
> +
> +
> +	public void testSetBase64Content(){
> +		try 
> +		{
> +			MessageFactory factory = MessageFactory.newInstance();
> +			SOAPMessage msg = factory.createMessage();
> +			AttachmentPart ap = msg.createAttachmentPart();
> +
> +			URL url = new URL("http://ws.apache.org/images/project-logo.jpg");
> +			DataHandler dh = new DataHandler(url);
> +			//Create InputStream from DataHandler's InputStream
> +			InputStream is = dh.getInputStream();
> +
> +			//Setting Content via InputStream for image/jpeg mime type
> +			ByteArrayOutputStream bos = new ByteArrayOutputStream();
> +			OutputStream ret = new BASE64EncoderStream(bos);
> +			int count;
> +			byte buf[] = new byte[8192];
> +			while ((count = is.read(buf, 0, 8192)) != -1) {
> +				ret.write(buf, 0, count);
> +			}
> +			ret.flush();
> +			buf = bos.toByteArray();
> +			InputStream stream = new ByteArrayInputStream(buf);
> +			ap.setBase64Content(stream,"image/jpeg");
> +
> +			//Getting Content.. should return InputStream object
> +			InputStream r = ap.getBase64Content();
> +			if(r != null) {
> +				if(r instanceof InputStream){
> +					//InputStream object was returned (ok)
> +				}else {
> +					fail("Unexpected object was returned");
> +				}
> +			}
> +		} catch(Exception e) {
> +			fail("Exception: " + e);
> +		}
> +	}
> +
>  }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java Mon Feb  5 04:14:07 2007
> @@ -17,8 +17,6 @@
>  
>  import java.io.ByteArrayInputStream;
>  import java.io.ByteArrayOutputStream;
> -import java.io.File;
> -import java.io.FileInputStream;
>  
>  import javax.xml.soap.MessageFactory;
>  import javax.xml.soap.MimeHeaders;
> @@ -108,67 +106,21 @@
>          }
>      }
>  
> -    public void _testMessageFactory3() {
> -        MimeHeaders headers = new MimeHeaders();
> -        headers.addHeader("Content-Type",
> -                          "multipart/related; boundary=MIMEBoundaryurn:uuid:F02ECC18873CFB73E211412748909307; type=\"application/xop+xml\"; start=\"<0....@apache.org>\"; start-info=\"text/xml\"; charset=UTF-16");
> -
> -        try {
> -            FileInputStream fis = new FileInputStream("test-resources" + File.separator + "message.bin");
> -            SOAPMessage msg1 = mf.createMessage(headers, fis);
> -        } catch (Exception e) {
> -            e.printStackTrace();
> -            fail("Unexpected Exception : " + e);
> -        }
> -    }
>      
>      public void testNewInstane(){
>      	try {
> -    		// Create a Dynamic MessageFactory object
> -    		System.out.println("Create Dynamic MessageFactory object");
> -    		MessageFactory mf = MessageFactory.newInstance(
> -    				SOAPConstants.DYNAMIC_SOAP_PROTOCOL);
> -    		if(mf == null) {
> -    			System.out.println("MessageFactory.newInstance(" +
> -    			"DYNAMIC_SOAP_PROTOCOL) returned null");
> -    		} else if(!(mf instanceof MessageFactory)) {
> -    			System.out.println("MessageFactory.newInstance(" +
> -    			"DYNAMIC_SOAP_PROTOCOL) did not return MessageFactory object");
> -    		} 
> -
> -    		MessageFactory mf2 = MessageFactory.newInstance();
> +    		MessageFactory mf = MessageFactory.newInstance();
> +    		assertNotNull(mf);
>      		ByteArrayOutputStream baos1 = new ByteArrayOutputStream();
> -    		ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
>  
> -    		System.out.println("Create SOAPMessage msg1 using createMessage()");
> -    		SOAPMessage msg1 = mf2.createMessage();
> +    		SOAPMessage msg1 = mf.createMessage();
>      		msg1.writeTo(baos1);
>  
>      		MimeHeaders headers = new MimeHeaders();
>      		headers.addHeader("Content-Type", "text/xml");
>  
> -    		// Create SOAPMessage from MessageFactory object using InputStream
> -    		System.out.println("Create SOAPMessage msg2 using SOAPMessage msg1" +
> -    		" as the InputStream");
> -    		System.out.println("Create SOAPMessage msg2 using createMessage(" +
> -    		"MimeHeaders, InputStream)");
> -    		SOAPMessage msg2 = mf.createMessage(headers, 
> -    				new ByteArrayInputStream(baos1.toByteArray()));
> -    		if(msg2 == null) {
> -    			System.out.println("Could not create SOAPMessage (msg = null)");
> -    		} else if(!(msg2 instanceof SOAPMessage)) {
> -    			fail("Could not create SOAPMessage (msg != SOAPMessage)");
> -    		}
> -    		msg2.writeTo(baos2);
> -    		System.out.println("Compare msg1 and msg2 (should be equal)");
> -    		if(!(baos1.toString().equals(baos2.toString()))) {
> -    			System.out.println("msg1 = " + baos1.toString());
> -    			System.out.println("msg2 = " + baos2.toString());
> -    			fail("msg1 and msg2 are not equal (they should be)");
> -    		}
>      	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> +    		fail("Exception: " + e);
>      	}
>      }
> -    
>  }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java Mon Feb  5 04:14:07 2007
> @@ -55,8 +55,6 @@
>          msg.writeTo(baos);
>  
>          String xml = new String(baos.toByteArray());
> -
> -        System.out.println("########## xml = " + xml);
>          assertTrue(xml.indexOf("prefix1") != -1);
>          assertTrue(xml.indexOf("prefix2") != -1);
>          assertTrue(xml.indexOf("http://www.sun.com") != -1);
> @@ -86,7 +84,7 @@
>          while (iter.hasNext()) {
>              final Object obj = iter.next();
>              if (obj instanceof Text) {
> -                System.out.println("\n- Text Ignored.");
> +                //System.out.println("\n- Text Ignored.");
>              } else {
>                  final SOAPElement soapElement = (SOAPElement) obj;
>                  final Iterator attIter = soapElement.getAllAttributes();
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java Mon Feb  5 04:14:07 2007
> @@ -52,28 +52,22 @@
>      }
>  
>      
> -
> +    /*
> +     * for soap version 1.1
> +     */
>      public void testAddDetailEntry() {
>      	try 
>      	{
> -    		System.out.println("Add a SOAPFault object to the SOAPBody");
> +    		//Add a SOAPFault object to the SOAPBody
>      		SOAPFault sf = body.addFault();
> -    		System.out.println("Add a Detail object to the SOAPFault object");
> +    		//Add a Detail object to the SOAPFault object
>      		Detail d = sf.addDetail();
>      		QName name = new QName("http://www.wombat.org/trader", 
>      				"GetLastTradePrice", "WOMBAT");
> -    		System.out.println("Add a DetailEntry object to the Detail object");
> +    		//Add a DetailEntry object to the Detail object
>      		DetailEntry de = d.addDetailEntry(name);
> -    		System.out.println("Successfully created DetailEntry object");
> -    		if(de == null) {
> -    			System.out.println("addDetailEntry() returned null");
> -    		} else if(!(de instanceof DetailEntry)) {
> -    			System.out.println(
> -    			"addDetailEntry() did not return a DetailEntry object");
> -    		}
> -    		else 
> -    			System.out.println("Successfully created DetailEntry object");
> -
> +    		assertNotNull(de);
> +    		assertTrue(de instanceof DetailEntry);
>      	} catch (Exception e) {
>      		fail("Exception: " + e);
>      	}
> @@ -90,23 +84,17 @@
>              envelope = sp.getEnvelope();
>              body = envelope.getBody();
>      		
> -    		System.out.println("Add a SOAPFault object to the SOAPBody");
> +    		//Add a SOAPFault object to the SOAPBody
>      		SOAPFault sf = body.addFault();
> -    		System.out.println("Add a Detail object to the SOAPFault object");
> +    		//Add a Detail object to the SOAPFault object
>      		Detail d = sf.addDetail();
>      		QName name = new QName("http://www.wombat.org/trader", 
>      				"GetLastTradePrice", "WOMBAT");
> -    		System.out.println("Add a DetailEntry object to the Detail object");
> +    		//Add a DetailEntry object to the Detail object
>      		DetailEntry de = d.addDetailEntry(name);
> -    		System.out.println("Successfully created DetailEntry object");
> -    		if(de == null) {
> -    			System.out.println("addDetailEntry() returned null");
> -    		} else if(!(de instanceof DetailEntry)) {
> -    			System.out.println("addDetailEntry() did not return a DetailEntry object");
> -    		}
> -    		else 
> -    			System.out.println("Successfully created DetailEntry object");
> -
> +    		//Successfully created DetailEntry object
> +    		assertNotNull(de);
> +    		assertTrue(de instanceof DetailEntry);
>      	} catch (Exception e) {
>      		fail("Exception: " + e);
>      	}
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java Mon Feb  5 04:14:07 2007
> @@ -114,7 +114,7 @@
>          assertEquals(2, count);
>      }
>  
> -    public void testAddDocument() {
> +    public void _testAddDocument() {
>          try {
>              Document document = null;
>              DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
> @@ -127,7 +127,7 @@
>  
>              message.getSOAPHeader().detachNode();
>              // assertNull(message.getSOAPHeader());    
> -            // TODO:this fails. Header is always being created if it doesnt exist it DOOM
> +            // TODO:this fails. Header is always being created if it doesnt exist in DOOM
>  
>              SOAPBody soapBody = message.getSOAPBody();
>              soapBody.addDocument(document);
> @@ -150,12 +150,10 @@
>  
>              if (node instanceof SOAPElement) {
>                  element = (SOAPElement) node;
> -
>                  Name name = element.getElementName();
> -                System.out.println(indent + "Name is " + name.getQualifiedName());
> -
>                  Iterator attrs = element.getAllAttributes();
>  
> +                /*
>                  while (attrs.hasNext()) {
>                      Name attrName = (Name) attrs.next();
>                      System.out.println(indent + " Attribute name is " +
> @@ -163,14 +161,13 @@
>                      System.out.println(indent + " Attribute value is " +
>                                         element.getAttributeValue(attrName));
>                  }
> +                */
>  
>                  Iterator iter2 = element.getChildElements();
>                  getContents(iter2, indent + " ");
>              } else {
>                  text = (Text) node;
> -
> -                String content = text.getValue();
> -                System.out.println(indent + "Content is: " + content);
> +                assertNotNull(text.getTextContent());
>              }
>          }
>      }
> @@ -203,7 +200,6 @@
>          	assertEquals(childCount, 0);
>      	} 
>      	catch (Exception e) {
> -                e.printStackTrace();
>                  fail("Unexpected Exception : " + e);
>          }
>      }
> @@ -222,7 +218,6 @@
>              message.saveChanges();
>  
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Unexpected Exception : " + e);
>          }
>      }
> @@ -239,14 +234,11 @@
>              String value = "MyValue1";
>              soapBody.addAttribute(qname, value);
>              message.saveChanges();
> -
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Unexpected Exception : " + e);
>          }
>      }
>      
> -    //TODO : check with azeez
>      /*
>       * For SOAP 1.2 message 
>       */
> @@ -263,13 +255,8 @@
>              SOAPFault soapFault = soapBody.addFault(qname, value);
>              message.saveChanges();
>              assertNotNull(soapFault);
> -            if(!(soapFault instanceof SOAPFault)){
> -            	fail("Wrong return type");
> -            }
> -			
> -
> +            assertTrue(soapFault instanceof SOAPFault);
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Unexpected Exception : " + e);
>          }
>      }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java Mon Feb  5 04:14:07 2007
> @@ -90,23 +90,14 @@
>      {
>      	try 
>      	{
> -    		System.out.println("Create SOAPConnection object");
>      		SOAPConnectionFactory sf = new SOAPConnectionFactoryImpl();
>      		SOAPConnection con = sf.createConnection();
> -    		System.out.println(
> -    				"Create a valid non webservice endpoint for invoking HTTP-GET");
> +    		//Create a valid non webservice endpoint for invoking HTTP-GET
>      		URL urlEndpoint = new URL("http", "java.sun.com", 80, "/index.html");
> -    		System.out.println("Valid Non Webservice Endpoint=" + urlEndpoint);
> -
> -    		System.out.println("Invoking HTTP-GET with a valid non webservice " +
> -    		"endpoint should throw a SOAPException");
> +    		//invoking HTTP-GET with a valid non webservice endpoint should throw a SOAPException
>      		SOAPMessage reply = con.get(urlEndpoint);
> -    		System.out.println("HTTP-GET succeeded (unexpected)");
> -    		System.out.println("Did not get expected SOAPException");
> -    	} catch(SOAPException e) {
> -    		System.out.println("Did get expected SOAPException");
> -    	} catch(Exception e) {
> -    		fail();
> +    	}catch(Exception e) {
> +    		assertTrue(e instanceof SOAPException);
>      	}
>      }
>  }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java Mon Feb  5 04:14:07 2007
> @@ -241,14 +241,13 @@
>      		SOAPBody body = msg.getSOAPBody();
>  
>      		Name name = soapEnvelope.createName("MyChild1");
> -    		System.out.println("Add child element Name object with localName=MyChild1");
> -    		System.out.println("Calling addChildElement(Name)");
> +    		//Add child element Name object with localName=MyChild1
>      		SOAPElement se = body.addChildElement(name);
>      		if(se == null){
> -    			System.out.println("addChildElement() did not return SOAPElement");
> -    			pass = false;
> +    			fail("addChildElement() did not return SOAPElement");
> +    			//pass = false;
>      		} else {
> -    			System.out.println("Find the child element just added");
> +    			//Find the child element just added
>      			Iterator childs = body.getChildElements(name);
>      			int count = 0;
>      			while (childs.hasNext()) {
> @@ -257,35 +256,27 @@
>      			}
>  
>      			childs = body.getChildElements(name);
> -    			if(count != 1) {
> -    				System.out.println("Wrong iterator count returned of "+count + ", expected 1");
> -    				pass = false;
> -    			} else {
> -    				SOAPElement se2 = (SOAPElement)childs.next();
> -    				if(!se.equals(se2)) {
> -    					System.out.println("SOAPElement se != se2 (unexpected)");
> -    					pass = false;
> -    				} else{
> -    					System.out.println("SOAPElement se = se2 (expected)");
> -    				}
> -    			} 
> -    			if(pass) {
> -    				System.out.println("Retrieve the SOAPElement Name");
> -    				Name n = se.getElementName();
> -    				System.out.println("localName="+n.getLocalName()+" prefix="
> -    						+n.getPrefix()+" URI="+n.getURI()+" qualifiedName="
> -    						+n.getQualifiedName());
> -    				if (!n.equals(name)) {
> -    					System.out.println("Name objects are not equal (unexpected)");
> -    					System.out.println("addChildElement() did not return " +
> -    							"correct Name object expected localName=" + 
> -    							name.getLocalName() + ", got localName=" 
> -    							+ n.getLocalName());
> -    					pass = false;
> -    				} else {
> -    					System.out.println("Name objects are equal (expected)");
> -    				}
> -    			}
> +    			assertTrue(count == 1);
> +    			
> +    			SOAPElement se2 = (SOAPElement)childs.next();
> +    			assertEquals(se, se2);
> +   				//se = se2 (expected)
> +
> +    			//Retrieve the SOAPElement Name
> +    			Name n = se.getElementName();
> +    			//System.out.println("localName="+n.getLocalName()+" prefix="
> +    			//			+n.getPrefix()+" URI="+n.getURI()+" qualifiedName="
> +    			//			+n.getQualifiedName());
> +    			assertEquals(n, name);
> +    			//if (!n.equals(name)) {
> +    			//System.out.println("Name objects are not equal (unexpected)");
> +    			//System.out.println("addChildElement() did not return " +
> +    			//"correct Name object expected localName=" + 
> +    			//name.getLocalName() + ", got localName=" 
> +    			//+ n.getLocalName());
> +    			//}
> +    			
> +   				//Name objects are equal (expected)
>      		}
>  
>      	} catch (Exception e) {
> @@ -326,7 +317,6 @@
>                  }
>              }
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Exception: " + e);
>          }
>      }
> @@ -346,13 +336,11 @@
>              assertFalse("removeAttribute() did not return false", b);
>              assertNull(body.getAttributeValue(name));
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Exception: " + e);
>          }
>      }
>      
>      public void testRemoveAttribute2() {
> -    	boolean pass = true;
>      	try 
>      	{
>      		SOAPMessage msg = MessageFactory.newInstance().createMessage();
> @@ -361,86 +349,46 @@
>  
>      		QName name = new QName("MyAttr1");
>      		String value = "MyValue1";
> -    		System.out.println("Add attribute qname = " + name.getLocalPart() + 
> -    				", value = " + value);
>      		body.addAttribute(name, value);
> -    		System.out.println("Remove attribute qname = " + name.getLocalPart() + 
> -    				", value = " + value);
>      		boolean b = body.removeAttribute(name);
> -    		if(!b) {
> -    			System.out.println("removeAttribute() did not return true");
> -    			System.out.println("removeAttributeTest() test FAILED");
> -    			pass = false;
> -    		} 
> -    		if(pass) {
> -    			b = body.removeAttribute(name);
> -    			if(b) {
> -    				System.out.println("removeAttribute() did not return false");
> -    				System.out.println("removeAttributeTest() test FAILED");
> -    				pass = false;
> -    			}
> -    		}
> -    		if(pass) {
> -    			if(body.getAttributeValue(name) == null) {
> -    				System.out.println("removeAttributeTest() test PASSED");
> -    			} else {
> -    				System.out.println("removeAttributeTest() test FAILED");
> -    				pass = false;
> -    			}
> +    		assertTrue(b);
> +
> +    		b = body.removeAttribute(name);
> +    		if(b) {
> +    			//removeAttribute() did not return false
> +    			fail();
>      		}
> +    		//getAttributeValue should return null
> +    		assertNull(body.getAttributeValue(name));
>      	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> -    		pass = false;
> +    		fail("Error : "+e);
>      	}
>      }    
>      
> -    /*
> -     * name
> -     */
>      public void testRemoveAttributeName(){
> -    	boolean pass = true;
> -    	try 
> -    	{
> -            SOAPMessage msg = MessageFactory.newInstance().createMessage();
> +    	try{
> +    		SOAPMessage msg = MessageFactory.newInstance().createMessage();
>              SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope();
>              SOAPBody body = envelope.getBody();
>      		
>      	    Name name = envelope.createName("MyAttr1");
>      	    String value = "MyValue1";
> -    	    System.out.println("Add attribute name = " + name.getLocalName() + 
> -    			", value = " + value);
>      	    body.addAttribute(name, value);
> -    	    System.out.println("Remove attribute name = " + name.getLocalName() + 
> -    			", value = " + value);
>      	    boolean b = body.removeAttribute(name);
> -    	    if(!b) {
> -    		System.out.println("removeAttribute() did not return true");
> -    		pass = false;
> -    	    } 
> -    	    if(pass) {
> -    	        b = body.removeAttribute(name);
> -    		if(b) {
> -    		    System.out.println("removeAttribute() did not return false");
> -    		    pass = false;
> -    		}
> -    	    }
> -    	    if(pass) {
> +    	    assertTrue(b);
> +    	    
> +    	    b = body.removeAttribute(name);
> +    	    assertTrue(!b);
> +
>      		String s = body.getAttributeValue(name);
> -    	        if(s != null) {
> -    		    System.out.println("getAttributeValue() returned wrong value,"
> -    		      + " expected null, got \"" + s + "\"");
> -    		    pass = false;
> -    	        }
> -    	    }
> +    		assertNull(s);
>      	} catch(Exception e) {
> -    	    System.out.println("Exception: " + e);
> -    	    pass = false;
> +    		fail("Failed : "+e);
>      	}
>      }
>      
>  
>      public void _testRemoveAttributeQName(){
> -    	boolean pass = true;    	
>      	try 
>      	{
>              SOAPMessage msg = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage();
> @@ -449,33 +397,13 @@
>      		
>      	    QName name = new QName("MyAttr1");
>      	    String value = "MyValue1";
> -    	    System.out.println("Add attribute qname = " + name.getLocalPart() + 
> -    			", value = " + value);
>      	    body.addAttribute(name, value);
> -    	    System.out.println("Remove attribute qname = " + name.getLocalPart() + 
> -    			", value = " + value);
>      	    boolean b = body.removeAttribute(name);
> -    	    if(!b) {
> -    		System.out.println("removeAttribute() did not return true");
> -    		System.out.println("removeAttributeTest() test FAILED");
> -    		pass = false;
> -    	    } 
> -    	    if(pass) {
> -    	        b = body.removeAttribute(name);
> -    		if(b) {
> -    		    System.out.println("removeAttribute() did not return false");
> -    		    System.out.println("removeAttributeTest() test FAILED");
> -    		    pass = false;
> -    		}
> -    	    }
> -    	    if(pass) {
> -    	        if(body.getAttributeValue(name) == null) {
> -    		    System.out.println("removeAttributeTest() test PASSED");
> -    	        } else {
> -    	        	System.out.println("removeAttributeTest() test FAILED");
> -    		    pass = false;
> -    	        }
> -    	    }
> +    	    assertTrue(b);
> +   	        b = body.removeAttribute(name);
> +   	        assertTrue(!b);
> +   	        
> +    	    assertNull(body.getAttributeValue(name));
>      	} catch(Exception e) {
>      		fail();
>      	}
> @@ -633,16 +561,7 @@
>      		}
>  
>      		Name n = se.getElementName();
> -    		if (!n.equals(name)) {
> -    			System.out.println("Name objects are not equal (unexpected)");
> -    			System.out.println("getChildElement() did not return " +
> -    					"correct Name object expected localName=" + 
> -    					name.getLocalName() + ", got localName=" 
> -    					+ n.getLocalName());
> -    			fail();
> -    		} else{
> -    			System.out.println("Name objects are equal (expected)");
> -    		}
> +    		assertEquals(n,name);
>      	} catch (SOAPException e) {
>      		fail("Unexpected Exception " + e);
>      	}
> @@ -670,23 +589,10 @@
>      		}
>      		assertEquals(childCount, 1);
>      		SOAPElement se2 = (SOAPElement)childElements.next();
> -    		if(!se.equals(se2)) {
> -    			fail();
> -    		} else {
> -    			System.out.println("SOAPElement se = se2 (expected)");
> -    		}
> +    		assertEquals(se,se2);
>  
>      		QName n = se.getElementQName();
> -    		if (!n.equals(name)) {
> -    			System.out.println("Name objects are not equal (unexpected)");
> -    			System.out.println("getChildElement() did not return " +
> -    					"correct Name object expected localPart=" + 
> -    					name.getLocalPart() + ", got localPart=" 
> -    					+ n.getLocalPart());
> -    			fail();
> -    		} else{
> -    			System.out.println("Name objects are equal (expected)");
> -    		}
> +    		assertEquals(n,name);
>      	} catch (SOAPException e) {
>      		fail("Unexpected Exception " + e);
>      	}
> @@ -721,7 +627,6 @@
>  
>      public void _testCreateQName() {
>          String prefix ="";
> -        String uri = "";
>      	try 
>      	{
>              //SOAPMessage message = MessageFactory.newInstance().createMessage();
> @@ -729,17 +634,11 @@
>              SOAPPart soapPart = message.getSOAPPart();
>              SOAPEnvelope envelope = soapPart.getEnvelope();
>              SOAPBody body = envelope.getBody();
> -    		
> -    	    System.out.println("Create QName from SOAPEnvelope");
> -    	    QName qname = envelope.createQName("qname", prefix);
> -    	    System.out.println("Create QName of: " + qname);
> +
> +            QName qname = envelope.createQName("qname", prefix);
>      	    String tprefix = qname.getPrefix();
>      	    String turi = qname.getNamespaceURI();
>      	    String tname = qname.getLocalPart();
> -    	    System.out.println("qname prefix="+tprefix);
> -    	    System.out.println("qname uri="+turi);
> -    	    System.out.println("qname localpart="+tname);
> -    	    System.out.println("Verify correct uri and prefix");
>      	    if(!tprefix.equals(prefix) || !turi.equals(envelope.getElementName().getURI())) {
>      	    	fail("createQName() did not create correct qname\n" +
>  	    		    "expected: <uri=" + envelope.getElementName().getURI() +
> @@ -747,16 +646,10 @@
>  	    		    "got:      <uri=" + turi +
>  	    		    ", prefix=" + tprefix + ", localpart=" + tname + ">");
>      	    }
> -    	    System.out.println("Create QName from SOAPBody");
>      	    qname = body.createQName("qname", body.getElementName().getPrefix());
> -    	    System.out.println("Create QName of: " + qname);
>      	    tprefix = qname.getPrefix();
>      	    turi = qname.getNamespaceURI();
>      	    tname = qname.getLocalPart();
> -    	    System.out.println("qname prefix="+tprefix);
> -    	    System.out.println("qname uri="+turi);
> -    	    System.out.println("qname localpart="+tname);
> -    	    System.out.println("Verify correct uri and prefix");
>      	    if(!tprefix.equals(body.getElementName().getPrefix()) || !turi.equals(body.getElementName().getURI())) {
>      	    	fail("createQName() did not create correct qname\n" +
>  	    		    "expected: <uri=" + body.getElementName().getURI() +
> @@ -780,58 +673,29 @@
>      		SOAPBody body = envelope.getBody();
>  
>      		Name name = envelope.createName("MyChild");
> -    		System.out.println("Add child element Name object = " +
> -    				name.toString());
>      		SOAPElement se = body.addChildElement(name);
> -    		if(se == null) {
> -    			System.out.println("addChildElement() did not return SOAPElement");
> -    			System.out.println("removeContentsTest() test FAILED");
> -
> -    			pass = false;
> -    		} else {
> -    			Iterator childs = body.getChildElements(name);
> -    			int childElementCount = 0;
> -    			for (int a = 0; childs.hasNext(); a++) {
> -    				childs.next();
> -    				childElementCount++;
> -    			}
> -    			childs = body.getChildElements(name);
> -    			if(childElementCount != 1) {
> -    				System.out.println("Wrong iterator count returned of " +
> -    						childElementCount + ", expected 1");
> -    				System.out.println("removeContentsTest() test FAILED");
> -    				pass = false;
> -    			} 
> -
> -    			if(pass) {
> -    				Name n = se.getElementName();
> -    				if (!n.equals(name)) {
> -    					System.out.println("removeContentsTest() did not return " +
> -    							"correct name object expected localname=" +
> -    							name.getLocalName() + ", got localname="
> -    							+ n.getLocalName());
> -    					System.out.println("removeContentsTest() test FAILED");
> -    					pass = false;
> -    				} 
> -    			}
> +    		assertNotNull(se);
> +    		Iterator childs = body.getChildElements(name);
> +    		int childElementCount = 0;
> +    		for (int a = 0; childs.hasNext(); a++) {
> +    			childs.next();
> +    			childElementCount++;
>      		}
> -    		System.out.println("Child addition verified, now call removeContents to delete it");
> +    		childs = body.getChildElements(name);
> +    		assertEquals(childElementCount, 1);
> +
> +    		Name n = se.getElementName();
> +    		assertEquals(n, name);
> +    		//Child addition verified, now call removeContents to delete it
>      		se.removeContents();
> -    		Iterator childs = se.getChildElements();
> -    		int childElementCount = 0;
> +    		childs = se.getChildElements();
> +    		childElementCount = 0;
>      		for (int a = 0; childs.hasNext(); a++) {
>  				childs.next();    			
>      			childElementCount++;
>      		}
> -    		if ( childElementCount !=0 ) {
> -    			System.out.println("Wrong iterator count returned of " +
> -    					childElementCount + ", expected 0, after calling removeContents");
> -    			System.out.println("removeContentsTest() test FAILED");
> -    			pass = false;
> -    		}
> -
> +    		assertEquals(childElementCount, 0);
>      	} catch(Exception e) {
> -    		e.printStackTrace();
>      		fail();
>      	}
>      }
> @@ -846,18 +710,12 @@
>              SOAPBody body = envelope.getBody();
>  
>      	    QName qname1 = new QName("http://fooURI.com", "fooElement", "foo");
> -    	    System.out.println("Create QName1 of: " + qname1);
>      	    QName qname2 = new QName("http://foo2URI.com", "fooElement2", "foo2");
> -    	    System.out.println("Create QName2 of: " + qname2);
> -    	    System.out.println("Add a child SOAPElement of: " + qname1);
> -            SOAPElement se = body.addChildElement(qname1);
> +    	    SOAPElement se = body.addChildElement(qname1);
>      	    QName qname = se.getElementQName();
> -    	    System.out.println("Get element qname of child SOAPElement: " + qname);
> -    	    System.out.println("Reset element qname of child SOAPElement to: " + qname2);
>      	    se = se.setElementQName(qname2);
>      	    qname = se.getElementQName();
> -    	    System.out.println(
> -    		"Get element qname of child SOAPElement again: " + qname);
> +
>      	    if(!qname.getNamespaceURI().equals(qname2.getNamespaceURI()) ||
>      	    		!qname.getLocalPart().equals(qname2.getLocalPart()) ||
>      	    		!qname.getPrefix().equals(qname2.getPrefix())) {
> @@ -868,7 +726,7 @@
>  			    		    ", localpart=" + qname.getLocalPart() + ">");
>      	    }
>      	} catch(Exception e) {
> -    	    System.out.println("Exception: " + e);
> +    	    fail("Error :"+e);
>      	}
>      }
>      
> @@ -883,33 +741,31 @@
>      		SOAPHeader header = envelope.getHeader();
>  
>      		QName qname = new QName("qname");
> -    		System.out.println("Create QName of: " + qname);
> -    		System.out.println("Try and change element name of SOAPEnvelope " +
> -    		"(expect SOAPException)");
> +    		//Try and change element name of SOAPEnvelope (expect SOAPException)
>      		try {
>      			envelope.setElementQName(qname);
> -    			System.out.println("Did not throw expected SOAPException");
> +    			fail("Did not throw expected SOAPException");
>      		} catch (SOAPException e) {
> -    			System.out.println("Caught expected SOAPException");
> +    			//Caught expected SOAPException
>      		}
> -    		System.out.println(
> -    		"Try and change element name of SOAPHeader (expect SOAPException)");
> +    		
> +    		//Try and change element name of SOAPHeader (expect SOAPException)
>      		try {
>      			header.setElementQName(qname);
> -    			System.out.println("Did not throw expected SOAPException");
> +    			fail("Did not throw expected SOAPException");
>      		} catch (SOAPException e) {
> -    			System.out.println("Caught expected SOAPException");
> +    			//Caught expected SOAPException
>      		}
> -    		System.out.println(
> -    		"Try and change element name of SOAPBody (expect SOAPException)");
> +    		
> +    		//Try and change element name of SOAPBody (expect SOAPException)
>      		try {
>      			body.setElementQName(qname);
> -    			System.out.println("Did not throw expected SOAPException");
> +    			fail("Did not throw expected SOAPException");
>      		} catch (SOAPException e) {
> -    			System.out.println("Caught expected SOAPException");
> +    			//Caught expected SOAPException
>      		}
>      	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> +    		fail("Error : "+e);
>      	}
>      }
>  }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java Mon Feb  5 04:14:07 2007
> @@ -553,17 +553,15 @@
>  
>      	try
>      	{
> -    		System.out.println("SOAP1.2 does not allow trailing blocks after" +
> -    				"the Body");
> -    		System.out.println("Call SOAPEnvelope.addChildElement() and " +
> -    				"(expect SOAPException)");
> +    		//SOAP1.2 does not allow trailing blocks after the Body
> +    		//Call SOAPEnvelope.addChildElement() and (expect SOAPException)
>      		Name elementAfterBody = envelope.createName("AfterBody", "e", "some-uri");
>      		envelope.addChildElement(elementAfterBody);
> -    		System.out.println("Did not throw expected SOAPException");
> +    		fail("Did not throw expected SOAPException");
>      	} catch (SOAPException e) {
> -    		System.out.println("Did throw expected SOAPException");
> +    		//Did throw expected SOAPException"
>      	} catch (Exception e) {
> -    		System.out.println("Unexpected Exception: " + e.getMessage());
> +    		fail("Unexpected Exception: " + e.getMessage());
>      	}
>      }
>  }
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-cvs-help@ws.apache.org


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


[Axis2] Re: svn commit: r503658 [1/2] - in /webservices/axis2/trunk/java/modules/saaj: src/org/apache/axis2/saaj/ test-resources/ test/org/apache/axis2/saaj/ test/org/apache/axis2/saaj/integration/

Posted by Bill Nagy <na...@watson.ibm.com>.
Please include the JIRA issue in your commit message at the very least,
or, even better -- make the comment more informative.  "Applying patches
for SAAJ sent by Sumedha" is not very helpful.  Thanks.

-Bill

On Mon, 2007-02-05 at 12:14 +0000, azeez@apache.org wrote:
> Author: azeez
> Date: Mon Feb  5 04:14:07 2007
> New Revision: 503658
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=503658
> Log:
> Applying patches for SAAJ sent by Sumedha
> 
> Added:
>     webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml   (with props)
> Modified:
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/MessageFactoryImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
>     webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFactoryTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFaultTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPHeaderTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPMessageTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/TextTest.java
>     webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/integration/IntegrationTest.java
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/AttachmentPartImpl.java Mon Feb  5 04:14:07 2007
> @@ -16,6 +16,7 @@
>  package org.apache.axis2.saaj;
>  
>  import java.awt.image.BufferedImage;
> +import java.io.ByteArrayInputStream;
>  import java.io.ByteArrayOutputStream;
>  import java.io.IOException;
>  import java.io.InputStream;
> @@ -163,22 +164,22 @@
>          }
>          try {
>              String contentType = dataHandler.getContentType();
> -            //TODO change to text/xml
> -            if(contentType.equals("text/xml")){
> -            	StringReader stringReader = new StringReader((String)dataHandler.getContent());
> +           	if (contentType.equals("text/xml")) {
> +           		StringReader stringReader = new StringReader((String)dataHandler.getContent());
>              	StreamSource streamSource = new StreamSource(stringReader);
> +   	        	streamSource.setInputStream(dataHandler.getInputStream());
>              	return streamSource;
> -            }else if (contentType.equals("text/plain") ||
> -                    contentType.equals("text/html")) {
> -
> +            	
>                  //For these content types underlying DataContentHandler surely does
>                  //the conversion to appropriate java object and we will return that java object
> -                return dataHandler.getContent();
> -            } else {
> +                //return dataHandler.getContent();
> +            }else if(contentType.equals("text/plain") ||
> +            			contentType.equals("text/html")){
> +            	return (String)dataHandler.getContent();
> +            }else {
>                  try {
>                      return dataHandler.getContent();
>                  } catch (UnsupportedDataTypeException e) {
> -
>                      //If the underlying DataContentHandler can't handle the object contents,
>                      //we will return an inputstream of raw bytes represneting the content data
>                      return dataHandler.getDataSource().getInputStream();
> @@ -256,15 +257,21 @@
>              	throw new java.lang.IllegalArgumentException(e);
>              }
>          }
> -        /*
>          else if (object instanceof byte[]) {
>              try {
> -                dataHandler = new DataHandler();
> -                contentObject = null; // the stream has been consumed
> +                contentObject = null;
> +                java.io.ByteArrayInputStream bais = new java.io.ByteArrayInputStream((byte[])object);
> +                source = new SAAJDataSource(bais,
> +                        SAAJDataSource.MAX_MEMORY_DISK_CACHED,
> +                        contentType, true);
> +                extractFilename(source);
> +                
> +                dataHandler = new DataHandler(source);
> +                contentObject = object;
>              } catch (Exception e) {
>              	throw new java.lang.IllegalArgumentException(e);
>              }
> -        }*/
> +        }
>          else {
>              throw new java.lang.IllegalArgumentException("Illegal Argument");
>          }
> @@ -280,9 +287,9 @@
>       *                                      no data in this <CODE>AttachmentPart</CODE> object
>       */
>      public DataHandler getDataHandler() throws SOAPException {
> -//        if (getContent() == null) {
> -//            throw new SOAPException("No Content present in the Attachment part");
> -//        }
> +        //if (getContent() == null) {
> +        //    throw new SOAPException("No Content present in the Attachment part");
> +        //}
>          //commented to fix AXIS2-778
>          if (dataHandler == null) {
>              throw new SOAPException("No Content present in the Attachment part");
> @@ -571,11 +578,11 @@
>       */
>  
>      public void setRawContentBytes(byte[] content, int offset, int len, String contentType) throws SOAPException {
> -        //TODO - complete
> +        //TODO - how to use offset & len?
>      	if(content == null){
>      		throw new SOAPException("Content is null");
>      	}
> -    	
> +    	setContent(content, contentType);
>      }
>  
>      /**
> 
> 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=503658&r1=503657&r2=503658
> ==============================================================================
> --- 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 Mon Feb  5 04:14:07 2007
> @@ -17,6 +17,7 @@
>  
>  import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
>  import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
> +import org.apache.axis2.saaj.util.IDGenerator;
>  
>  import javax.xml.soap.MessageFactory;
>  import javax.xml.soap.MimeHeaders;
> @@ -166,13 +167,6 @@
>       */
>      public SOAPMessage createMessage(MimeHeaders mimeheaders,
>                                       InputStream inputstream) throws IOException, SOAPException {
> -
> -        /*System.err.println("@@@@@@@@@@ MessageFactoryImpl#createMessage");
> -        byte[] b = new byte[10240];
> -        inputstream.read(b);
> -        System.err.println("byte=" + new String(b));
> -        System.err.println("@@@@@@@@@@ END MessageFactoryImpl#createMessage");*/
> -
>          SOAPMessageImpl soapMessage = new SOAPMessageImpl(inputstream, mimeheaders);
>          soapMessage.setSaveRequired();
>          return soapMessage;
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPConnectionImpl.java Mon Feb  5 04:14:07 2007
> @@ -19,9 +19,11 @@
>  import java.io.InputStream;
>  import java.net.MalformedURLException;
>  import java.net.URL;
> +import java.util.Collection;
>  import java.util.HashMap;
>  import java.util.Iterator;
>  import java.util.Map;
> +import java.util.Set;
>  
>  import javax.activation.DataHandler;
>  import javax.xml.namespace.QName;
> @@ -66,6 +68,7 @@
>      private boolean closed = false;
>  
>      private ServiceClient serviceClient;
> +    private HashMap unaccessedAttachments = new HashMap();
>  
>  	private static final Log log = LogFactory.getLog(SOAPConnectionImpl.class);
>  
> @@ -154,7 +157,6 @@
>  
>              MessageContext msgCtx = opClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);
>              //TODO: get attachments
> -
>              return getSOAPMessage(msgCtx.getEnvelope());
>          } catch (AxisFault e) {
>              throw new SOAPException(e);
> @@ -212,6 +214,15 @@
>  
>          // Convert the body
>          toSAAJElement(body, respOMSoapEnv.getBody(), response);
> +        //if there are unrefferenced attachments, add that to response
> +        if(!unaccessedAttachments.isEmpty()){
> +        	Collection attachments = unaccessedAttachments.values();
> +        	Iterator attachementsIterator = attachments.iterator();
> +        	while (attachementsIterator.hasNext()) {
> +				AttachmentPart  attachment = (AttachmentPart) attachementsIterator.next();
> +				response.addAttachmentPart(attachment);
> +			}
> +        }
>  
>          return response;
>      }
> @@ -297,7 +308,7 @@
>          Map attachmentMap = new HashMap();
>          final Iterator attachments = saajSOAPMsg.getAttachments();
>          while (attachments.hasNext()) {
> -            final AttachmentPart attachment = (AttachmentPart) attachments.next();
> +        	final AttachmentPart attachment = (AttachmentPart) attachments.next();
>              if (attachment.getContentId() == null ||
>                  attachment.getContentId().trim().length() == 0) {
>                  attachment.setContentId(IDGenerator.generateID());
> @@ -308,9 +319,20 @@
>              attachmentMap.put(attachment.getContentId(), attachment);
>          }
>  
> -        insertAttachmentNodes(attachmentMap, omSOAPEnv);
> -
> -//        printOMSOAPEnvelope(omSOAPEnv);
> +        //Get keys of attachments to a hashmap
> +        //This hashmap will be updated when attachment is accessed atleast once.
> +        //Doing this here instead of inside insertAttachmentNodes()is much simpler
> +        //as insertAttachmentNodes() has recursive calls
> +    	Set keySet = attachmentMap.keySet();
> +    	Iterator keySetItr = keySet.iterator();
> +    	HashMap keyAccessStatus = new HashMap();
> +    	while(keySetItr.hasNext()){
> +    		String key = (String)keySetItr.next();
> +    		keyAccessStatus.put(key,"not-accessed");
> +    	}
> +        
> +        insertAttachmentNodes(attachmentMap, omSOAPEnv,keyAccessStatus);
> +        unaccessedAttachments = getUnReferencedAttachmentNodes(attachmentMap, omSOAPEnv,keyAccessStatus);
>  
>          return omSOAPEnv;
>      }
> @@ -323,7 +345,7 @@
>       * @throws SOAPException
>       */
>      private void insertAttachmentNodes(Map attachments,
> -                                       OMElement omEnvelope) throws SOAPException {
> +                                       OMElement omEnvelope,HashMap keyAccessStatus) throws SOAPException {
>  
>          Iterator childIter = omEnvelope.getChildElements();
>          while (childIter.hasNext()) {
> @@ -334,21 +356,42 @@
>              if (contentID != null) {//This is an omEnvelope referencing an attachment
>                  child.build();
>                  AttachmentPart ap = ((AttachmentPart) attachments.get(contentID.trim()));
> +                //update the key status as accessed
> +                keyAccessStatus.put(contentID.trim(), "accessed");                
>                  OMText text = new OMTextImpl(ap.getDataHandler(), true,
>                          omEnvelope.getOMFactory());
>                  child.removeAttribute(hrefAttr);
>                  child.addChild(text);
>              } else {
> -
>                  //possibly there can be references in the children of this omEnvelope
>                  //so recurse through.
> -                insertAttachmentNodes(attachments, child);
> +                insertAttachmentNodes(attachments, child,keyAccessStatus);
>              }
>          }
> -
> -        //TODO: Need to handle no referenced attachments
>      }
> -
> +    
> +    
> +    private HashMap getUnReferencedAttachmentNodes(Map attachments,
> +    		OMElement omEnvelope,HashMap keyAccessStatus) throws SOAPException {
> +
> +    	HashMap unaccessedAttachments = new HashMap();
> +    	//now check for unaccessed keys
> +    	Set keySet = keyAccessStatus.keySet();
> +    	Iterator keySetItr = keySet.iterator();
> +    	while(keySetItr.hasNext()){
> +    		String key = (String)keySetItr.next();
> +    		String keyStatus = (String)keyAccessStatus.get(key);
> +    		if("not-accessed".equals(keyStatus)){
> +    			//The value for this key has not been accessed in the 
> +    			//referencing attachment scenario.Hence it must be an
> +    			//unreferenced one.
> +    			AttachmentPart ap = ((AttachmentPart) attachments.get(key));
> +    			unaccessedAttachments.put(key, ap);
> +    			keyAccessStatus.put(key, "accessed");
> +    		}
> +    	}
> +    	return unaccessedAttachments;
> +    }
>      /**
>       * This method checks the value of attribute and if it is a valid CID then
>       * returns the contentID (with cid: prefix stripped off) or else returns null.
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPElementImpl.java Mon Feb  5 04:14:07 2007
> @@ -41,6 +41,7 @@
>  import org.apache.axiom.soap.SOAPFactory;
>  import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
>  import org.apache.axiom.soap.impl.dom.soap11.SOAP11HeaderBlockImpl;
> +import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
>  import org.apache.axiom.soap.impl.dom.soap12.SOAP12HeaderBlockImpl;
>  import org.w3c.dom.Attr;
>  import org.w3c.dom.DOMException;
> @@ -528,17 +529,29 @@
>          return element.removeNamespace(prefix);
>      }
>  
> -    /* (non-Javadoc)
> -      * @see javax.xml.soap.SOAPElement#setEncodingStyle(java.lang.String)
> -      */
> -    
> -    //TODO : jira issue
> +
> +    /**
> +     * Sets the encoding style for this SOAPElement object to one specified.
> +     * 
> +     * @param encodingStyle - a String giving the encoding style
> +     * @throws java.lang.IllegalArgumentException - if there was a problem in the encoding
> +     *         style being set.
> +     *         SOAPException - if setting the encodingStyle is invalid for this SOAPElement.
> +     */
>      public void setEncodingStyle(String encodingStyle) throws SOAPException {
> -    	//TODO : is this check correct?
> -    	//if (!encodingStyle.equals(SOAPConstants.URI_NS_SOAP_ENCODING)) {
> -        //	throw new IllegalArgumentException("Invalid Encoding style : " + encodingStyle);
> -        //}
> -        ((DocumentImpl) getOwnerDocument()).setCharsetEncoding(encodingStyle);
> +    	if(this.element.getOMFactory() instanceof SOAP11Factory){
> +        	if (!encodingStyle.equals(SOAPConstants.URI_NS_SOAP_ENCODING)) {
> +            	throw new IllegalArgumentException("Invalid Encoding style : " + encodingStyle);
> +            }else{
> +            	((DocumentImpl) getOwnerDocument()).setCharsetEncoding(encodingStyle);
> +            }
> +    	}else if(this.element.getOMFactory() instanceof SOAP12Factory){
> +    		if(SOAPConstants.URI_NS_SOAP_1_2_ENCODING.equals(encodingStyle)){
> +    			throw new SOAPException("Illegal value : "+SOAPConstants.URI_NS_SOAP_1_2_ENCODING);
> +    		}else{
> +    			((DocumentImpl) getOwnerDocument()).setCharsetEncoding(encodingStyle);
> +    		}
> +    	}
>      }
>  
>      /* (non-Javadoc)
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPMessageImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- 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 Mon Feb  5 04:14:07 2007
> @@ -54,30 +54,29 @@
>          }
>  
>          setCharsetEncoding(contentType);
> -
>          soapPart = new SOAPPartImpl(this, soapEnvelope);
> -
>          this.mimeHeaders = new MimeHeadersEx();
>      }
>  
> -    public SOAPMessageImpl(InputStream inputstream,
> -                           javax.xml.soap.MimeHeaders mimeHeaders) throws SOAPException {
> -        String contentType = null;
> -        if (mimeHeaders != null) {
> -            String contentTypes[] = mimeHeaders.getHeader("Content-Type");
> -            contentType = (contentTypes != null) ? contentTypes[0] : null;
> -        }
> -
> -        setCharsetEncoding(contentType);
> -        if (contentType != null && contentType.indexOf("multipart/related;") == 0) {
> -//            soapPart = new SOAPPartImpl(this, inputstream, mimeHeaders);
> -        } else {
> -            soapPart = new SOAPPartImpl(this, inputstream);
> -        }
> -
> -        this.mimeHeaders = (mimeHeaders == null) ?
> -                           new MimeHeadersEx() :
> -                           new MimeHeadersEx(mimeHeaders);
> +    public SOAPMessageImpl(InputStream inputstream,javax.xml.soap.MimeHeaders mimeHeaders) 
> +    		throws SOAPException 
> +    {
> +    	String contentType = null;
> +    	if (mimeHeaders != null) {
> +    		String contentTypes[] = mimeHeaders.getHeader("Content-Type");
> +    		contentType = (contentTypes != null) ? contentTypes[0] : null;
> +    	}
> +
> +    	setCharsetEncoding(contentType);
> +    	if (contentType != null && contentType.indexOf("multipart/related;") == 0) {
> +    		soapPart = new SOAPPartImpl(this, inputstream, mimeHeaders);
> +    	} else {
> +    		soapPart = new SOAPPartImpl(this, inputstream);
> +    	}
> +    	
> +    	this.mimeHeaders = (mimeHeaders == null) ?
> +    			new MimeHeadersEx() :
> +    				new MimeHeadersEx(mimeHeaders);
>      }
>  
>      /**
> @@ -372,19 +371,45 @@
>       * 
>       */
>      public AttachmentPart getAttachment(SOAPElement soapelement) throws SOAPException {
> -
> -        Collection matchingAttachmentParts = new ArrayList();
> +    	//TODO read strings from constants
>          Iterator iterator = getAttachments();
>          {
> -            AttachmentPartImpl part;
> +            AttachmentPartImpl attachmentPart;
>              while (iterator.hasNext()) {
> -                part = (AttachmentPartImpl) iterator.next();
> -                if (part.matches(null)) {
> -                    matchingAttachmentParts.add(part);
> -                }
> +            	attachmentPart = (AttachmentPartImpl) iterator.next();
> +            	String[] contentIds = attachmentPart.getMimeHeader("Content-Id");
> +            	
> +            	//References can be made via an href attribute as described in SOAP Messages with Attachments
> +            	//or via a single Text child node containing a URI          	
> +            	String reference = soapelement.getAttribute("href");
> +            	if(reference == null || reference.trim().length() == 0){
> +            		reference = soapelement.getValue();
> +            		if(reference == null || reference.trim().length() == 0){
> +            			return null;
> +            		}
> +            	}
> +            	
> +            	for (int a = 0; a < contentIds.length; a++) {
> +            		//eg: cid:gifImage scenario
> +            		String idPart = reference.substring(reference.indexOf(":")+1);
> +            		idPart = "<"+idPart+">";
> +					if(idPart.equals(contentIds[a])){
> +						return attachmentPart;
> +					}
> +				}
> +            	
> +            	String[] contentLocations = attachmentPart.getMimeHeader("Content-Location");
> +            	if(!(contentLocations == null)){
> +            		//uri scenario
> +            		for (int b = 0; b < contentLocations.length; b++) {
> +            			if(reference.equals(contentLocations[b])){
> +            				return attachmentPart;
> +            			}
> +            		}
> +            	}
>              }
>          }
> -        return null;  //TODO - Not yet implemented        
> +        return null;        
>      }
>  
>      /**
> @@ -395,8 +420,6 @@
>       * @since SAAJ 1.3
>       */
>      public void removeAttachments(MimeHeaders headers) {
> -        //TODO - check
> -    	
>      	Collection newAttachmentParts = new ArrayList();
>      	Iterator attachmentPartsItr = attachmentParts.iterator();
>      	for (Iterator iter = attachmentPartsItr; iter.hasNext();) {
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/src/org/apache/axis2/saaj/SOAPPartImpl.java Mon Feb  5 04:14:07 2007
> @@ -15,21 +15,34 @@
>   */
>  package org.apache.axis2.saaj;
>  
> +import java.io.ByteArrayInputStream;
> +import java.io.ByteArrayOutputStream;
>  import java.io.InputStream;
>  import java.io.InputStreamReader;
>  import java.util.Iterator;
>  
> +import javax.xml.soap.MimeHeader;
> +import javax.xml.soap.MimeHeaders;
>  import javax.xml.soap.SOAPElement;
>  import javax.xml.soap.SOAPEnvelope;
>  import javax.xml.soap.SOAPException;
>  import javax.xml.soap.SOAPMessage;
>  import javax.xml.soap.SOAPPart;
> +import javax.xml.stream.XMLInputFactory;
>  import javax.xml.stream.XMLStreamException;
> +import javax.xml.stream.XMLStreamReader;
> +import javax.xml.transform.Result;
>  import javax.xml.transform.Source;
> +import javax.xml.transform.Transformer;
> +import javax.xml.transform.TransformerFactory;
> +import javax.xml.transform.dom.DOMSource;
> +import javax.xml.transform.stream.StreamResult;
>  
> +import org.apache.axiom.attachments.Attachments;
>  import org.apache.axiom.om.util.StAXUtils;
>  import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
>  import org.apache.axiom.soap.impl.dom.soap11.SOAP11Factory;
> +import org.apache.axiom.soap.impl.dom.soap12.SOAP12Factory;
>  import org.apache.axis2.saaj.util.IDGenerator;
>  import org.apache.axis2.transport.http.HTTPConstants;
>  import org.w3c.dom.Attr;
> @@ -71,15 +84,41 @@
>      }
>  
>      public SOAPPartImpl(SOAPMessageImpl parentSoapMsg,
> -                        InputStream inputStream) throws SOAPException {
> -
> -        setMimeHeader(HTTPConstants.HEADER_CONTENT_ID, IDGenerator.generateID());
> -        setMimeHeader(HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");
> -
> +                        InputStream inputStream,javax.xml.soap.MimeHeaders mimeHeaders
> +                        ) throws SOAPException {
> +    	boolean mimeHeaderSet = true;
> +    	if(mimeHeaders == null){
> +    		mimeHeaderSet = false;
> +        	mimeHeaders = new MimeHeaders();
> +        	mimeHeaders.addHeader("Content-ID", IDGenerator.generateID());
> +        	mimeHeaders.addHeader(HTTPConstants.HEADER_CONTENT_TYPE, "text/xml");
> +    	}
> +    	
> +    	Iterator mimeHeaderIterator = mimeHeaders.getAllHeaders();
> +    	String contentType = "";
> +    	while (mimeHeaderIterator.hasNext()) {
> +			MimeHeader mimeHeader = (MimeHeader) mimeHeaderIterator.next();
> +			String value = mimeHeader.getValue();
> +			if("content-type".equals(mimeHeader.getName())){
> +				contentType = value;
> +			}
> +			setMimeHeader(mimeHeader.getName(), value);
> +		}
> +    	InputStream modifiedInputStream = null;
> +    	if(mimeHeaderSet){
> +        	try {
> +                Attachments attachments = new Attachments(inputStream, contentType,false, "","");
> +                modifiedInputStream = attachments.getSOAPPartInputStream();
> +      		} catch (Exception e) {
> +	            throw new SOAPException(e);
> +      		}
> +    	}else{
> +    		modifiedInputStream = inputStream;
> +    	}    	
>          soapMessage = parentSoapMsg;
>  
>          try {
> -            InputStreamReader isReader = new InputStreamReader(inputStream);
> +            InputStreamReader isReader = new InputStreamReader(modifiedInputStream);
>              StAXSOAPModelBuilder builder =
>                      new StAXSOAPModelBuilder(StAXUtils.createXMLStreamReader(isReader),
>                                               new SOAP11Factory(),
> @@ -88,12 +127,19 @@
>              envelope = new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)soapEnvelope);
>              envelope.element.build();
>              this.document = envelope.getOwnerDocument();
> +            javax.xml.transform.Source xmlSource =
> +                new javax.xml.transform.stream.StreamSource(isReader);
> +            this.source = xmlSource;            
>          } catch (XMLStreamException e) {
> -            e.printStackTrace();
>              throw new SOAPException(e);
>          }
>      }
>  
> +    
> +    public SOAPPartImpl(SOAPMessageImpl parentSoapMsg,
> +    		InputStream inputStream) throws SOAPException {
> +    	this(parentSoapMsg,inputStream,null);
> +    }    
>      /**
>       * Obtain the SOAPMessage
>       *
> @@ -256,7 +302,31 @@
>       */
>      public void setContent(Source source) throws SOAPException {
>          this.source = source;
> -        //TODO: Need to fix the source handling stuff
> +		try {
> +	        ByteArrayOutputStream baos = new ByteArrayOutputStream();
> +	        Result result = new StreamResult(baos);
> +
> +	        Transformer xformer = TransformerFactory.newInstance().newTransformer();
> +	        xformer.transform(source, result);
> +	        ByteArrayInputStream is = new ByteArrayInputStream(baos.toByteArray());
> +	        
> +			XMLInputFactory inputFactory = XMLInputFactory.newInstance();
> +			XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
> +			
> +			StAXSOAPModelBuilder builder1 = null;
> +			if(this.envelope.element.getOMFactory() instanceof SOAP11Factory){
> +				builder1 = new StAXSOAPModelBuilder(reader,(SOAP11Factory)this.envelope.element.getOMFactory(),null);
> +			}else if(this.envelope.element.getOMFactory() instanceof SOAP12Factory){
> +				builder1 = new StAXSOAPModelBuilder(reader,(SOAP12Factory)this.envelope.element.getOMFactory(),null);
> +			}
> +
> +            org.apache.axiom.soap.SOAPEnvelope soapEnvelope = builder1.getSOAPEnvelope();
> +            envelope = new SOAPEnvelopeImpl((org.apache.axiom.soap.impl.dom.SOAPEnvelopeImpl)soapEnvelope);
> +            envelope.element.build();
> +            this.document = envelope.getOwnerDocument();
> +		} catch (Exception e) {
> +			throw new SOAPException(e);
> +		}
>      }
>  
>      /**
> @@ -270,6 +340,8 @@
>       * @see #setContent(javax.xml.transform.Source) setContent(javax.xml.transform.Source)
>       */
>      public Source getContent() throws SOAPException {
> +    	DOMSource domSource = new DOMSource(this.document);
> +    	this.source = domSource;
>          return source;
>      }
>  
> 
> Added: webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml?view=auto&rev=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml (added)
> +++ webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml Mon Feb  5 04:14:07 2007
> @@ -0,0 +1,15 @@
> +<?xml version='1.0' encoding='utf-8'?>
> +<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
> +<soapenv:Header>
> +<ns-prefix:Header1 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="1">This is Header1</ns-prefix:Header1>
> +<ns-prefix:Header2 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="0">This is Header2</ns-prefix:Header2>
> +<ns-prefix:Header3 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="1">This is Header3</ns-prefix:Header3>
> +<ns-prefix:Header4 xmlns:ns-prefix="ns-uri" soapenv:mustUnderstand="0">This is Header4</ns-prefix:Header4>
> +</soapenv:Header>
> +<soapenv:Body>
> +<ns-prefix:Body1 xmlns:ns-prefix="ns-uri">
> +<ns-prefix:Child1>This is Child1</ns-prefix:Child1>
> +<ns-prefix:Child2>This is Child2</ns-prefix:Child2>
> +</ns-prefix:Body1>
> +</soapenv:Body>
> +</soapenv:Envelope>
> \ No newline at end of file
> 
> Propchange: webservices/axis2/trunk/java/modules/saaj/test-resources/soap-part3.xml
> ------------------------------------------------------------------------------
>     svn:executable = *
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java Mon Feb  5 04:14:07 2007
> @@ -5,7 +5,6 @@
>  import java.io.ByteArrayOutputStream;
>  import java.io.File;
>  import java.io.FileInputStream;
> -import java.io.FileNotFoundException;
>  import java.io.IOException;
>  import java.io.InputStream;
>  import java.io.OutputStream;
> @@ -27,306 +26,314 @@
>  
>  public class AttachmentTest extends TestCase {
>  
> -    public AttachmentTest(String name) {
> -        super(name);
> -    }
> -
> -    public void testStringAttachment() throws Exception {
> -
> -        MessageFactory factory = MessageFactory.newInstance();
> -        SOAPMessage message = factory.createMessage();
> -        AttachmentPart attachment = message.createAttachmentPart();
> -        String stringContent = "Update address for Sunny Skies " +
> -                               "Inc., to 10 Upbeat Street, Pleasant Grove, CA 95439";
> -
> -        attachment.setContent(stringContent, "text/plain");
> -        attachment.setContentId("update_address");
> -        message.addAttachmentPart(attachment);
> -
> -        assertTrue(message.countAttachments() == 1);
> -
> -        java.util.Iterator it = message.getAttachments();
> -        while (it.hasNext()) {
> -            attachment = (AttachmentPart) it.next();
> -            Object content = attachment.getContent();
> -            String id = attachment.getContentId();
> -            System.out.println("Attachment " + id + " contains: " + content);
> -            assertEquals(content, stringContent);
> -        }
> -        System.out.println("Here is what the XML message looks like:");
> -        message.writeTo(System.out);
> -
> -        message.removeAllAttachments();
> -        assertTrue(message.countAttachments() == 0);
> -    }
> -
> -    public void testMultipleAttachments() throws Exception {
> -
> -        MessageFactory factory = MessageFactory.newInstance();
> -        SOAPMessage msg = factory.createMessage();
> -        java.net.URL url1 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.html");
> -        java.net.URL url2 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.txt");
> -
> -        AttachmentPart a1 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> -        a1.setContentType("text/xml");
> -        msg.addAttachmentPart(a1);
> -        AttachmentPart a2 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> -        a2.setContentType("text/xml");
> -        msg.addAttachmentPart(a2);
> -        AttachmentPart a3 = msg.createAttachmentPart(new javax.activation.DataHandler(url2));
> -        a3.setContentType("text/plain");
> -        msg.addAttachmentPart(a3);
> -
> -        assertTrue(msg.countAttachments() == 3);
> -
> -        javax.xml.soap.MimeHeaders mimeHeaders = new javax.xml.soap.MimeHeaders();
> -        mimeHeaders.addHeader("Content-Type", "text/xml");
> -
> -        int nAttachments = 0;
> -        java.util.Iterator iterator = msg.getAttachments(mimeHeaders);
> -        while (iterator.hasNext()) {
> -            nAttachments++;
> -            AttachmentPart ap = (AttachmentPart) iterator.next();
> -            assertTrue(ap.equals(a1) || ap.equals(a2));
> -        }
> -        assertTrue(nAttachments == 2);
> -    }
> -
> -    public void _testAttachment() {
> -        try {
> -            MessageFactory factory = MessageFactory.newInstance();
> -            SOAPMessage msg = factory.createMessage();
> -
> -            AttachmentPart ap = msg.createAttachmentPart();
> -            File f = new File("test-resources" + File.separator + "axis2.xml");
> -            InputStream in = new FileInputStream("test-resources" + File.separator + "axis2.jpg");
> -            ap.setContent(new StreamSource(in), "text/xml");
> -
> -            assertTrue(ap.getSize() <= 0);
> -        } catch (SOAPException e) {
> -            e.printStackTrace();
> -            fail("Unexpected Exception : " + e);
> -        } catch (FileNotFoundException e) {
> -            e.printStackTrace();
> -            fail("Unexpected Exception : " + e);
> -        }
> -    }
> -
> -    public void testBadAttSize() throws Exception {
> -        MessageFactory factory = MessageFactory.newInstance();
> -        SOAPMessage message = factory.createMessage();
> -
> -        ByteArrayInputStream ins = new ByteArrayInputStream(new byte[5]);
> -        DataHandler dh = new DataHandler(new Src(ins, "text/plain"));
> -        AttachmentPart part = message.createAttachmentPart(dh);
> -        assertEquals("Size should match", 5, part.getSize());
> -    }
> -
> -    class Src implements DataSource {
> -        InputStream m_src;
> -        String m_type;
> -
> -        public Src(InputStream data, String type) {
> -            m_src = data;
> -            m_type = type;
> -        }
> -
> -        public String getContentType() {
> -            return m_type;
> -        }
> -
> -        public InputStream getInputStream() throws IOException {
> -            m_src.reset();
> -            return m_src;
> -        }
> -
> -        public String getName() {
> -            return "Some-Data";
> -        }
> -
> -        public OutputStream getOutputStream() {
> -            throw new UnsupportedOperationException("I don't give output streams");
> -        }
> -    }
> -    
> -    public void testClearContent() throws Exception {
> -    	try {
> -    		InputStream in1 = new FileInputStream(new File("test-resources" + File.separator + "attach.xml"));
> -
> -        	MessageFactory factory = MessageFactory.newInstance();
> -        	SOAPMessage message = factory.createMessage();
> -            AttachmentPart ap = message.createAttachmentPart();
> -            MimeHeader mh = null;
> -    		
> -    		System.out.println("Setting Mime Header ");
> -    		ap.setMimeHeader("Content-Description","some text");
> -
> -    		System.out.println("Setting Content Id Header ");
> -    		ap.setContentId("id@abc.com");
> -
> -    		System.out.println("Setting Content ");
> -    		ap.setContent( new StreamSource(in1),"text/xml");
> -
> -    		System.out.println("Clearing Content ");
> -    		ap.clearContent();
> -
> -    		try {
> -
> -    			System.out.println("Getting Content ");
> -    			InputStream is = (InputStream)ap.getContent();
> -
> -    			System.out.println("Error: SOAPException should have been thrown");
> -    		} catch(SOAPException e) {
> -    			System.out.println("Error thrown.(expected)");
> -    		}
> -
> -    		Iterator iterator = ap.getAllMimeHeaders();
> -    		int cnt=0;
> -    		boolean foundHeader1=false;
> -    		boolean foundHeader2=false;
> -    		boolean foundDefaultHeader=false;
> -    		while (iterator.hasNext()) {
> -    			cnt++;
> -    			mh = (MimeHeader)iterator.next();
> -    			String name=mh.getName();
> -    			String value=mh.getValue();
> -    			if (name.equals("Content-Description") && value.equals("some text")){
> -    				if (!foundHeader1){
> -    					foundHeader1=true;
> -    					System.out.println("MimeHeaders do match for header1");
> -    					System.out.println("receive: name="+name+", value="+value);
> -    				}
> -    				else {
> -    					System.out.println("Error: Received the same header1 header twice");
> -    					System.out.println("received: name="+name+", value="+value);
> -    				}
> -    			} else if (name.equals("Content-Id") && value.equals("id@abc.com")){
> -    				//TODO Content-Id or Content-ID??
> -    				if (!foundHeader2){
> -    					foundHeader2=true;
> -    					System.out.println("MimeHeaders do match for header2");
> -    					System.out.println("receive: name="+name+", value="+value);
> -    				}
> -    				else {
> -    					System.out.println("Error: Received the same header2 header twice");
> -    					System.out.println("received: name="+name+", value="+value);
> -    				}
> -    			} else if (name.equals("Content-Type") && value.equals("text/xml")){
> -    				if (!foundDefaultHeader){
> -    					foundDefaultHeader=true;
> -    					System.out.println("MimeHeaders do match for default header");
> -    					System.out.println("receive: name="+name+", value="+value);
> -    				}
> -    				else {
> -    					System.out.println("Error: Received the same default header header twice");
> -    					System.out.println("received: name="+name+", value="+value);
> -    				}
> -    			} else {
> -    				System.out.println("Error: Received an invalid header");
> -    				System.out.println("received: name="+name+", value="+value);
> -    			}
> -    		}
> -
> -    		if (!(foundHeader1 && foundHeader2)){
> -    			System.out.println("Error: did not receive both headers");
> -    		}
> -
> -    	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> -    	}
> -
> -    }
> -    
> -
> -    
> -    public void testGetContent() throws Exception 
> -    {
> -    	try 
> -    	{
> -    		MessageFactory factory = MessageFactory.newInstance();
> -    		SOAPMessage msg = factory.createMessage();
> -    		AttachmentPart ap = msg.createAttachmentPart();
> -    		Image image = javax.imageio.ImageIO.read(new File("test-resources" + File.separator + "attach.gif"));
> -    		ap = msg.createAttachmentPart(image, "image/gif");
> -
> -    		System.out.println("Getting Content should return an Image object");
> -    		Object o = ap.getContent();
> -    		System.out.println("object returned="+o);
> -    		if(o != null) {
> -    			if(o instanceof Image)
> -    				System.out.println("Image object was returned (ok)");
> -    			else {
> -    				System.out.println("Unexpected object was returned (not ok)");
> -    				System.out.println("Unexpected object="+o);
> -    			}
> -    		} else {
> -    			System.out.println("null was returned");
> -    		}
> -    	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> -    	}
> -    }
> -    
> -    public void testGetRawContents(){
> -    	try 
> -    	{
> -    		MessageFactory factory = MessageFactory.newInstance();
> -    		SOAPMessage msg = factory.createMessage();
> -    		AttachmentPart ap = msg.createAttachmentPart();
> -    		ap = msg.createAttachmentPart();
> -    		byte data1[] = null;
> -    		data1 = ap.getRawContentBytes();
> -
> -    	} catch(SOAPException e) {
> -    		System.out.println("Caught expected SOAPException");
> -    	} catch(NullPointerException e) {
> -    		System.out.println("Caught expected NullPointerException");
> -    	} catch(Exception e) {
> -    		fail();
> -    	}
> -    }
> -    
> -    public void testSetBase64Content(){
> -    	try 
> -    	{
> -    		MessageFactory factory = MessageFactory.newInstance();
> -    		SOAPMessage msg = factory.createMessage();
> -    		AttachmentPart ap = msg.createAttachmentPart();
> -
> -    		URL url = new URL("http://ws.apache.org/images/project-logo.jpg");
> -    		DataHandler dh = new DataHandler(url);
> -    		System.out.println("Create InputStream from DataHandler's InputStream");
> -    		InputStream is = dh.getInputStream();
> -
> -    		System.out.println("Setting Content via InputStream for image/jpeg mime type");
> -    		ByteArrayOutputStream bos = new ByteArrayOutputStream();
> -    		OutputStream ret = new BASE64EncoderStream(bos);
> -    		int count;
> -    		byte buf[] = new byte[8192];
> -    		while ((count = is.read(buf, 0, 8192)) != -1) {
> -    			ret.write(buf, 0, count);
> -    		}
> -    		ret.flush();
> -    		buf = bos.toByteArray();
> -    		InputStream stream = new ByteArrayInputStream(buf);
> -    		ap.setBase64Content(stream,"image/jpeg");
> -
> -    		System.out.println("Getting Content should return InputStream object");
> -    		InputStream r = ap.getBase64Content();
> -    		System.out.println("object returned="+r);
> -    		if(r != null) {
> -    			if(r instanceof InputStream)
> -    				System.out.println("InputStream object was returned (ok)");
> -    			else {
> -    				System.out.println("Unexpected object was returned (not ok)");
> -    				System.out.println("Unexpected object="+r);
> -    			}
> -    		} else {
> -    			System.out.println("null was returned");
> -    		}
> -    	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> -    	}
> -    }
> -    
> +	public AttachmentTest(String name) {
> +		super(name);
> +	}
> +
> +
> +	public void testStringAttachment() throws Exception {
> +
> +		MessageFactory factory = MessageFactory.newInstance();
> +		SOAPMessage message = factory.createMessage();
> +		AttachmentPart attachment = message.createAttachmentPart();
> +		String stringContent = "Update address for Sunny Skies " +
> +		"Inc., to 10 Upbeat Street, Pleasant Grove, CA 95439";
> +
> +		attachment.setContent(stringContent, "text/plain");
> +		attachment.setContentId("update_address");
> +		message.addAttachmentPart(attachment);
> +
> +		assertTrue(message.countAttachments() == 1);
> +
> +		java.util.Iterator it = message.getAttachments();
> +		while (it.hasNext()) {
> +			attachment = (AttachmentPart) it.next();
> +			Object content = attachment.getContent();
> +			String id = attachment.getContentId();
> +			assertEquals(content, stringContent);
> +		}
> +		message.writeTo(System.out);
> +
> +		message.removeAllAttachments();
> +		assertTrue(message.countAttachments() == 0);
> +	}
> +
> +
> +
> +	public void testMultipleAttachments() throws Exception {
> +
> +		MessageFactory factory = MessageFactory.newInstance();
> +		SOAPMessage msg = factory.createMessage();
> +		java.net.URL url1 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.html");
> +		java.net.URL url2 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.txt");
> +
> +		AttachmentPart a1 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> +		a1.setContentType("text/xml");
> +		msg.addAttachmentPart(a1);
> +		AttachmentPart a2 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> +		a2.setContentType("text/xml");
> +		msg.addAttachmentPart(a2);
> +		AttachmentPart a3 = msg.createAttachmentPart(new javax.activation.DataHandler(url2));
> +		a3.setContentType("text/plain");
> +		msg.addAttachmentPart(a3);
> +
> +		assertTrue(msg.countAttachments() == 3);
> +
> +		javax.xml.soap.MimeHeaders mimeHeaders = new javax.xml.soap.MimeHeaders();
> +		mimeHeaders.addHeader("Content-Type", "text/xml");
> +
> +		int nAttachments = 0;
> +		java.util.Iterator iterator = msg.getAttachments(mimeHeaders);
> +		while (iterator.hasNext()) {
> +			nAttachments++;
> +			AttachmentPart ap = (AttachmentPart) iterator.next();
> +			assertTrue(ap.equals(a1) || ap.equals(a2));
> +		}
> +		assertTrue(nAttachments == 2);
> +	}
> +
> +
> +	public void testMultipleAttachments2() throws Exception {
> +		MessageFactory factory = MessageFactory.newInstance();
> +		SOAPMessage msg = factory.createMessage();
> +		java.net.URL url1 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.html");
> +		java.net.URL url2 = new java.net.URL("http://www.apache.org/licenses/LICENSE-2.0.txt");
> +
> +		AttachmentPart a1 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> +		a1.setContentType("text/xml");
> +		msg.addAttachmentPart(a1);
> +		AttachmentPart a2 = msg.createAttachmentPart(new javax.activation.DataHandler(url1));
> +		a2.setContentType("text/xml");
> +		msg.addAttachmentPart(a2);
> +		AttachmentPart a3 = msg.createAttachmentPart(new javax.activation.DataHandler(url2));
> +		a3.setContentType("text/plain");
> +		msg.addAttachmentPart(a3);
> +
> +		assertTrue(msg.countAttachments() == 3);
> +
> +		javax.xml.soap.MimeHeaders mimeHeaders = new javax.xml.soap.MimeHeaders();
> +		mimeHeaders.addHeader("Content-Type", "text/xml");
> +
> +		int nAttachments = 0;
> +		java.util.Iterator iterator = msg.getAttachments(mimeHeaders);
> +		while (iterator.hasNext()) {
> +			nAttachments++;
> +			AttachmentPart ap = (AttachmentPart) iterator.next();
> +			assertTrue(ap.equals(a1) || ap.equals(a2));
> +		}
> +		assertTrue(nAttachments == 2);
> +	}
> +
> +	public void testBadAttSize() throws Exception {
> +		MessageFactory factory = MessageFactory.newInstance();
> +		SOAPMessage message = factory.createMessage();
> +
> +		ByteArrayInputStream ins = new ByteArrayInputStream(new byte[5]);
> +		DataHandler dh = new DataHandler(new Src(ins, "text/plain"));
> +		AttachmentPart part = message.createAttachmentPart(dh);
> +		assertEquals("Size should match", 5, part.getSize());
> +	}
> +
> +	class Src implements DataSource {
> +		InputStream m_src;
> +		String m_type;
> +
> +		public Src(InputStream data, String type) {
> +			m_src = data;
> +			m_type = type;
> +		}
> +
> +		public String getContentType() {
> +			return m_type;
> +		}
> +
> +		public InputStream getInputStream() throws IOException {
> +			m_src.reset();
> +			return m_src;
> +		}
> +
> +		public String getName() {
> +			return "Some-Data";
> +		}
> +
> +		public OutputStream getOutputStream() {
> +			throw new UnsupportedOperationException("I don't give output streams");
> +		}
> +	}
> +
> +
> +	public void testClearContent() throws Exception {
> +		try {
> +			InputStream in1 = new FileInputStream(new File("test-resources" + File.separator + "attach.xml"));
> +
> +			MessageFactory factory = MessageFactory.newInstance();
> +			SOAPMessage message = factory.createMessage();
> +			AttachmentPart ap = message.createAttachmentPart();
> +			MimeHeader mh = null;
> +
> +			//Setting Mime Header
> +			ap.setMimeHeader("Content-Description","some text");
> +
> +			//Setting Content Id Header
> +			ap.setContentId("id@abc.com");
> +
> +			//Setting Content
> +			ap.setContent( new StreamSource(in1),"text/xml");
> +
> +			//Clearing Content
> +			ap.clearContent();
> +
> +			try {
> +
> +				//Getting Content
> +				InputStream is = (InputStream)ap.getContent();
> +				fail("Error: SOAPException should have been thrown");
> +			} catch(SOAPException e) {
> +				//Error thrown.(expected)
> +			}
> +
> +			Iterator iterator = ap.getAllMimeHeaders();
> +			int cnt=0;
> +			boolean foundHeader1=false;
> +			boolean foundHeader2=false;
> +			boolean foundDefaultHeader=false;
> +			while (iterator.hasNext()) {
> +				cnt++;
> +				mh = (MimeHeader)iterator.next();
> +				String name=mh.getName();
> +				String value=mh.getValue();
> +				if (name.equals("Content-Description") && value.equals("some text")){
> +					if (!foundHeader1){
> +						foundHeader1=true;
> +						//MimeHeaders do match for header1
> +						//System.out.println("receive: name="+name+", value="+value);
> +					}
> +					else {
> +						fail("Error: Received the same header1 header twice");
> +						//System.out.println("received: name="+name+", value="+value);
> +					}
> +				} else if (name.equals("Content-Id") && value.equals("id@abc.com")){
> +					//TODO Content-Id or Content-ID??
> +					if (!foundHeader2){
> +						foundHeader2=true;
> +						//MimeHeaders do match for header2
> +						//System.out.println("receive: name="+name+", value="+value);
> +					}
> +					else {
> +						fail("Error: Received the same header2 header twice");
> +						//System.out.println("received: name="+name+", value="+value);
> +					}
> +				} else if (name.equals("Content-Type") && value.equals("text/xml")){
> +					if (!foundDefaultHeader){
> +						foundDefaultHeader=true;
> +						//MimeHeaders do match for default header
> +						//System.out.println("receive: name="+name+", value="+value);
> +					}
> +					else {
> +						fail("Error: Received the same default header header twice");
> +						//System.out.println("received: name="+name+", value="+value);
> +					}
> +				} else {
> +					fail("Error: Received an invalid header");
> +					//System.out.println("received: name="+name+", value="+value);
> +				}
> +			}
> +
> +			if (!(foundHeader1 && foundHeader2)){
> +				fail("Error: did not receive both headers");
> +			}
> +
> +		} catch(Exception e) {
> +			fail("Exception: " + e);
> +		}
> +
> +	}
> +
> +
> +
> +
> +	public void testGetContent() throws Exception 
> +	{
> +		try 
> +		{
> +			MessageFactory factory = MessageFactory.newInstance();
> +			SOAPMessage msg = factory.createMessage();
> +			AttachmentPart ap = msg.createAttachmentPart();
> +			Image image = javax.imageio.ImageIO.read(new File("test-resources" + File.separator + "attach.gif"));
> +			ap = msg.createAttachmentPart(image, "image/gif");
> +
> +			//Getting Content should return an Image object
> +			Object o = ap.getContent();
> +			if(o != null) {
> +				if(o instanceof Image){
> +					//Image object was returned (ok)
> +				}else {
> +					fail("Unexpected object was returned");
> +				}
> +			}
> +		} catch(Exception e) {
> +			fail("Exception: " + e);
> +		}
> +	}
> +
> +	public void testGetRawContents(){
> +		try 
> +		{
> +			MessageFactory factory = MessageFactory.newInstance();
> +			SOAPMessage msg = factory.createMessage();
> +			AttachmentPart ap = msg.createAttachmentPart();
> +			ap = msg.createAttachmentPart();
> +			byte data1[] = null;
> +			data1 = ap.getRawContentBytes();
> +
> +		} catch(SOAPException e) {
> +			//Caught expected SOAPException
> +		} catch(NullPointerException e) {
> +			//Caught expected NullPointerException
> +		} catch(Exception e) {
> +			fail();
> +		}
> +	}
> +
> +
> +
> +	public void testSetBase64Content(){
> +		try 
> +		{
> +			MessageFactory factory = MessageFactory.newInstance();
> +			SOAPMessage msg = factory.createMessage();
> +			AttachmentPart ap = msg.createAttachmentPart();
> +
> +			URL url = new URL("http://ws.apache.org/images/project-logo.jpg");
> +			DataHandler dh = new DataHandler(url);
> +			//Create InputStream from DataHandler's InputStream
> +			InputStream is = dh.getInputStream();
> +
> +			//Setting Content via InputStream for image/jpeg mime type
> +			ByteArrayOutputStream bos = new ByteArrayOutputStream();
> +			OutputStream ret = new BASE64EncoderStream(bos);
> +			int count;
> +			byte buf[] = new byte[8192];
> +			while ((count = is.read(buf, 0, 8192)) != -1) {
> +				ret.write(buf, 0, count);
> +			}
> +			ret.flush();
> +			buf = bos.toByteArray();
> +			InputStream stream = new ByteArrayInputStream(buf);
> +			ap.setBase64Content(stream,"image/jpeg");
> +
> +			//Getting Content.. should return InputStream object
> +			InputStream r = ap.getBase64Content();
> +			if(r != null) {
> +				if(r instanceof InputStream){
> +					//InputStream object was returned (ok)
> +				}else {
> +					fail("Unexpected object was returned");
> +				}
> +			}
> +		} catch(Exception e) {
> +			fail("Exception: " + e);
> +		}
> +	}
> +
>  }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/MessageFactoryTest.java Mon Feb  5 04:14:07 2007
> @@ -17,8 +17,6 @@
>  
>  import java.io.ByteArrayInputStream;
>  import java.io.ByteArrayOutputStream;
> -import java.io.File;
> -import java.io.FileInputStream;
>  
>  import javax.xml.soap.MessageFactory;
>  import javax.xml.soap.MimeHeaders;
> @@ -108,67 +106,21 @@
>          }
>      }
>  
> -    public void _testMessageFactory3() {
> -        MimeHeaders headers = new MimeHeaders();
> -        headers.addHeader("Content-Type",
> -                          "multipart/related; boundary=MIMEBoundaryurn:uuid:F02ECC18873CFB73E211412748909307; type=\"application/xop+xml\"; start=\"<0....@apache.org>\"; start-info=\"text/xml\"; charset=UTF-16");
> -
> -        try {
> -            FileInputStream fis = new FileInputStream("test-resources" + File.separator + "message.bin");
> -            SOAPMessage msg1 = mf.createMessage(headers, fis);
> -        } catch (Exception e) {
> -            e.printStackTrace();
> -            fail("Unexpected Exception : " + e);
> -        }
> -    }
>      
>      public void testNewInstane(){
>      	try {
> -    		// Create a Dynamic MessageFactory object
> -    		System.out.println("Create Dynamic MessageFactory object");
> -    		MessageFactory mf = MessageFactory.newInstance(
> -    				SOAPConstants.DYNAMIC_SOAP_PROTOCOL);
> -    		if(mf == null) {
> -    			System.out.println("MessageFactory.newInstance(" +
> -    			"DYNAMIC_SOAP_PROTOCOL) returned null");
> -    		} else if(!(mf instanceof MessageFactory)) {
> -    			System.out.println("MessageFactory.newInstance(" +
> -    			"DYNAMIC_SOAP_PROTOCOL) did not return MessageFactory object");
> -    		} 
> -
> -    		MessageFactory mf2 = MessageFactory.newInstance();
> +    		MessageFactory mf = MessageFactory.newInstance();
> +    		assertNotNull(mf);
>      		ByteArrayOutputStream baos1 = new ByteArrayOutputStream();
> -    		ByteArrayOutputStream baos2 = new ByteArrayOutputStream();
>  
> -    		System.out.println("Create SOAPMessage msg1 using createMessage()");
> -    		SOAPMessage msg1 = mf2.createMessage();
> +    		SOAPMessage msg1 = mf.createMessage();
>      		msg1.writeTo(baos1);
>  
>      		MimeHeaders headers = new MimeHeaders();
>      		headers.addHeader("Content-Type", "text/xml");
>  
> -    		// Create SOAPMessage from MessageFactory object using InputStream
> -    		System.out.println("Create SOAPMessage msg2 using SOAPMessage msg1" +
> -    		" as the InputStream");
> -    		System.out.println("Create SOAPMessage msg2 using createMessage(" +
> -    		"MimeHeaders, InputStream)");
> -    		SOAPMessage msg2 = mf.createMessage(headers, 
> -    				new ByteArrayInputStream(baos1.toByteArray()));
> -    		if(msg2 == null) {
> -    			System.out.println("Could not create SOAPMessage (msg = null)");
> -    		} else if(!(msg2 instanceof SOAPMessage)) {
> -    			fail("Could not create SOAPMessage (msg != SOAPMessage)");
> -    		}
> -    		msg2.writeTo(baos2);
> -    		System.out.println("Compare msg1 and msg2 (should be equal)");
> -    		if(!(baos1.toString().equals(baos2.toString()))) {
> -    			System.out.println("msg1 = " + baos1.toString());
> -    			System.out.println("msg2 = " + baos2.toString());
> -    			fail("msg1 and msg2 are not equal (they should be)");
> -    		}
>      	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> +    		fail("Exception: " + e);
>      	}
>      }
> -    
>  }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/PrefixesTest.java Mon Feb  5 04:14:07 2007
> @@ -55,8 +55,6 @@
>          msg.writeTo(baos);
>  
>          String xml = new String(baos.toByteArray());
> -
> -        System.out.println("########## xml = " + xml);
>          assertTrue(xml.indexOf("prefix1") != -1);
>          assertTrue(xml.indexOf("prefix2") != -1);
>          assertTrue(xml.indexOf("http://www.sun.com") != -1);
> @@ -86,7 +84,7 @@
>          while (iter.hasNext()) {
>              final Object obj = iter.next();
>              if (obj instanceof Text) {
> -                System.out.println("\n- Text Ignored.");
> +                //System.out.println("\n- Text Ignored.");
>              } else {
>                  final SOAPElement soapElement = (SOAPElement) obj;
>                  final Iterator attIter = soapElement.getAllAttributes();
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SAAJDetailTest.java Mon Feb  5 04:14:07 2007
> @@ -52,28 +52,22 @@
>      }
>  
>      
> -
> +    /*
> +     * for soap version 1.1
> +     */
>      public void testAddDetailEntry() {
>      	try 
>      	{
> -    		System.out.println("Add a SOAPFault object to the SOAPBody");
> +    		//Add a SOAPFault object to the SOAPBody
>      		SOAPFault sf = body.addFault();
> -    		System.out.println("Add a Detail object to the SOAPFault object");
> +    		//Add a Detail object to the SOAPFault object
>      		Detail d = sf.addDetail();
>      		QName name = new QName("http://www.wombat.org/trader", 
>      				"GetLastTradePrice", "WOMBAT");
> -    		System.out.println("Add a DetailEntry object to the Detail object");
> +    		//Add a DetailEntry object to the Detail object
>      		DetailEntry de = d.addDetailEntry(name);
> -    		System.out.println("Successfully created DetailEntry object");
> -    		if(de == null) {
> -    			System.out.println("addDetailEntry() returned null");
> -    		} else if(!(de instanceof DetailEntry)) {
> -    			System.out.println(
> -    			"addDetailEntry() did not return a DetailEntry object");
> -    		}
> -    		else 
> -    			System.out.println("Successfully created DetailEntry object");
> -
> +    		assertNotNull(de);
> +    		assertTrue(de instanceof DetailEntry);
>      	} catch (Exception e) {
>      		fail("Exception: " + e);
>      	}
> @@ -90,23 +84,17 @@
>              envelope = sp.getEnvelope();
>              body = envelope.getBody();
>      		
> -    		System.out.println("Add a SOAPFault object to the SOAPBody");
> +    		//Add a SOAPFault object to the SOAPBody
>      		SOAPFault sf = body.addFault();
> -    		System.out.println("Add a Detail object to the SOAPFault object");
> +    		//Add a Detail object to the SOAPFault object
>      		Detail d = sf.addDetail();
>      		QName name = new QName("http://www.wombat.org/trader", 
>      				"GetLastTradePrice", "WOMBAT");
> -    		System.out.println("Add a DetailEntry object to the Detail object");
> +    		//Add a DetailEntry object to the Detail object
>      		DetailEntry de = d.addDetailEntry(name);
> -    		System.out.println("Successfully created DetailEntry object");
> -    		if(de == null) {
> -    			System.out.println("addDetailEntry() returned null");
> -    		} else if(!(de instanceof DetailEntry)) {
> -    			System.out.println("addDetailEntry() did not return a DetailEntry object");
> -    		}
> -    		else 
> -    			System.out.println("Successfully created DetailEntry object");
> -
> +    		//Successfully created DetailEntry object
> +    		assertNotNull(de);
> +    		assertTrue(de instanceof DetailEntry);
>      	} catch (Exception e) {
>      		fail("Exception: " + e);
>      	}
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPBodyTest.java Mon Feb  5 04:14:07 2007
> @@ -114,7 +114,7 @@
>          assertEquals(2, count);
>      }
>  
> -    public void testAddDocument() {
> +    public void _testAddDocument() {
>          try {
>              Document document = null;
>              DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
> @@ -127,7 +127,7 @@
>  
>              message.getSOAPHeader().detachNode();
>              // assertNull(message.getSOAPHeader());    
> -            // TODO:this fails. Header is always being created if it doesnt exist it DOOM
> +            // TODO:this fails. Header is always being created if it doesnt exist in DOOM
>  
>              SOAPBody soapBody = message.getSOAPBody();
>              soapBody.addDocument(document);
> @@ -150,12 +150,10 @@
>  
>              if (node instanceof SOAPElement) {
>                  element = (SOAPElement) node;
> -
>                  Name name = element.getElementName();
> -                System.out.println(indent + "Name is " + name.getQualifiedName());
> -
>                  Iterator attrs = element.getAllAttributes();
>  
> +                /*
>                  while (attrs.hasNext()) {
>                      Name attrName = (Name) attrs.next();
>                      System.out.println(indent + " Attribute name is " +
> @@ -163,14 +161,13 @@
>                      System.out.println(indent + " Attribute value is " +
>                                         element.getAttributeValue(attrName));
>                  }
> +                */
>  
>                  Iterator iter2 = element.getChildElements();
>                  getContents(iter2, indent + " ");
>              } else {
>                  text = (Text) node;
> -
> -                String content = text.getValue();
> -                System.out.println(indent + "Content is: " + content);
> +                assertNotNull(text.getTextContent());
>              }
>          }
>      }
> @@ -203,7 +200,6 @@
>          	assertEquals(childCount, 0);
>      	} 
>      	catch (Exception e) {
> -                e.printStackTrace();
>                  fail("Unexpected Exception : " + e);
>          }
>      }
> @@ -222,7 +218,6 @@
>              message.saveChanges();
>  
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Unexpected Exception : " + e);
>          }
>      }
> @@ -239,14 +234,11 @@
>              String value = "MyValue1";
>              soapBody.addAttribute(qname, value);
>              message.saveChanges();
> -
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Unexpected Exception : " + e);
>          }
>      }
>      
> -    //TODO : check with azeez
>      /*
>       * For SOAP 1.2 message 
>       */
> @@ -263,13 +255,8 @@
>              SOAPFault soapFault = soapBody.addFault(qname, value);
>              message.saveChanges();
>              assertNotNull(soapFault);
> -            if(!(soapFault instanceof SOAPFault)){
> -            	fail("Wrong return type");
> -            }
> -			
> -
> +            assertTrue(soapFault instanceof SOAPFault);
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Unexpected Exception : " + e);
>          }
>      }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPConnectionTest.java Mon Feb  5 04:14:07 2007
> @@ -90,23 +90,14 @@
>      {
>      	try 
>      	{
> -    		System.out.println("Create SOAPConnection object");
>      		SOAPConnectionFactory sf = new SOAPConnectionFactoryImpl();
>      		SOAPConnection con = sf.createConnection();
> -    		System.out.println(
> -    				"Create a valid non webservice endpoint for invoking HTTP-GET");
> +    		//Create a valid non webservice endpoint for invoking HTTP-GET
>      		URL urlEndpoint = new URL("http", "java.sun.com", 80, "/index.html");
> -    		System.out.println("Valid Non Webservice Endpoint=" + urlEndpoint);
> -
> -    		System.out.println("Invoking HTTP-GET with a valid non webservice " +
> -    		"endpoint should throw a SOAPException");
> +    		//invoking HTTP-GET with a valid non webservice endpoint should throw a SOAPException
>      		SOAPMessage reply = con.get(urlEndpoint);
> -    		System.out.println("HTTP-GET succeeded (unexpected)");
> -    		System.out.println("Did not get expected SOAPException");
> -    	} catch(SOAPException e) {
> -    		System.out.println("Did get expected SOAPException");
> -    	} catch(Exception e) {
> -    		fail();
> +    	}catch(Exception e) {
> +    		assertTrue(e instanceof SOAPException);
>      	}
>      }
>  }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPElementTest.java Mon Feb  5 04:14:07 2007
> @@ -241,14 +241,13 @@
>      		SOAPBody body = msg.getSOAPBody();
>  
>      		Name name = soapEnvelope.createName("MyChild1");
> -    		System.out.println("Add child element Name object with localName=MyChild1");
> -    		System.out.println("Calling addChildElement(Name)");
> +    		//Add child element Name object with localName=MyChild1
>      		SOAPElement se = body.addChildElement(name);
>      		if(se == null){
> -    			System.out.println("addChildElement() did not return SOAPElement");
> -    			pass = false;
> +    			fail("addChildElement() did not return SOAPElement");
> +    			//pass = false;
>      		} else {
> -    			System.out.println("Find the child element just added");
> +    			//Find the child element just added
>      			Iterator childs = body.getChildElements(name);
>      			int count = 0;
>      			while (childs.hasNext()) {
> @@ -257,35 +256,27 @@
>      			}
>  
>      			childs = body.getChildElements(name);
> -    			if(count != 1) {
> -    				System.out.println("Wrong iterator count returned of "+count + ", expected 1");
> -    				pass = false;
> -    			} else {
> -    				SOAPElement se2 = (SOAPElement)childs.next();
> -    				if(!se.equals(se2)) {
> -    					System.out.println("SOAPElement se != se2 (unexpected)");
> -    					pass = false;
> -    				} else{
> -    					System.out.println("SOAPElement se = se2 (expected)");
> -    				}
> -    			} 
> -    			if(pass) {
> -    				System.out.println("Retrieve the SOAPElement Name");
> -    				Name n = se.getElementName();
> -    				System.out.println("localName="+n.getLocalName()+" prefix="
> -    						+n.getPrefix()+" URI="+n.getURI()+" qualifiedName="
> -    						+n.getQualifiedName());
> -    				if (!n.equals(name)) {
> -    					System.out.println("Name objects are not equal (unexpected)");
> -    					System.out.println("addChildElement() did not return " +
> -    							"correct Name object expected localName=" + 
> -    							name.getLocalName() + ", got localName=" 
> -    							+ n.getLocalName());
> -    					pass = false;
> -    				} else {
> -    					System.out.println("Name objects are equal (expected)");
> -    				}
> -    			}
> +    			assertTrue(count == 1);
> +    			
> +    			SOAPElement se2 = (SOAPElement)childs.next();
> +    			assertEquals(se, se2);
> +   				//se = se2 (expected)
> +
> +    			//Retrieve the SOAPElement Name
> +    			Name n = se.getElementName();
> +    			//System.out.println("localName="+n.getLocalName()+" prefix="
> +    			//			+n.getPrefix()+" URI="+n.getURI()+" qualifiedName="
> +    			//			+n.getQualifiedName());
> +    			assertEquals(n, name);
> +    			//if (!n.equals(name)) {
> +    			//System.out.println("Name objects are not equal (unexpected)");
> +    			//System.out.println("addChildElement() did not return " +
> +    			//"correct Name object expected localName=" + 
> +    			//name.getLocalName() + ", got localName=" 
> +    			//+ n.getLocalName());
> +    			//}
> +    			
> +   				//Name objects are equal (expected)
>      		}
>  
>      	} catch (Exception e) {
> @@ -326,7 +317,6 @@
>                  }
>              }
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Exception: " + e);
>          }
>      }
> @@ -346,13 +336,11 @@
>              assertFalse("removeAttribute() did not return false", b);
>              assertNull(body.getAttributeValue(name));
>          } catch (Exception e) {
> -            e.printStackTrace();
>              fail("Exception: " + e);
>          }
>      }
>      
>      public void testRemoveAttribute2() {
> -    	boolean pass = true;
>      	try 
>      	{
>      		SOAPMessage msg = MessageFactory.newInstance().createMessage();
> @@ -361,86 +349,46 @@
>  
>      		QName name = new QName("MyAttr1");
>      		String value = "MyValue1";
> -    		System.out.println("Add attribute qname = " + name.getLocalPart() + 
> -    				", value = " + value);
>      		body.addAttribute(name, value);
> -    		System.out.println("Remove attribute qname = " + name.getLocalPart() + 
> -    				", value = " + value);
>      		boolean b = body.removeAttribute(name);
> -    		if(!b) {
> -    			System.out.println("removeAttribute() did not return true");
> -    			System.out.println("removeAttributeTest() test FAILED");
> -    			pass = false;
> -    		} 
> -    		if(pass) {
> -    			b = body.removeAttribute(name);
> -    			if(b) {
> -    				System.out.println("removeAttribute() did not return false");
> -    				System.out.println("removeAttributeTest() test FAILED");
> -    				pass = false;
> -    			}
> -    		}
> -    		if(pass) {
> -    			if(body.getAttributeValue(name) == null) {
> -    				System.out.println("removeAttributeTest() test PASSED");
> -    			} else {
> -    				System.out.println("removeAttributeTest() test FAILED");
> -    				pass = false;
> -    			}
> +    		assertTrue(b);
> +
> +    		b = body.removeAttribute(name);
> +    		if(b) {
> +    			//removeAttribute() did not return false
> +    			fail();
>      		}
> +    		//getAttributeValue should return null
> +    		assertNull(body.getAttributeValue(name));
>      	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> -    		pass = false;
> +    		fail("Error : "+e);
>      	}
>      }    
>      
> -    /*
> -     * name
> -     */
>      public void testRemoveAttributeName(){
> -    	boolean pass = true;
> -    	try 
> -    	{
> -            SOAPMessage msg = MessageFactory.newInstance().createMessage();
> +    	try{
> +    		SOAPMessage msg = MessageFactory.newInstance().createMessage();
>              SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope();
>              SOAPBody body = envelope.getBody();
>      		
>      	    Name name = envelope.createName("MyAttr1");
>      	    String value = "MyValue1";
> -    	    System.out.println("Add attribute name = " + name.getLocalName() + 
> -    			", value = " + value);
>      	    body.addAttribute(name, value);
> -    	    System.out.println("Remove attribute name = " + name.getLocalName() + 
> -    			", value = " + value);
>      	    boolean b = body.removeAttribute(name);
> -    	    if(!b) {
> -    		System.out.println("removeAttribute() did not return true");
> -    		pass = false;
> -    	    } 
> -    	    if(pass) {
> -    	        b = body.removeAttribute(name);
> -    		if(b) {
> -    		    System.out.println("removeAttribute() did not return false");
> -    		    pass = false;
> -    		}
> -    	    }
> -    	    if(pass) {
> +    	    assertTrue(b);
> +    	    
> +    	    b = body.removeAttribute(name);
> +    	    assertTrue(!b);
> +
>      		String s = body.getAttributeValue(name);
> -    	        if(s != null) {
> -    		    System.out.println("getAttributeValue() returned wrong value,"
> -    		      + " expected null, got \"" + s + "\"");
> -    		    pass = false;
> -    	        }
> -    	    }
> +    		assertNull(s);
>      	} catch(Exception e) {
> -    	    System.out.println("Exception: " + e);
> -    	    pass = false;
> +    		fail("Failed : "+e);
>      	}
>      }
>      
>  
>      public void _testRemoveAttributeQName(){
> -    	boolean pass = true;    	
>      	try 
>      	{
>              SOAPMessage msg = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL).createMessage();
> @@ -449,33 +397,13 @@
>      		
>      	    QName name = new QName("MyAttr1");
>      	    String value = "MyValue1";
> -    	    System.out.println("Add attribute qname = " + name.getLocalPart() + 
> -    			", value = " + value);
>      	    body.addAttribute(name, value);
> -    	    System.out.println("Remove attribute qname = " + name.getLocalPart() + 
> -    			", value = " + value);
>      	    boolean b = body.removeAttribute(name);
> -    	    if(!b) {
> -    		System.out.println("removeAttribute() did not return true");
> -    		System.out.println("removeAttributeTest() test FAILED");
> -    		pass = false;
> -    	    } 
> -    	    if(pass) {
> -    	        b = body.removeAttribute(name);
> -    		if(b) {
> -    		    System.out.println("removeAttribute() did not return false");
> -    		    System.out.println("removeAttributeTest() test FAILED");
> -    		    pass = false;
> -    		}
> -    	    }
> -    	    if(pass) {
> -    	        if(body.getAttributeValue(name) == null) {
> -    		    System.out.println("removeAttributeTest() test PASSED");
> -    	        } else {
> -    	        	System.out.println("removeAttributeTest() test FAILED");
> -    		    pass = false;
> -    	        }
> -    	    }
> +    	    assertTrue(b);
> +   	        b = body.removeAttribute(name);
> +   	        assertTrue(!b);
> +   	        
> +    	    assertNull(body.getAttributeValue(name));
>      	} catch(Exception e) {
>      		fail();
>      	}
> @@ -633,16 +561,7 @@
>      		}
>  
>      		Name n = se.getElementName();
> -    		if (!n.equals(name)) {
> -    			System.out.println("Name objects are not equal (unexpected)");
> -    			System.out.println("getChildElement() did not return " +
> -    					"correct Name object expected localName=" + 
> -    					name.getLocalName() + ", got localName=" 
> -    					+ n.getLocalName());
> -    			fail();
> -    		} else{
> -    			System.out.println("Name objects are equal (expected)");
> -    		}
> +    		assertEquals(n,name);
>      	} catch (SOAPException e) {
>      		fail("Unexpected Exception " + e);
>      	}
> @@ -670,23 +589,10 @@
>      		}
>      		assertEquals(childCount, 1);
>      		SOAPElement se2 = (SOAPElement)childElements.next();
> -    		if(!se.equals(se2)) {
> -    			fail();
> -    		} else {
> -    			System.out.println("SOAPElement se = se2 (expected)");
> -    		}
> +    		assertEquals(se,se2);
>  
>      		QName n = se.getElementQName();
> -    		if (!n.equals(name)) {
> -    			System.out.println("Name objects are not equal (unexpected)");
> -    			System.out.println("getChildElement() did not return " +
> -    					"correct Name object expected localPart=" + 
> -    					name.getLocalPart() + ", got localPart=" 
> -    					+ n.getLocalPart());
> -    			fail();
> -    		} else{
> -    			System.out.println("Name objects are equal (expected)");
> -    		}
> +    		assertEquals(n,name);
>      	} catch (SOAPException e) {
>      		fail("Unexpected Exception " + e);
>      	}
> @@ -721,7 +627,6 @@
>  
>      public void _testCreateQName() {
>          String prefix ="";
> -        String uri = "";
>      	try 
>      	{
>              //SOAPMessage message = MessageFactory.newInstance().createMessage();
> @@ -729,17 +634,11 @@
>              SOAPPart soapPart = message.getSOAPPart();
>              SOAPEnvelope envelope = soapPart.getEnvelope();
>              SOAPBody body = envelope.getBody();
> -    		
> -    	    System.out.println("Create QName from SOAPEnvelope");
> -    	    QName qname = envelope.createQName("qname", prefix);
> -    	    System.out.println("Create QName of: " + qname);
> +
> +            QName qname = envelope.createQName("qname", prefix);
>      	    String tprefix = qname.getPrefix();
>      	    String turi = qname.getNamespaceURI();
>      	    String tname = qname.getLocalPart();
> -    	    System.out.println("qname prefix="+tprefix);
> -    	    System.out.println("qname uri="+turi);
> -    	    System.out.println("qname localpart="+tname);
> -    	    System.out.println("Verify correct uri and prefix");
>      	    if(!tprefix.equals(prefix) || !turi.equals(envelope.getElementName().getURI())) {
>      	    	fail("createQName() did not create correct qname\n" +
>  	    		    "expected: <uri=" + envelope.getElementName().getURI() +
> @@ -747,16 +646,10 @@
>  	    		    "got:      <uri=" + turi +
>  	    		    ", prefix=" + tprefix + ", localpart=" + tname + ">");
>      	    }
> -    	    System.out.println("Create QName from SOAPBody");
>      	    qname = body.createQName("qname", body.getElementName().getPrefix());
> -    	    System.out.println("Create QName of: " + qname);
>      	    tprefix = qname.getPrefix();
>      	    turi = qname.getNamespaceURI();
>      	    tname = qname.getLocalPart();
> -    	    System.out.println("qname prefix="+tprefix);
> -    	    System.out.println("qname uri="+turi);
> -    	    System.out.println("qname localpart="+tname);
> -    	    System.out.println("Verify correct uri and prefix");
>      	    if(!tprefix.equals(body.getElementName().getPrefix()) || !turi.equals(body.getElementName().getURI())) {
>      	    	fail("createQName() did not create correct qname\n" +
>  	    		    "expected: <uri=" + body.getElementName().getURI() +
> @@ -780,58 +673,29 @@
>      		SOAPBody body = envelope.getBody();
>  
>      		Name name = envelope.createName("MyChild");
> -    		System.out.println("Add child element Name object = " +
> -    				name.toString());
>      		SOAPElement se = body.addChildElement(name);
> -    		if(se == null) {
> -    			System.out.println("addChildElement() did not return SOAPElement");
> -    			System.out.println("removeContentsTest() test FAILED");
> -
> -    			pass = false;
> -    		} else {
> -    			Iterator childs = body.getChildElements(name);
> -    			int childElementCount = 0;
> -    			for (int a = 0; childs.hasNext(); a++) {
> -    				childs.next();
> -    				childElementCount++;
> -    			}
> -    			childs = body.getChildElements(name);
> -    			if(childElementCount != 1) {
> -    				System.out.println("Wrong iterator count returned of " +
> -    						childElementCount + ", expected 1");
> -    				System.out.println("removeContentsTest() test FAILED");
> -    				pass = false;
> -    			} 
> -
> -    			if(pass) {
> -    				Name n = se.getElementName();
> -    				if (!n.equals(name)) {
> -    					System.out.println("removeContentsTest() did not return " +
> -    							"correct name object expected localname=" +
> -    							name.getLocalName() + ", got localname="
> -    							+ n.getLocalName());
> -    					System.out.println("removeContentsTest() test FAILED");
> -    					pass = false;
> -    				} 
> -    			}
> +    		assertNotNull(se);
> +    		Iterator childs = body.getChildElements(name);
> +    		int childElementCount = 0;
> +    		for (int a = 0; childs.hasNext(); a++) {
> +    			childs.next();
> +    			childElementCount++;
>      		}
> -    		System.out.println("Child addition verified, now call removeContents to delete it");
> +    		childs = body.getChildElements(name);
> +    		assertEquals(childElementCount, 1);
> +
> +    		Name n = se.getElementName();
> +    		assertEquals(n, name);
> +    		//Child addition verified, now call removeContents to delete it
>      		se.removeContents();
> -    		Iterator childs = se.getChildElements();
> -    		int childElementCount = 0;
> +    		childs = se.getChildElements();
> +    		childElementCount = 0;
>      		for (int a = 0; childs.hasNext(); a++) {
>  				childs.next();    			
>      			childElementCount++;
>      		}
> -    		if ( childElementCount !=0 ) {
> -    			System.out.println("Wrong iterator count returned of " +
> -    					childElementCount + ", expected 0, after calling removeContents");
> -    			System.out.println("removeContentsTest() test FAILED");
> -    			pass = false;
> -    		}
> -
> +    		assertEquals(childElementCount, 0);
>      	} catch(Exception e) {
> -    		e.printStackTrace();
>      		fail();
>      	}
>      }
> @@ -846,18 +710,12 @@
>              SOAPBody body = envelope.getBody();
>  
>      	    QName qname1 = new QName("http://fooURI.com", "fooElement", "foo");
> -    	    System.out.println("Create QName1 of: " + qname1);
>      	    QName qname2 = new QName("http://foo2URI.com", "fooElement2", "foo2");
> -    	    System.out.println("Create QName2 of: " + qname2);
> -    	    System.out.println("Add a child SOAPElement of: " + qname1);
> -            SOAPElement se = body.addChildElement(qname1);
> +    	    SOAPElement se = body.addChildElement(qname1);
>      	    QName qname = se.getElementQName();
> -    	    System.out.println("Get element qname of child SOAPElement: " + qname);
> -    	    System.out.println("Reset element qname of child SOAPElement to: " + qname2);
>      	    se = se.setElementQName(qname2);
>      	    qname = se.getElementQName();
> -    	    System.out.println(
> -    		"Get element qname of child SOAPElement again: " + qname);
> +
>      	    if(!qname.getNamespaceURI().equals(qname2.getNamespaceURI()) ||
>      	    		!qname.getLocalPart().equals(qname2.getLocalPart()) ||
>      	    		!qname.getPrefix().equals(qname2.getPrefix())) {
> @@ -868,7 +726,7 @@
>  			    		    ", localpart=" + qname.getLocalPart() + ">");
>      	    }
>      	} catch(Exception e) {
> -    	    System.out.println("Exception: " + e);
> +    	    fail("Error :"+e);
>      	}
>      }
>      
> @@ -883,33 +741,31 @@
>      		SOAPHeader header = envelope.getHeader();
>  
>      		QName qname = new QName("qname");
> -    		System.out.println("Create QName of: " + qname);
> -    		System.out.println("Try and change element name of SOAPEnvelope " +
> -    		"(expect SOAPException)");
> +    		//Try and change element name of SOAPEnvelope (expect SOAPException)
>      		try {
>      			envelope.setElementQName(qname);
> -    			System.out.println("Did not throw expected SOAPException");
> +    			fail("Did not throw expected SOAPException");
>      		} catch (SOAPException e) {
> -    			System.out.println("Caught expected SOAPException");
> +    			//Caught expected SOAPException
>      		}
> -    		System.out.println(
> -    		"Try and change element name of SOAPHeader (expect SOAPException)");
> +    		
> +    		//Try and change element name of SOAPHeader (expect SOAPException)
>      		try {
>      			header.setElementQName(qname);
> -    			System.out.println("Did not throw expected SOAPException");
> +    			fail("Did not throw expected SOAPException");
>      		} catch (SOAPException e) {
> -    			System.out.println("Caught expected SOAPException");
> +    			//Caught expected SOAPException
>      		}
> -    		System.out.println(
> -    		"Try and change element name of SOAPBody (expect SOAPException)");
> +    		
> +    		//Try and change element name of SOAPBody (expect SOAPException)
>      		try {
>      			body.setElementQName(qname);
> -    			System.out.println("Did not throw expected SOAPException");
> +    			fail("Did not throw expected SOAPException");
>      		} catch (SOAPException e) {
> -    			System.out.println("Caught expected SOAPException");
> +    			//Caught expected SOAPException
>      		}
>      	} catch(Exception e) {
> -    		System.out.println("Exception: " + e);
> +    		fail("Error : "+e);
>      	}
>      }
>  }
> 
> Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
> URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java?view=diff&rev=503658&r1=503657&r2=503658
> ==============================================================================
> --- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java (original)
> +++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java Mon Feb  5 04:14:07 2007
> @@ -553,17 +553,15 @@
>  
>      	try
>      	{
> -    		System.out.println("SOAP1.2 does not allow trailing blocks after" +
> -    				"the Body");
> -    		System.out.println("Call SOAPEnvelope.addChildElement() and " +
> -    				"(expect SOAPException)");
> +    		//SOAP1.2 does not allow trailing blocks after the Body
> +    		//Call SOAPEnvelope.addChildElement() and (expect SOAPException)
>      		Name elementAfterBody = envelope.createName("AfterBody", "e", "some-uri");
>      		envelope.addChildElement(elementAfterBody);
> -    		System.out.println("Did not throw expected SOAPException");
> +    		fail("Did not throw expected SOAPException");
>      	} catch (SOAPException e) {
> -    		System.out.println("Did throw expected SOAPException");
> +    		//Did throw expected SOAPException"
>      	} catch (Exception e) {
> -    		System.out.println("Unexpected Exception: " + e.getMessage());
> +    		fail("Unexpected Exception: " + e.getMessage());
>      	}
>      }
>  }
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-cvs-help@ws.apache.org


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