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 th...@apache.org on 2005/07/03 14:38:19 UTC

svn commit: r208916 - in /webservices/axis/trunk/java/modules/xml: src/org/apache/axis2/attachments/ src/org/apache/axis2/om/ src/org/apache/axis2/om/impl/llom/ src/org/apache/axis2/om/impl/llom/mtom/ test/org/apache/axis2/attachments/

Author: thilina
Date: Sun Jul  3 05:38:18 2005
New Revision: 208916

URL: http://svn.apache.org/viewcvs?rev=208916&view=rev
Log:
Some changes 

Modified:
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/MIMEHelper.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/MIMEOutputUtils.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/mtom/MTOMStAXSOAPModelBuilder.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/attachments/ImageSampleTest.java

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/MIMEHelper.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/MIMEHelper.java?rev=208916&r1=208915&r2=208916&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/MIMEHelper.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/attachments/MIMEHelper.java Sun Jul  3 05:38:18 2005
@@ -84,6 +84,8 @@
 	 * <code>partIndex</code>- Number of Mime parts parsed
 	 */
 	int partIndex = 0;
+	
+	String firstPartId=null;
 
 	boolean fileCacheEnable = false;
 
@@ -172,10 +174,21 @@
 	 */
 	public InputStream getSOAPPartInputStream() throws OMException {
 		String rootContentID = contentType.getParameter("start");
+		// to handle the Start parameter not mentioned situation
+		if (rootContentID==null)
+		{
+			if (partIndex==0)
+			{
+			getNextPart();
+			}
+			rootContentID=firstPartId;			
+		}
+		else
+		{
 		rootContentID.trim();
 		rootContentID = rootContentID
 				.substring(1, (rootContentID.length() - 1));
-
+		}
 		DataHandler dh;
 		try {
 			dh = getDataHandler(rootContentID);
@@ -246,20 +259,9 @@
 	private MimeBodyPart getMimeBodyPart() throws OMException {
 		MimeBodyPart mimeBodyPart = null;
 
-		//String Line = pushbackInStream.readLine();
 		MimeBodyPartInputStream partStream;
-//		try {
-			//if (pushbackInStream.available() > 0) {
 				partStream = new MimeBodyPartInputStream(pushbackInStream,
 						boundary);
-			//} else {
-			//	throw new OMException(
-			//			"Attachment not found. End of Stream reached");
-			//}
-//		} catch (IOException e1) {
-//			throw new OMException("Attachement not found. Problem with Stream");
-//		}
-
 		try {
 			mimeBodyPart = new MimeBodyPart(partStream);
 		} catch (MessagingException e) {
@@ -295,6 +297,16 @@
 			String partContentID;
 			try {
 				partContentID = nextMimeBodyPart.getContentID();
+				if (partContentID==null & partIndex==1)
+				{
+					bodyPartsMap.put("firstPart", nextMimeBodyPart);
+					firstPartId = "firstPart";
+					return nextMimeBodyPart;
+				}
+				else  if (partIndex==1)
+				{
+					firstPartId = partContentID;
+				}
 				if (fileCacheEnable)
 				{
 					PartOnFile part = new PartOnFile(nextMimeBodyPart,partContentID,attachmentRepoDir);

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/MIMEOutputUtils.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/MIMEOutputUtils.java?rev=208916&r1=208915&r2=208916&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/MIMEOutputUtils.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/MIMEOutputUtils.java Sun Jul  3 05:38:18 2005
@@ -32,7 +32,7 @@
 	
 	private static byte[] CRLF = { 13, 10 };
 	
-	static String SOAP_PART_CONTENT_ID = "<SOAPPart>";
+	static String SOAP_PART_CONTENT_ID = "<http://apache.org/soappart>";
 	
 	public static void complete(OutputStream outStream,
 			OutputStream bufferedSoapOutStream, LinkedList binaryNodeList,
@@ -44,7 +44,10 @@
 			"text/xml");
 			MimeBodyPart rootMimeBodyPart = new MimeBodyPart();
 			rootMimeBodyPart.setDataHandler(dh);
-			rootMimeBodyPart.addHeader("Content-Type", "application/xop+xml");
+			ContentType partContentType = new ContentType("application/xop+xml");
+			partContentType.setParameter("charset","UTF-8");
+			partContentType.setParameter("type","application/soap+xml");
+			rootMimeBodyPart.addHeader("Content-Type",partContentType.toString() );
 			rootMimeBodyPart.addHeader("Content-Transfer-Encoding", "8bit");
 			rootMimeBodyPart.addHeader("Content-ID", SOAP_PART_CONTENT_ID);
 			
@@ -58,10 +61,9 @@
 			}
 			finishWritingMime(outStream);
 		} catch (IOException e) {
-			throw new OMException("Problem with the OutputStream."
-					+ e.toString());
+			throw new OMException("Problem with the OutputStream.",e);
 		} catch (MessagingException e) {
-			throw new OMException("Problem writing Mime Parts." + e.toString());
+			throw new OMException("Problem writing Mime Parts." ,e);
 		}
 	}
 	
@@ -130,7 +132,7 @@
 		contentType.setParameter("type", "application/xop+xml");
 		//TODO theres something called action that can be set with
 		// following. May be SOAPAction. Better check.
-		contentType.setParameter("startinfo", "application/xop+xml");
+		contentType.setParameter("start-info", "application/soap+xml");
 		return contentType.toString();
 	}
 	

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java?rev=208916&r1=208915&r2=208916&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMTextImpl.java Sun Jul  3 05:38:18 2005
@@ -351,7 +351,7 @@
 	{
 //		 We can use a UUID, taken using Apache commons id project.
 		// TODO change to UUID
-		this.contentID = String.valueOf(rnd.nextLong());
+		this.contentID = "2"+String.valueOf(rnd.nextLong())+"@schemas.xmlsoap.org";
 	}
 
 

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/mtom/MTOMStAXSOAPModelBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/mtom/MTOMStAXSOAPModelBuilder.java?rev=208916&r1=208915&r2=208916&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/mtom/MTOMStAXSOAPModelBuilder.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/mtom/MTOMStAXSOAPModelBuilder.java Sun Jul  3 05:38:18 2005
@@ -94,15 +94,18 @@
 				"Href attribute not found in XOP:Include element");
 			}
 			
-			if (lastNode.isComplete()) {
-				node = new OMTextImpl(contentID, (OMElement) lastNode.getParent(), this);
-				lastNode.setNextSibling(node);
-				node.setPreviousSibling(lastNode);
-			} else {
+			// This cannot happen. XOP:Include is always the only child of an parent element
+			// cause it is same as having some text
+//			if (lastNode.isComplete()) {
+//				node = new OMTextImpl(contentID, (OMElement) lastNode.getParent(), this);
+//				lastNode.setNextSibling(node);
+//				node.setPreviousSibling(lastNode);
+			//} else {
 				OMElement e = (OMElement) lastNode;
 				node = new OMTextImpl(contentID, (OMElement) lastNode, this);
 				e.setFirstChild(node);
-			}
+				node.setComplete(true);
+			//}
 			return node;
 			
 		} else {

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/attachments/ImageSampleTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/attachments/ImageSampleTest.java?rev=208916&r1=208915&r2=208916&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/attachments/ImageSampleTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/attachments/ImageSampleTest.java Sun Jul  3 05:38:18 2005
@@ -16,6 +16,18 @@
  */
 package org.apache.axis2.attachments;
 
+import java.awt.Image;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import javax.activation.DataHandler;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamReader;
+
 import org.apache.axis2.om.AbstractTestCase;
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.OMOutput;
@@ -25,12 +37,6 @@
 import org.apache.axis2.om.impl.llom.OMTextImpl;
 import org.apache.axis2.om.impl.llom.mtom.MTOMStAXSOAPModelBuilder;
 
-import javax.activation.DataHandler;
-import javax.xml.stream.XMLInputFactory;
-import javax.xml.stream.XMLStreamReader;
-import java.awt.*;
-import java.io.*;
-
 /**
  * @author <a href="mailto:thilina@opensource.lk">Thilina Gunarathne </a>
  */
@@ -67,7 +73,14 @@
 	String contentTypeString = "multipart/Related; type=\"application/xop+xml\";start=\"<SOAPPart>\"; boundary=\"----=_AxIs2_Def_boundary_=42214532\"";
 	
 	
-
+	/*
+	 * @see TestCase#setUp()
+	 */
+	protected void setUp() throws Exception {
+		super.setUp();
+		
+	}
+	
 	public void testImageSampleSerialize() throws Exception {
 		
 		outMTOMFile = getTestResourceFile(outFileName);
@@ -113,15 +126,8 @@
 						.getSOAPPartInputStream())));
 		builder = new MTOMStAXSOAPModelBuilder(reader, mimeHelper);
 		OMElement root = (OMElement) builder.getDocumentElement();
-		// System.out.println(root.getLocalName() + " : "
-		//        + root.getNamespaceName());
 		OMElement body = (OMElement) root.getFirstChild();
-		// System.out.println(body.getLocalName() + " : "
-		//         + body.getNamespaceName());
 		OMElement data = (OMElement) body.getFirstChild();
-		// System.out.println(data.getLocalName() + " : "
-		//         + data.getNamespaceName());
-		
 		OMText blob = (OMText) data.getFirstChild();
 		/*
 		 * Following is the procedure the user has to follow to read objects in
@@ -137,9 +143,7 @@
 		FileOutputStream imageOutStream = new FileOutputStream(
 				getTestResourceFile(imageOutFileName));
 		new JDK13IO().saveImage("image/jpeg", actualObject, imageOutStream);
-		
-		System.out.println(data.getLocalName() + ":-\t" + actualObject);
-		
+	
 	}
 	
 }