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/06/28 19:39:07 UTC

svn commit: r202251 - in /webservices/axis/trunk/java/modules: core/ core/src/org/apache/axis/engine/ core/src/org/apache/axis/transport/ saaj/ saaj/src/org/apache/axis/saaj/ samples/ samples/src/sample/amazon/search/ samples/src/userguide/clients/ sam...

Author: thilina
Date: Tue Jun 28 10:39:04 2005
New Revision: 202251

URL: http://svn.apache.org/viewcvs?rev=202251&view=rev
Log:
Moved OMOutput to org.apache.axis.om
Introduce a new flag optimised to OMText


Added:
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawMTOMTest.java
Modified:
    webservices/axis/trunk/java/modules/core/project.xml
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java
    webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java
    webservices/axis/trunk/java/modules/saaj/project.xml
    webservices/axis/trunk/java/modules/saaj/src/org/apache/axis/saaj/SOAPMessageImpl.java
    webservices/axis/trunk/java/modules/samples/project.xml
    webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/AsynchronousClient.java
    webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/ClientCallbackHandler.java
    webservices/axis/trunk/java/modules/samples/src/userguide/clients/ClientForWebServiceWithModule.java
    webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingClient.java
    webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingDualClient.java
    webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingClient.java
    webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingDualClient.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/Echo.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLChunckedTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsSyncTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/HandlerFailureTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SOAPversionTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailRequestResponseRawXMLTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/rest/RESTBasedEchoRawXMLTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPEchoRawXMLTest.java
    webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPTwoChannelEchoRawXMLTest.java
    webservices/axis/trunk/java/modules/xml/project.xml
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMNode.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMSerializer.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMText.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMNodeImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMSerializerUtil.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMTextImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamWriterToContentHandlerConverter.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultCodeImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultDetailImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultReasonImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultRoleImpl.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis/attachments/ImageSampleTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/OMNavigatorTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/SOAPFaultTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/llom/OMOutputTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/ElementSerializerTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/NoNamespaceSerializerTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/OMSerializerTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/streamwrapper/OmStAXBuilderTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis/soap/impl/llom/soap11/SOAP11SerializerTest.java

Modified: webservices/axis/trunk/java/modules/core/project.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/project.xml?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/project.xml (original)
+++ webservices/axis/trunk/java/modules/core/project.xml Tue Jun 28 10:39:04 2005
@@ -106,18 +106,18 @@
                <module>true</module>
            </properties>
        </dependency>
-	 <dependency>
-            <groupId>geronimo-spec</groupId>
-            <artifactId>geronimo-spec-javamail</artifactId>
-            <version>1.3.1-rc3</version>
-            <properties>
-                <module>true</module>
-            </properties>
-        </dependency>
         <dependency>
             <groupId>axis</groupId>
             <artifactId>axis-wsdl4j</artifactId>
             <version>1.2</version>
+            <properties>
+                <module>true</module>
+            </properties>
+        </dependency>
+         <dependency>
+            <groupId>geronimo-spec</groupId>
+            <artifactId>geronimo-spec-javamail</artifactId>
+            <version>1.3.1-rc3</version>
             <properties>
                 <module>true</module>
             </properties>

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/engine/AxisEngine.java Tue Jun 28 10:39:04 2005
@@ -21,7 +21,7 @@
 import org.apache.axis.description.OperationDescription;
 import org.apache.axis.description.TransportOutDescription;
 import org.apache.axis.om.OMAbstractFactory;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPBody;
 import org.apache.axis.soap.SOAPEnvelope;
 import org.apache.axis.soap.impl.llom.SOAPProcessingException;

Modified: webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java (original)
+++ webservices/axis/trunk/java/modules/core/src/org/apache/axis/transport/AbstractTransportSender.java Tue Jun 28 10:39:04 2005
@@ -30,7 +30,7 @@
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.handlers.AbstractHandler;
 import org.apache.axis.om.OMElement;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPEnvelope;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;

Modified: webservices/axis/trunk/java/modules/saaj/project.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/saaj/project.xml?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/saaj/project.xml (original)
+++ webservices/axis/trunk/java/modules/saaj/project.xml Tue Jun 28 10:39:04 2005
@@ -132,14 +132,6 @@
 	           <module>true</module>
 	    </properties>
         </dependency>
-         <dependency>
-            <groupId>geronimo-spec</groupId>
-            <artifactId>geronimo-spec-javamail</artifactId>
-            <version>1.3.1-rc3</version>
-            <properties>
-                <module>true</module>
-            </properties>
-        </dependency>
         <dependency>
 	     <groupId>log4j</groupId>
 	     <artifactId>log4j</artifactId>

Modified: webservices/axis/trunk/java/modules/saaj/src/org/apache/axis/saaj/SOAPMessageImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/saaj/src/org/apache/axis/saaj/SOAPMessageImpl.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/saaj/src/org/apache/axis/saaj/SOAPMessageImpl.java (original)
+++ webservices/axis/trunk/java/modules/saaj/src/org/apache/axis/saaj/SOAPMessageImpl.java Tue Jun 28 10:39:04 2005
@@ -28,7 +28,7 @@
 import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.transport.http.HTTPConstants;
 
 /**

Modified: webservices/axis/trunk/java/modules/samples/project.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/project.xml?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/project.xml (original)
+++ webservices/axis/trunk/java/modules/samples/project.xml Tue Jun 28 10:39:04 2005
@@ -101,14 +101,7 @@
                <module>true</module>
            </properties>
        </dependency>
-	 <dependency>
-            <groupId>geronimo-spec</groupId>
-            <artifactId>geronimo-spec-javamail</artifactId>
-            <version>1.3.1-rc3</version>
-            <properties>
-                <module>true</module>
-            </properties>
-        </dependency>
+	 
         <dependency>
             <groupId>geronimo-spec</groupId>
             <artifactId>geronimo-spec-activation</artifactId>
@@ -135,6 +128,7 @@
 		<exclude>**/*MailOneWayRawXMLTest.java</exclude> 
 		<exclude>**/*MailRequestResponseRawXMLTest.java</exclude> 
 		<exclude>**/*EchoRawXMLChunckedTest.java</exclude> 
+		<exclude>**/*EchoRawMTOMTest.java</exclude> 
       </excludes>
      <includes>
         <include>**/*Test.java</include>

Modified: webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/AsynchronousClient.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/AsynchronousClient.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/AsynchronousClient.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/AsynchronousClient.java Tue Jun 28 10:39:04 2005
@@ -29,7 +29,7 @@
 import org.apache.axis.addressing.EndpointReference;
 import org.apache.axis.clientapi.Call;
 import org.apache.axis.engine.AxisFault;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLOutputFactory;

Modified: webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/ClientCallbackHandler.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/ClientCallbackHandler.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/ClientCallbackHandler.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/sample/amazon/search/ClientCallbackHandler.java Tue Jun 28 10:39:04 2005
@@ -20,7 +20,7 @@
 import org.apache.axis.clientapi.Callback;
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMNode;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPEnvelope;
 
 import javax.xml.stream.FactoryConfigurationError;

Modified: webservices/axis/trunk/java/modules/samples/src/userguide/clients/ClientForWebServiceWithModule.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/userguide/clients/ClientForWebServiceWithModule.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/userguide/clients/ClientForWebServiceWithModule.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/userguide/clients/ClientForWebServiceWithModule.java Tue Jun 28 10:39:04 2005
@@ -6,7 +6,7 @@
 import org.apache.axis.clientapi.Call;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.om.OMElement;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 
 import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamException;

Modified: webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingClient.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingClient.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingClient.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingClient.java Tue Jun 28 10:39:04 2005
@@ -6,7 +6,7 @@
 import org.apache.axis.clientapi.Call;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.om.OMElement;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 
 import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamException;

Modified: webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingDualClient.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingDualClient.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingDualClient.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoBlockingDualClient.java Tue Jun 28 10:39:04 2005
@@ -6,7 +6,7 @@
 import org.apache.axis.clientapi.Call;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.om.OMElement;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLOutputFactory;

Modified: webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingClient.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingClient.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingClient.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingClient.java Tue Jun 28 10:39:04 2005
@@ -8,7 +8,7 @@
 import org.apache.axis.clientapi.Callback;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.om.OMElement;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 
 import javax.xml.stream.XMLOutputFactory;
 import javax.xml.stream.XMLStreamException;

Modified: webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingDualClient.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingDualClient.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingDualClient.java (original)
+++ webservices/axis/trunk/java/modules/samples/src/userguide/clients/EchoNonBlockingDualClient.java Tue Jun 28 10:39:04 2005
@@ -8,7 +8,7 @@
 import org.apache.axis.clientapi.Callback;
 import org.apache.axis.engine.AxisFault;
 import org.apache.axis.om.OMElement;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLOutputFactory;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/Echo.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/Echo.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/Echo.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/Echo.java Tue Jun 28 10:39:04 2005
@@ -17,6 +17,7 @@
 package org.apache.axis.engine;
 
 import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMText;
 
 /**
  * @version $Rev: $ $Date: $
@@ -42,6 +43,13 @@
 
     public int echoInt(int in) {
         return in;
+    }
+    
+    public OMElement echoMTOMtoBase64(OMElement omEle)
+    {
+    	OMText omText  = (OMText)omEle.getFirstChild();
+    	omText.doOptimize(false);
+    	return omEle;
     }
 
 }

Added: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawMTOMTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawMTOMTest.java?rev=202251&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawMTOMTest.java (added)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawMTOMTest.java Tue Jun 28 10:39:04 2005
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.axis.engine;
+
+//todo
+
+import javax.activation.DataHandler;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLOutputFactory;
+
+import junit.framework.TestCase;
+
+import org.apache.axis.Constants;
+import org.apache.axis.addressing.AddressingConstants;
+import org.apache.axis.addressing.EndpointReference;
+import org.apache.axis.attachments.ByteArrayDataSource;
+import org.apache.axis.context.MessageContext;
+import org.apache.axis.context.ServiceContext;
+import org.apache.axis.description.ServiceDescription;
+import org.apache.axis.integration.UtilServer;
+import org.apache.axis.om.OMAbstractFactory;
+import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMFactory;
+import org.apache.axis.om.OMNamespace;
+import org.apache.axis.om.OMOutput;
+import org.apache.axis.om.impl.llom.OMTextImpl;
+import org.apache.axis.soap.SOAPFactory;
+import org.apache.axis.util.Utils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+public class EchoRawMTOMTest extends TestCase {
+    private EndpointReference targetEPR =
+            new EndpointReference(AddressingConstants.WSA_TO,
+                    "http://127.0.0.1:"
+            + (UtilServer.TESTING_PORT)
+            + "/axis/services/EchoXMLService/echoMTOMtoBase64");
+    private Log log = LogFactory.getLog(getClass());
+    private QName serviceName = new QName("EchoXMLService");
+    private QName operationName = new QName("echoMTOMtoBase64");
+    private QName transportName = new QName("http://localhost/my", "NullTransport");
+
+    private AxisConfiguration engineRegistry;
+    private MessageContext mc;
+    //private Thread thisThread;
+   // private SimpleHTTPServer sas;
+    private ServiceContext serviceContext;
+    private ServiceDescription service;
+
+    private boolean finish = false;
+
+    public EchoRawMTOMTest() {
+        super(EchoRawMTOMTest.class.getName());
+    }
+
+    public EchoRawMTOMTest(String testName) {
+        super(testName);
+    }
+
+    protected void setUp() throws Exception {
+        UtilServer.start();
+        service =
+                Utils.createSimpleService(serviceName,
+        Echo.class.getName(),
+                        operationName);
+        UtilServer.deployService(service);
+        serviceContext =
+                UtilServer.getConfigurationContext().createServiceContext(service.getName());
+    }
+
+    protected void tearDown() throws Exception {
+        UtilServer.unDeployService(serviceName);
+        UtilServer.stop();
+    }
+
+    private OMElement createEnvelope() {
+    	
+    	 OMFactory fac = OMAbstractFactory.getOMFactory();
+    	 OMNamespace omNs = fac.createOMNamespace("http://localhost/my", "my");
+		 OMElement data = fac.createOMElement("data", omNs);
+		 byte[] byteArray = new byte[] { 13, 56, 65, 32, 12, 12, 7, -3, -2, -1,
+				98 };
+		 DataHandler dataHandler = new DataHandler(new ByteArrayDataSource(byteArray));
+		 OMTextImpl textData = new OMTextImpl(dataHandler);
+		 data.addChild(textData); 
+         return data;
+    }
+
+    public void testEchoXMLSync() throws Exception {
+        SOAPFactory fac = OMAbstractFactory.getSOAP11Factory();
+
+        OMElement payload = createEnvelope();
+
+        org.apache.axis.clientapi.Call call = new org.apache.axis.clientapi.Call();
+
+        call.setTo(targetEPR);
+        call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP, false);
+
+        OMElement result =
+                (OMElement) call.invokeBlocking(operationName.getLocalPart(), payload);
+        result.serializeWithCache(new OMOutput(XMLOutputFactory.newInstance().createXMLStreamWriter(System.out)));
+        call.close();
+    }
+
+   /* public void testCorrectSOAPEnvelope() throws Exception {
+
+        OMElement payload = createEnvelope();
+
+        org.apache.axis.clientapi.Call call = new org.apache.axis.clientapi.Call();
+
+        call.setTo(targetEPR);
+        call.setTransportInfo(Constants.TRANSPORT_HTTP, Constants.TRANSPORT_HTTP, false);
+
+        OMElement result =
+                (OMElement) call.invokeBlocking(operationName.getLocalPart(), payload);
+        result.serializeWithCache(new OMOutput(XMLOutputFactory.newInstance().createXMLStreamWriter(System.out)));
+        call.close();
+    }*/
+
+
+}

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLChunckedTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLChunckedTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLChunckedTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLChunckedTest.java Tue Jun 28 10:39:04 2005
@@ -34,7 +34,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.util.Utils;
 import org.apache.commons.logging.Log;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLLoadTest.java Tue Jun 28 10:39:04 2005
@@ -34,7 +34,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.util.Utils;
 import org.apache.commons.logging.Log;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsSyncTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsSyncTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsSyncTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsSyncTest.java Tue Jun 28 10:39:04 2005
@@ -32,7 +32,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPEnvelope;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.transport.http.SimpleHTTPServer;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLOnTwoChannelsTest.java Tue Jun 28 10:39:04 2005
@@ -35,7 +35,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPEnvelope;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.transport.http.SimpleHTTPServer;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/EchoRawXMLTest.java Tue Jun 28 10:39:04 2005
@@ -37,7 +37,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.util.Utils;
 import org.apache.commons.logging.Log;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/HandlerFailureTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/HandlerFailureTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/HandlerFailureTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/HandlerFailureTest.java Tue Jun 28 10:39:04 2005
@@ -36,7 +36,7 @@
 import org.apache.axis.om.OMAbstractFactory;
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.phaseresolver.PhaseMetadata;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.transport.http.SimpleHTTPServer;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/MailEchoRawXMLTest.java Tue Jun 28 10:39:04 2005
@@ -34,7 +34,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.util.Utils;
 import org.apache.commons.logging.Log;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SOAPversionTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SOAPversionTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SOAPversionTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/engine/SOAPversionTest.java Tue Jun 28 10:39:04 2005
@@ -17,7 +17,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.Constants;
 import org.apache.axis.engine.util.MyInOutMEPClient;
 import org.apache.commons.logging.Log;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailRequestResponseRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailRequestResponseRawXMLTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailRequestResponseRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/mail/MailRequestResponseRawXMLTest.java Tue Jun 28 10:39:04 2005
@@ -46,7 +46,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPEnvelope;
 import org.apache.axis.transport.mail.MailTransportSender;
 import org.apache.axis.transport.mail.SimpleMailListener;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/rest/RESTBasedEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/rest/RESTBasedEchoRawXMLTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/rest/RESTBasedEchoRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/rest/RESTBasedEchoRawXMLTest.java Tue Jun 28 10:39:04 2005
@@ -39,7 +39,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.util.Utils;
 import org.apache.commons.logging.Log;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPEchoRawXMLTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPEchoRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPEchoRawXMLTest.java Tue Jun 28 10:39:04 2005
@@ -40,7 +40,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.transport.http.SimpleHTTPServer;
 import org.apache.axis.util.Utils;

Modified: webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPTwoChannelEchoRawXMLTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPTwoChannelEchoRawXMLTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPTwoChannelEchoRawXMLTest.java (original)
+++ webservices/axis/trunk/java/modules/samples/test/org/apache/axis/tcp/TCPTwoChannelEchoRawXMLTest.java Tue Jun 28 10:39:04 2005
@@ -40,7 +40,7 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.transport.http.SimpleHTTPServer;
 import org.apache.axis.util.Utils;
 

Modified: webservices/axis/trunk/java/modules/xml/project.xml
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/project.xml?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/project.xml (original)
+++ webservices/axis/trunk/java/modules/xml/project.xml Tue Jun 28 10:39:04 2005
@@ -35,6 +35,7 @@
 		<exclude>**/*OMOutputTest.java</exclude>
 		<exclude>**/*MTOMStAXSOAPModelBuilderTest.java</exclude> 
 		<exclude>**/*ImageSampleTest.java</exclude> 
+		<exclude>**/*MIMEHelperTest.java</exclude> 
       	</excludes>
       	<includes>
         	<include>**/*Test.java</include>

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMNode.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMNode.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMNode.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMNode.java Tue Jun 28 10:39:04 2005
@@ -16,9 +16,7 @@
 package org.apache.axis.om;
 
 import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.axis.om.impl.llom.OMOutput;
 
 /**
  * Interface OMNode

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMSerializer.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMSerializer.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMSerializer.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMSerializer.java Tue Jun 28 10:39:04 2005
@@ -18,7 +18,6 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamWriter;
 
-import org.apache.axis.om.impl.llom.OMOutput;
 
 /**
  * Interface OMSerializer

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMText.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMText.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMText.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/OMText.java Tue Jun 28 10:39:04 2005
@@ -34,7 +34,9 @@
 	 * @return boolean flag saying whether the node contains
 	 * an optimized text or not
 	 */
-	boolean isOptimised();
+	boolean isOptimized();
+	
+	void doOptimize(boolean value);
 
-	public String getContentID();
+	String getContentID();
 }

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMElementImpl.java Tue Jun 28 10:39:04 2005
@@ -30,6 +30,7 @@
 import org.apache.axis.om.OMException;
 import org.apache.axis.om.OMNamespace;
 import org.apache.axis.om.OMNode;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMText;
 import org.apache.axis.om.OMXMLParserWrapper;
 import org.apache.axis.om.impl.llom.serialize.StreamWriterToContentHandlerConverter;

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMNodeImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMNodeImpl.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMNodeImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMNodeImpl.java Tue Jun 28 10:39:04 2005
@@ -15,7 +15,6 @@
 */
 package org.apache.axis.om.impl.llom;
 
-import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMContainer;
 import org.apache.axis.om.OMException;
 import org.apache.axis.om.OMNode;

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMSerializerUtil.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMSerializerUtil.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMSerializerUtil.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMSerializerUtil.java Tue Jun 28 10:39:04 2005
@@ -4,6 +4,7 @@
 import org.apache.axis.om.OMNamespace;
 import org.apache.axis.om.OMNode;
 import org.apache.axis.om.OMException;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.impl.llom.serialize.StreamingOMSerializer;
 
 import javax.xml.stream.XMLStreamException;

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMTextImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMTextImpl.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMTextImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/OMTextImpl.java Tue Jun 28 10:39:04 2005
@@ -33,14 +33,12 @@
 import org.apache.axis.om.OMException;
 import org.apache.axis.om.OMNamespace;
 import org.apache.axis.om.OMNode;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMText;
 import org.apache.axis.om.OMXMLParserWrapper;
 import org.apache.axis.om.impl.llom.mtom.MTOMStAXSOAPModelBuilder;
 
 /**
- * Class OMTextImpl
- */
-/**
  * @author <a href="mailto:thilina@opensource.lk">Thilina Gunarathne </a>
  */
 public class OMTextImpl extends OMNodeImpl implements OMText, OMConstants {
@@ -51,6 +49,8 @@
 
 	protected String mimeType;
 
+	protected boolean optimize = false;
+
 	protected boolean isBinary = false;
 
 	/**
@@ -107,9 +107,13 @@
 	 * @param mimeType
 	 *            of the Binary
 	 */
-	public OMTextImpl(String s, String mimeType) {
+	public OMTextImpl(String s, String mimeType, boolean optimize) {
 		this(s);
 		this.mimeType = mimeType;
+		this.optimize = optimize;
+		if (this.contentID == null && optimize==true) {
+			createContentID();
+		}
 	}
 
 	/**
@@ -119,23 +123,40 @@
 	 * @param mimeType
 	 *            of the Binary
 	 */
-	public OMTextImpl(OMElement parent, String s, String mimeType) {
+	public OMTextImpl(OMElement parent, String s, String mimeType,
+			boolean optimize) {
 		this(parent, s);
 		this.mimeType = mimeType;
+		this.optimize = optimize;
+		if (this.contentID == null && optimize==true) {
+			createContentID();
+		}
 	}
 
 	/**
 	 * @param dataHandler
-	 *            To send binary optimised content Created programatically
+	 *            To send binary optimised content Created programatically.
 	 */
 	public OMTextImpl(DataHandler dataHandler) {
 		this.dataHandler = dataHandler;
+		this.isBinary = true;
+		this.optimize = true;
 		if (this.contentID == null) {
-			// We can use a UUID, taken using Apache commons id project.
-			// TODO change to UUID
-			this.contentID = String.valueOf(new Random(new Date().getTime())
-					.nextLong());
-			this.isBinary = true;
+			createContentID();
+		}
+	}
+
+	/**
+	 * @param dataHandler
+	 * @param optimize
+	 *            To send binary content. Created progrmatically.
+	 */
+	public OMTextImpl(DataHandler dataHandler, boolean optimize) {
+		this.dataHandler = dataHandler;
+		this.isBinary = true;
+		this.optimize = optimize;
+		if (this.contentID == null && optimize==true) {
+			createContentID();
 		}
 	}
 
@@ -151,6 +172,7 @@
 			OMXMLParserWrapper builder) {
 		super(parent);
 		this.contentID = contentID;
+		this.optimize = true;
 		this.isBinary = true;
 		this.builder = builder;
 	}
@@ -178,8 +200,7 @@
 	 * @param writer
 	 * @throws XMLStreamException
 	 */
-	public void serializeWithCache(OMOutput omOutput)
-			throws XMLStreamException {
+	public void serializeWithCache(OMOutput omOutput) throws XMLStreamException {
 		XMLStreamWriter writer = omOutput.getXmlStreamWriter();
 		if (textType == TEXT_NODE) {
 			writer.writeCharacters(this.value);
@@ -196,11 +217,9 @@
 
 	/**
 	 * Returns the value
-	 * 
-	 * @return
 	 */
 	public String getText() throws OMException {
-		if (!isBinary) {
+		if (this.value != null) {
 			return this.value;
 		} else {
 			try {
@@ -208,7 +227,6 @@
 				inStream = this.getInputStream();
 				byte[] data;
 				data = new byte[inStream.available()];
-
 				IOUtils.readFully(inStream, data);
 				return Base64.encode(data);
 			} catch (Exception e) {
@@ -220,8 +238,15 @@
 
 	}
 
-	public boolean isOptimised() {
-		return isBinary;
+	public boolean isOptimized() {
+		return optimize;
+	}
+
+	public void doOptimize(boolean value) {
+		this.optimize = value;
+		if (this.contentID == null && value==true) {
+			getContentID();
+		}
 	}
 
 	/**
@@ -235,13 +260,6 @@
 		 * this should return a DataHandler containing the binary data
 		 * reperesented by the Base64 strings stored in OMText
 		 */
-		if (isBinary) {
-			if (dataHandler == null) {
-				dataHandler = ((MTOMStAXSOAPModelBuilder) builder)
-						.getDataHandler(contentID);
-			}
-			return dataHandler;
-		}
 		if (value != null) {
 			ByteArrayDataSource dataSource;
 			byte[] data = Base64.decode(value);
@@ -253,9 +271,13 @@
 			}
 			DataHandler dataHandler = new DataHandler(dataSource);
 			return dataHandler;
+		} else {
+			if (dataHandler == null) {
+				dataHandler = ((MTOMStAXSOAPModelBuilder) builder)
+						.getDataHandler(contentID);
+			}
+			return dataHandler;
 		}
-		return null;
-
 	}
 
 	public String getLocalName() {
@@ -263,17 +285,21 @@
 	}
 
 	public java.io.InputStream getInputStream() throws OMException {
-		if (dataHandler == null) {
-			getDataHandler();
-		}
-		InputStream inStream;
-		try {
-			inStream = dataHandler.getDataSource().getInputStream();
-		} catch (IOException e) {
-			throw new OMException("Cannot get InputStream from DataHandler."
-					+ e);
+		if (isBinary == true) {
+			if (dataHandler == null) {
+				getDataHandler();
+			}
+			InputStream inStream;
+			try {
+				inStream = dataHandler.getDataSource().getInputStream();
+			} catch (IOException e) {
+				throw new OMException(
+						"Cannot get InputStream from DataHandler." + e);
+			}
+			return inStream;
+		} else {
+			throw new OMException("Unsupported Operation");
 		}
-		return inStream;
 	}
 
 	public String getContentID() {
@@ -287,7 +313,7 @@
 	public void serialize(OMOutput omOutput) throws XMLStreamException {
 		boolean firstElement = false;
 
-		if (!this.isBinary) {
+		if (!this.optimize) {
 			serializeWithCache(omOutput);
 		} else {
 			if (omOutput.doOptimise()) {
@@ -300,10 +326,9 @@
 				omOutput.writeOptimised(this);
 				omOutput.getXmlStreamWriter().writeEndElement();
 			} else {
-
 				omOutput.getXmlStreamWriter().writeCharacters(this.getText());
 			}
-
+			// TODO do we need these
 			OMNode nextSibling = this.getNextSibling();
 			if (nextSibling != null) {
 				// serilize next sibling
@@ -324,11 +349,18 @@
 		}
 
 	}
+	private void createContentID()
+	{
+//		 We can use a UUID, taken using Apache commons id project.
+		// TODO change to UUID
+		this.contentID = String.valueOf(new Random(new Date().getTime())
+				.nextLong());
+	}
 
 	/*
 	 * Methods to copy from OMSerialize utils
 	 */
-	private void serializeStartpart( OMOutput omOutput)
+	private void serializeStartpart(OMOutput omOutput)
 			throws XMLStreamException {
 		String nameSpaceName = null;
 		String writer_prefix = null;
@@ -435,8 +467,8 @@
 		if (done) {
 			this.detach();
 		} else {
-			builder.discard((OMElement)this.parent);
+			builder.discard((OMElement) this.parent);
 		}
 	}
 
-}
+}
\ No newline at end of file

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamWriterToContentHandlerConverter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamWriterToContentHandlerConverter.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamWriterToContentHandlerConverter.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamWriterToContentHandlerConverter.java Tue Jun 28 10:39:04 2005
@@ -15,7 +15,7 @@
  */
 package org.apache.axis.om.impl.llom.serialize;
 
-import org.apache.axis.om.impl.llom.OMOutput;
+import org.apache.axis.om.OMOutput;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.xml.sax.Attributes;

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/om/impl/llom/serialize/StreamingOMSerializer.java Tue Jun 28 10:39:04 2005
@@ -21,8 +21,8 @@
 import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.axis.om.OMException;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMSerializer;
-import org.apache.axis.om.impl.llom.OMOutput;
 
 /**
  * Class StreamingOMSerializer

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultCodeImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultCodeImpl.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultCodeImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultCodeImpl.java Tue Jun 28 10:39:04 2005
@@ -7,7 +7,6 @@
 import org.apache.axis.soap.SOAPFault;
 import org.apache.axis.om.*;
 import org.apache.axis.om.impl.llom.serialize.StreamWriterToContentHandlerConverter;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.OMSerializerUtil;
 
 import javax.xml.namespace.QName;

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultDetailImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultDetailImpl.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultDetailImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultDetailImpl.java Tue Jun 28 10:39:04 2005
@@ -5,7 +5,6 @@
 import org.apache.axis.soap.impl.llom.SOAPFaultDetailImpl;
 import org.apache.axis.soap.impl.llom.SOAPProcessingException;
 import org.apache.axis.om.impl.llom.OMElementImpl;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.OMSerializerUtil;
 import org.apache.axis.om.impl.llom.serialize.StreamWriterToContentHandlerConverter;
 import org.apache.axis.om.*;

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultImpl.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultImpl.java Tue Jun 28 10:39:04 2005
@@ -2,7 +2,6 @@
 
 import org.apache.axis.om.*;
 import org.apache.axis.om.impl.llom.OMElementImpl;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.OMTextImpl;
 import org.apache.axis.soap.impl.llom.*;
 import org.apache.axis.soap.impl.llom.soap12.SOAP12Constants;

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultReasonImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultReasonImpl.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultReasonImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultReasonImpl.java Tue Jun 28 10:39:04 2005
@@ -1,9 +1,9 @@
 package org.apache.axis.soap.impl.llom.soap11;
 
 import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMXMLParserWrapper;
 import org.apache.axis.om.impl.llom.serialize.StreamWriterToContentHandlerConverter;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.OMSerializerUtil;
 import org.apache.axis.soap.impl.llom.SOAPFaultReasonImpl;
 import org.apache.axis.soap.impl.llom.SOAPProcessingException;

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultRoleImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultRoleImpl.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultRoleImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis/soap/impl/llom/soap11/SOAP11FaultRoleImpl.java Tue Jun 28 10:39:04 2005
@@ -6,9 +6,9 @@
 import org.apache.axis.om.OMElement;
 import org.apache.axis.om.OMNamespace;
 import org.apache.axis.om.OMException;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMXMLParserWrapper;
 import org.apache.axis.om.impl.llom.serialize.StreamWriterToContentHandlerConverter;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.OMSerializerUtil;
 
 import javax.xml.namespace.QName;

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/attachments/ImageSampleTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/attachments/ImageSampleTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/attachments/ImageSampleTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/attachments/ImageSampleTest.java Tue Jun 28 10:39:04 2005
@@ -30,10 +30,10 @@
 
 import org.apache.axis.om.AbstractTestCase;
 import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMText;
 import org.apache.axis.om.impl.llom.OMElementImpl;
 import org.apache.axis.om.impl.llom.OMNamespaceImpl;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.OMTextImpl;
 import org.apache.axis.om.impl.llom.mtom.MTOMStAXSOAPModelBuilder;
 

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/OMNavigatorTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/OMNavigatorTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/OMNavigatorTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/OMNavigatorTest.java Tue Jun 28 10:39:04 2005
@@ -16,7 +16,6 @@
 package org.apache.axis.om;
 
 import org.apache.axis.om.impl.llom.OMNavigator;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.soap.SOAPEnvelope;
 import org.apache.axis.soap.SOAPFactory;
 import org.apache.axis.soap.impl.llom.builder.StAXSOAPModelBuilder;

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/SOAPFaultTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/SOAPFaultTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/SOAPFaultTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/SOAPFaultTest.java Tue Jun 28 10:39:04 2005
@@ -15,7 +15,6 @@
  */
 package org.apache.axis.om;
 
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.soap.SOAPEnvelope;
 
 import javax.xml.stream.XMLOutputFactory;

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/llom/OMOutputTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/llom/OMOutputTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/llom/OMOutputTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/llom/OMOutputTest.java Tue Jun 28 10:39:04 2005
@@ -25,6 +25,7 @@
 import org.apache.axis.om.AbstractTestCase;
 import org.apache.axis.om.OMAttribute;
 import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMOutput;
 
 /**
  * @author <a href="mailto:thilina@opensource.lk">Thilina Gunarathne </a>

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/ElementSerializerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/ElementSerializerTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/ElementSerializerTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/ElementSerializerTest.java Tue Jun 28 10:39:04 2005
@@ -29,9 +29,9 @@
 import org.apache.axis.om.OMFactory;
 import org.apache.axis.om.OMNamespace;
 import org.apache.axis.om.OMNode;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMText;
 import org.apache.axis.om.OMXMLParserWrapper;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.factory.OMXMLBuilderFactory;
 import org.apache.axis.soap.SOAPBody;
 import org.apache.axis.soap.SOAPEnvelope;

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/NoNamespaceSerializerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/NoNamespaceSerializerTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/NoNamespaceSerializerTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/NoNamespaceSerializerTest.java Tue Jun 28 10:39:04 2005
@@ -11,8 +11,8 @@
 
 import org.apache.axis.om.OMAbstractFactory;
 import org.apache.axis.om.OMElement;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMXMLParserWrapper;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.factory.OMXMLBuilderFactory;
 import org.apache.axis.soap.SOAPEnvelope;
 import org.apache.axis.soap.SOAPFactory;
@@ -118,13 +118,13 @@
                 createXMLStreamReader(new InputStreamReader(new ByteArrayInputStream(xmlText2.getBytes()))));
         env.getBody().addChild(builder.getDocumentElement());
 
-        OMOutput omOutputer =  new OMOutput(System.out,false);
+        OMOutput omOutput =  new OMOutput(System.out,false);
         //env.getBody().addChild(builder.getDocumentElement());
         
-        env.serializeWithCache(omOutputer);
+        env.serializeWithCache(omOutput);
        // env.serializeWithCache(xmlStreamWriter, true);
 
-        omOutputer.flush();
+        omOutput.flush();
 
     }
     public void testSerilizationWithCacheOn() throws Exception{

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/OMSerializerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/OMSerializerTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/OMSerializerTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/serializer/OMSerializerTest.java Tue Jun 28 10:39:04 2005
@@ -25,8 +25,8 @@
 
 import org.apache.axis.om.AbstractTestCase;
 import org.apache.axis.om.OMAbstractFactory;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMXMLParserWrapper;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.factory.OMXMLBuilderFactory;
 import org.apache.axis.om.impl.llom.serialize.StreamingOMSerializer;
 import org.apache.axis.soap.SOAPBody;

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/streamwrapper/OmStAXBuilderTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/streamwrapper/OmStAXBuilderTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/streamwrapper/OmStAXBuilderTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/om/impl/streamwrapper/OmStAXBuilderTest.java Tue Jun 28 10:39:04 2005
@@ -24,8 +24,8 @@
 
 import org.apache.axis.om.AbstractTestCase;
 import org.apache.axis.om.OMAbstractFactory;
+import org.apache.axis.om.OMOutput;
 import org.apache.axis.om.OMXMLParserWrapper;
-import org.apache.axis.om.impl.llom.OMOutput;
 import org.apache.axis.om.impl.llom.factory.OMXMLBuilderFactory;
 import org.apache.axis.soap.SOAPEnvelope;
 import org.apache.axis.soap.SOAPFactory;

Modified: webservices/axis/trunk/java/modules/xml/test/org/apache/axis/soap/impl/llom/soap11/SOAP11SerializerTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis/soap/impl/llom/soap11/SOAP11SerializerTest.java?rev=202251&r1=202250&r2=202251&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis/soap/impl/llom/soap11/SOAP11SerializerTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis/soap/impl/llom/soap11/SOAP11SerializerTest.java Tue Jun 28 10:39:04 2005
@@ -1,13 +1,12 @@
 package org.apache.axis.soap.impl.llom.soap11;
 
-import org.apache.axis.om.OMTestCase;
-import org.apache.axis.om.impl.llom.OMOutput;
-import org.apache.axis.soap.impl.llom.builder.StAXSOAPModelBuilder;
-import org.apache.axis.soap.SOAPEnvelope;
-
 import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamWriter;
 import javax.xml.stream.XMLStreamException;
+
+import org.apache.axis.om.OMOutput;
+import org.apache.axis.om.OMTestCase;
+import org.apache.axis.soap.SOAPEnvelope;
+import org.apache.axis.soap.impl.llom.builder.StAXSOAPModelBuilder;
 
 /*
  * Copyright 2004,2005 The Apache Software Foundation.