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 ch...@apache.org on 2005/08/25 14:25:30 UTC

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

Author: chinthaka
Date: Thu Aug 25 05:24:43 2005
New Revision: 240057

URL: http://svn.apache.org/viewcvs?rev=240057&view=rev
Log:
- correcting OMDocument, PI serialization problem
- adding test cases for that
- moving SOAP specific tests to soap package
-

Added:
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMDocumentTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMElementTest.java
      - copied, changed from r240017, webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMElementTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMEnvelopeTest.java
      - copied, changed from r240017, webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMEnvelopeTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderBlockTest.java
      - copied, changed from r240017, webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderBlockTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderTest.java
      - copied, changed from r240017, webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderTest.java
Removed:
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMElementTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMEnvelopeTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderBlockTest.java
    webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderTest.java
Modified:
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMDocumentImpl.java
    webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMProcessingInstructionImpl.java

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMDocumentImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMDocumentImpl.java?rev=240057&r1=240056&r2=240057&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMDocumentImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMDocumentImpl.java Thu Aug 25 05:24:43 2005
@@ -58,21 +58,20 @@
      * Dafult : UTF-8
      */
     protected String charSetEncoding = "UTF-8";
-    
+
     /**
      * Field xmlVersion
      */
     protected String xmlVersion = "1.0";
-    
 
-    
+
     /**
      * Default constructor
      */
     public OMDocumentImpl() {
-    	
+      this.done = true;
     }
-    
+
     /**
      * @param rootElement
      * @param parserWrapper
@@ -234,86 +233,99 @@
     public void setFirstChild(OMNode firstChild) {
         this.firstChild = firstChild;
     }
-    
-    
+
+
     /**
      * Returns the character set encoding scheme to be used
+     *
      * @return
      */
-	public String getCharsetEncoding() {
-		return charSetEncoding;
-	}
-	
-	/**
-	 * Set the character set encoding scheme
-	 * @param charSetEncoding
-	 */
-	public void setCharsetEncoding(String charEncoding) {
-		this.charSetEncoding = charEncoding;
-	}
-	
-	public String getXMLVersion() {
-		return xmlVersion;
-	}
-	public void setXMLVersion(String xmlVersion) {
-		this.xmlVersion = xmlVersion;
-	}
-	
-	/**
-	 * Serialize the docuement with/without the XML declaration
-	 */
-	public void serialize(OMOutputImpl omOutput, boolean includeXMLDeclaration) throws XMLStreamException {
-		serialize(omOutput,false,includeXMLDeclaration);
-	}
-
-	/**
-	 * Serialize the document with the XML declaration
-	 * 
-	 * @see org.apache.axis2.om.OMDocument#serialize(org.apache.axis2.om.impl.OMOutputImpl,
-	 *      boolean)
-	 */
-	public void serialize(OMOutputImpl omOutput)
-			throws XMLStreamException {
-		serialize(omOutput, false, true);
-	}
-	
-
-	/**
-	 * Serialize the document with cache
-	 * @see org.apache.axis2.om.OMDocument#serializeWithCache(org.apache.axis2.om.impl.OMOutputImpl)
-	 */
-	public void serializeWithCache(OMOutputImpl omOutput) throws XMLStreamException {
-		serialize(omOutput, true, true);
-		
-	}
-
-	/**
-	 * Serialize the document with cache
-	 * @see org.apache.axis2.om.OMDocument#serializeWithCache(org.apache.axis2.om.impl.OMOutputImpl, boolean)
-	 */
-	public void serializeWithCache(OMOutputImpl omOutput, boolean includeXMLDeclaration) throws XMLStreamException {
-		serialize(omOutput,true,includeXMLDeclaration);
-		
-	}
-	
-	protected void serialize(OMOutputImpl omOutput, boolean cache, boolean includeXMLDeclaration) throws XMLStreamException {
-		if (includeXMLDeclaration) {
-			//Check whether the OMOutput char encoding and OMDocument char
-			//encoding matches, if not use char encoding of OMOutput
-			String outputCharEncoding = omOutput.getCharSetEncoding();
-			if(!outputCharEncoding.equalsIgnoreCase(this.charSetEncoding)) {
-				this.charSetEncoding = outputCharEncoding;
-			}
-			omOutput.getXmlStreamWriter().writeStartDocument(charSetEncoding,
-					xmlVersion);
-		}
-
-		if (cache) {
-			this.rootElement.serializeWithCache(omOutput);
-		} else {
-			this.rootElement.serialize(omOutput);
-		}
-	}
+    public String getCharsetEncoding() {
+        return charSetEncoding;
+    }
+
+    /**
+     * Set the character set encoding scheme
+     *
+     * @param charSetEncoding
+     */
+    public void setCharsetEncoding(String charEncoding) {
+        this.charSetEncoding = charEncoding;
+    }
+
+    public String getXMLVersion() {
+        return xmlVersion;
+    }
+
+    public void setXMLVersion(String xmlVersion) {
+        this.xmlVersion = xmlVersion;
+    }
+
+    /**
+     * Serialize the docuement with/without the XML declaration
+     */
+    public void serialize(OMOutputImpl omOutput, boolean includeXMLDeclaration) throws XMLStreamException {
+        serialize(omOutput, false, includeXMLDeclaration);
+    }
+
+    /**
+     * Serialize the document with the XML declaration
+     *
+     * @see org.apache.axis2.om.OMDocument#serialize(org.apache.axis2.om.impl.OMOutputImpl,
+     *      boolean)
+     */
+    public void serialize(OMOutputImpl omOutput)
+            throws XMLStreamException {
+        serialize(omOutput, false, true);
+    }
+
+
+    /**
+     * Serialize the document with cache
+     *
+     * @see org.apache.axis2.om.OMDocument#serializeWithCache(org.apache.axis2.om.impl.OMOutputImpl)
+     */
+    public void serializeWithCache(OMOutputImpl omOutput) throws XMLStreamException {
+        serialize(omOutput, true, true);
+
+    }
+
+    /**
+     * Serialize the document with cache
+     *
+     * @see org.apache.axis2.om.OMDocument#serializeWithCache(org.apache.axis2.om.impl.OMOutputImpl, boolean)
+     */
+    public void serializeWithCache(OMOutputImpl omOutput, boolean includeXMLDeclaration) throws XMLStreamException {
+        serialize(omOutput, true, includeXMLDeclaration);
+
+    }
+
+    protected void serialize(OMOutputImpl omOutput, boolean cache, boolean includeXMLDeclaration) throws XMLStreamException {
+        if (includeXMLDeclaration) {
+            //Check whether the OMOutput char encoding and OMDocument char
+            //encoding matches, if not use char encoding of OMOutput
+            String outputCharEncoding = omOutput.getCharSetEncoding();
+            if (!outputCharEncoding.equalsIgnoreCase(this.charSetEncoding)) {
+                this.charSetEncoding = outputCharEncoding;
+            }
+            omOutput.getXmlStreamWriter().writeStartDocument(charSetEncoding,
+                    xmlVersion);
+        }
+
+        Iterator children = this.getChildren();
+
+        if (cache) {
+            while (children.hasNext()) {
+                OMNode omNode = (OMNode) children.next();
+                omNode.serializeWithCache(omOutput);
+            }
+        } else {
+            while (children.hasNext()) {
+                OMNode omNode = (OMNode) children.next();
+                omNode.serialize(omOutput);
+            }
+        }
+    }
+
 
-	
 }

Modified: webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMProcessingInstructionImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMProcessingInstructionImpl.java?rev=240057&r1=240056&r2=240057&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMProcessingInstructionImpl.java (original)
+++ webservices/axis/trunk/java/modules/xml/src/org/apache/axis2/om/impl/llom/OMProcessingInstructionImpl.java Thu Aug 25 05:24:43 2005
@@ -57,10 +57,6 @@
     public void serializeWithCache(org.apache.axis2.om.impl.OMOutputImpl omOutput) throws XMLStreamException {
         XMLStreamWriter writer = omOutput.getXmlStreamWriter();
         writer.writeProcessingInstruction(this.target+" ", this.value);
-        OMNode nextSibling = this.getNextSibling();
-        if (nextSibling != null) {
-            nextSibling.serializeWithCache(omOutput);
-        }
     }
 
     /**

Added: webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMDocumentTest.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMDocumentTest.java?rev=240057&view=auto
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMDocumentTest.java (added)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMDocumentTest.java Thu Aug 25 05:24:43 2005
@@ -0,0 +1,87 @@
+package org.apache.axis2.om;
+
+import junit.framework.TestCase;
+import org.apache.axis2.om.impl.OMOutputImpl;
+import org.apache.axis2.om.impl.llom.builder.StAXOMBuilder;
+
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import java.io.ByteArrayOutputStream;
+import java.io.StringReader;
+
+/*
+ * Copyright 2001-2004 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.
+ *
+ * @author : Eran Chinthaka (chinthaka@apache.org)
+ */
+
+public class OMDocumentTest extends TestCase {
+    private String sampleXML = "<?xml version='1.0' encoding='utf-8'?>\n" +
+            "<!--This is some comments at the start of the document-->\n" +
+            "<?PITarget PIData?>\n" +
+            "<Axis2>\n" +
+            "    <ProjectName>The Apache Web Sevices Project</ProjectName>\n" +
+            "</Axis2>";
+
+     public void testOMDocument() throws XMLStreamException {
+         // read the string in to the builder
+         OMDocument omDocument = getSampleOMDocument(sampleXML);
+
+         // serialise it to a string
+         String outXML = "";
+         ByteArrayOutputStream outStream = new ByteArrayOutputStream();
+         OMOutputImpl output = new OMOutputImpl(outStream, false);
+         omDocument.serialize(output);
+         output.flush();
+         outXML = new String(outStream.toByteArray());
+         System.out.println("outXML = " + outXML);
+
+         // again load that to another builder
+         OMDocument secondDocument = getSampleOMDocument(outXML);
+
+         // compare the intial one with the later one
+         assertTrue(secondDocument.getFirstChild() instanceof OMComment);
+         assertTrue(secondDocument.getFirstChild().getNextSibling() instanceof OMProcessingInstruction);
+
+
+     }
+
+    private OMDocument getSampleOMDocument(String xml) {
+        try {
+            XMLStreamReader xmlStreamReader = XMLInputFactory.newInstance().createXMLStreamReader(new StringReader(xml));
+            StAXOMBuilder builder = new StAXOMBuilder(xmlStreamReader);
+            return builder.getDocument();
+        } catch (XMLStreamException e) {
+            throw new UnsupportedOperationException();
+        }
+    }
+
+//    private OMDocument getSampleOMDocument() {
+//        OMFactory omFactory = OMAbstractFactory.getOMFactory();
+//        OMDocument omDocument = omFactory.createOMDocument();
+//        omFactory.createOMComment(omDocument, "This is some comments at the start of the document");
+//        omDocument.setCharsetEncoding("utf-8");
+//        omFactory.createOMProcessingInstruction(omDocument, "PITarget", "PIData");
+//
+//        OMElement documentElement = omFactory.createOMElement("Axis2", null, omDocument);
+//        omDocument.setDocumentElement(documentElement);
+//        omFactory.createOMElement("ProjectName", null, documentElement);
+//        documentElement.getFirstElement().setText("The Apache Web Sevices Project");
+//
+//        return omDocument;
+//    }
+
+}

Copied: webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMElementTest.java (from r240017, webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMElementTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMElementTest.java?p2=webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMElementTest.java&p1=webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMElementTest.java&r1=240017&r2=240057&rev=240057&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMElementTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMElementTest.java Thu Aug 25 05:24:43 2005
@@ -1,5 +1,6 @@
-package org.apache.axis2.om;
+package org.apache.axis2.soap.impl.llom;
 
+import org.apache.axis2.om.*;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.axis2.soap.impl.llom.builder.StAXSOAPModelBuilder;
 import org.apache.commons.logging.Log;

Copied: webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMEnvelopeTest.java (from r240017, webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMEnvelopeTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMEnvelopeTest.java?p2=webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMEnvelopeTest.java&p1=webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMEnvelopeTest.java&r1=240017&r2=240057&rev=240057&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMEnvelopeTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMEnvelopeTest.java Thu Aug 25 05:24:43 2005
@@ -13,12 +13,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.axis2.om;
+package org.apache.axis2.soap.impl.llom;
 
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMTestCase;
+import org.apache.axis2.om.OMTestUtils;
 import org.apache.axis2.soap.SOAPBody;
 import org.apache.axis2.soap.SOAPEnvelope;
 import org.apache.axis2.soap.SOAPHeader;
-import org.apache.axis2.soap.impl.llom.SOAPProcessingException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 

Copied: webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderBlockTest.java (from r240017, webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderBlockTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderBlockTest.java?p2=webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderBlockTest.java&p1=webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderBlockTest.java&r1=240017&r2=240057&rev=240057&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderBlockTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderBlockTest.java Thu Aug 25 05:24:43 2005
@@ -13,8 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.axis2.om;
+package org.apache.axis2.soap.impl.llom;
 
+import org.apache.axis2.om.OMTestCase;
 import org.apache.axis2.soap.SOAPHeader;
 import org.apache.axis2.soap.SOAPHeaderBlock;
 

Copied: webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderTest.java (from r240017, webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderTest.java)
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderTest.java?p2=webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderTest.java&p1=webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderTest.java&r1=240017&r2=240057&rev=240057&view=diff
==============================================================================
--- webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/om/OMHeaderTest.java (original)
+++ webservices/axis/trunk/java/modules/xml/test/org/apache/axis2/soap/impl/llom/OMHeaderTest.java Thu Aug 25 05:24:43 2005
@@ -13,8 +13,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.axis2.om;
+package org.apache.axis2.soap.impl.llom;
 
+import org.apache.axis2.om.OMTestCase;
 import org.apache.axis2.om.impl.llom.OMNamespaceImpl;
 import org.apache.axis2.soap.SOAPHeader;
 import org.apache.axis2.soap.SOAPHeaderBlock;