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