You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2016/05/07 17:51:24 UTC

svn commit: r1742739 - in /webservices/axiom/trunk/aspects/core-aspects/src: main/java/org/apache/axiom/core/stream/serializer/ test/java/org/apache/axiom/core/stream/serializer/

Author: veithen
Date: Sat May  7 17:51:23 2016
New Revision: 1742739

URL: http://svn.apache.org/viewvc?rev=1742739&view=rev
Log:
Only add an XML declaration when requested.

Modified:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerBase.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToXMLStream.java
    webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerBase.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerBase.java?rev=1742739&r1=1742738&r2=1742739&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerBase.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/SerializerBase.java Sat May  7 17:51:23 2016
@@ -82,13 +82,6 @@ public abstract class SerializerBase
         PKG_PATH = sb.toString();
     }
 
-    
-
-    /**
-     * true if we still need to call startDocumentInternal() 
-	 */
-    protected boolean m_needToCallStartDocument = true; 
-
     /** True if a trailing "]]>" still needs to be written to be
      * written out. Used to merge adjacent CDATA sections
      */
@@ -769,7 +762,6 @@ public abstract class SerializerBase
 
         // if we do get called with startDocument(), handle it right away       
         startDocumentInternal();
-        m_needToCallStartDocument = false;
         return;
     }   
     
@@ -837,7 +829,6 @@ public abstract class SerializerBase
     	this.m_inEntityRef = false;
     	this.m_inExternalDTD = false;
     	this.m_mediatype = null;
-    	this.m_needToCallStartDocument = true;
     	this.m_needToOutputDocTypeDecl = false;
         if (m_OutputProps != null)
             this.m_OutputProps.clear();

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java?rev=1742739&r1=1742738&r2=1742739&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToStream.java Sat May  7 17:51:23 2016
@@ -1336,11 +1336,6 @@ abstract public class ToStream extends S
             
         m_docIsEmpty = false;
         
-        if (m_needToCallStartDocument)
-        {
-            startDocumentInternal();
-        }
-
         if (m_cdataStartCalled)
         {
             /* either due to startCDATA() being called or due to 
@@ -1809,13 +1804,7 @@ abstract public class ToStream extends S
         if (m_inEntityRef)
             return;
 
-        if (m_needToCallStartDocument)
-        {
-            startDocumentInternal();
-            m_needToCallStartDocument = false;
-            m_docIsEmpty = false;
-        }
-        else if (m_cdataTagOpen)
+        if (m_cdataTagOpen)
             closeCDATA();
         try
         {
@@ -2119,11 +2108,6 @@ abstract public class ToStream extends S
         int start_old = start;
         if (m_inEntityRef)
             return;
-        if (m_needToCallStartDocument)
-        {
-            startDocumentInternal();
-            m_needToCallStartDocument = false;
-        }
 
         try
         {
@@ -2409,12 +2393,6 @@ abstract public class ToStream extends S
      */
     public void flushPending() throws StreamException
     {
-            if (m_needToCallStartDocument)
-            {
-                startDocumentInternal();
-                m_needToCallStartDocument = false;
-            }
-
             if (m_cdataTagOpen)
             {
                 closeCDATA();

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToXMLStream.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToXMLStream.java?rev=1742739&r1=1742738&r2=1742739&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToXMLStream.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/ToXMLStream.java Sat May  7 17:51:23 2016
@@ -107,69 +107,64 @@ public class ToXMLStream extends ToStrea
      */
     public void startDocumentInternal() throws StreamException
     {
+        super.startDocumentInternal();
 
-        if (m_needToCallStartDocument)
-        { 
-            super.startDocumentInternal();
-            m_needToCallStartDocument = false;
-
-            if (m_inEntityRef)
-                return;
-
-            m_needToOutputDocTypeDecl = true;
-            m_startNewLine = false;
-            /* The call to getXMLVersion() might emit an error message
-             * and we should emit this message regardless of if we are 
-             * writing out an XML header or not.
-             */ 
-            final String version = getXMLVersion();
-            if (getOmitXMLDeclaration() == false)
-            {
-                String encoding = Encodings.getMimeEncoding(getEncoding());
-                String standalone;
-
-                if (m_standaloneWasSpecified)
-                {
-                    standalone = " standalone=\"" + getStandalone() + "\"";
-                }
-                else
-                {
-                    standalone = "";
-                }
+        if (m_inEntityRef)
+            return;
+
+        m_needToOutputDocTypeDecl = true;
+        m_startNewLine = false;
+        /* The call to getXMLVersion() might emit an error message
+         * and we should emit this message regardless of if we are 
+         * writing out an XML header or not.
+         */ 
+        final String version = getXMLVersion();
+        if (getOmitXMLDeclaration() == false)
+        {
+            String encoding = Encodings.getMimeEncoding(getEncoding());
+            String standalone;
 
-                try
-                {
-                    final java.io.Writer writer = m_writer;
-                    writer.write("<?xml version=\"");
-                    writer.write(version);
-                    writer.write("\" encoding=\"");
-                    writer.write(encoding);
-                    writer.write('\"');
-                    writer.write(standalone);
-                    writer.write("?>");
-                    if (m_doIndent) {
-                        if (m_standaloneWasSpecified
-                                || getDoctypePublic() != null
-                                || getDoctypeSystem() != null) {
-                            // We almost never put a newline after the XML
-                            // header because this XML could be used as
-                            // an extenal general parsed entity
-                            // and we don't know the context into which it
-                            // will be used in the future.  Only when
-                            // standalone, or a doctype system or public is
-                            // specified are we free to insert a new line
-                            // after the header.  Is it even worth bothering
-                            // in these rare cases?                           
-                            writer.write(m_lineSep, 0, m_lineSepLen);
-                        }
+            if (m_standaloneWasSpecified)
+            {
+                standalone = " standalone=\"" + getStandalone() + "\"";
+            }
+            else
+            {
+                standalone = "";
+            }
+
+            try
+            {
+                final java.io.Writer writer = m_writer;
+                writer.write("<?xml version=\"");
+                writer.write(version);
+                writer.write("\" encoding=\"");
+                writer.write(encoding);
+                writer.write('\"');
+                writer.write(standalone);
+                writer.write("?>");
+                if (m_doIndent) {
+                    if (m_standaloneWasSpecified
+                            || getDoctypePublic() != null
+                            || getDoctypeSystem() != null) {
+                        // We almost never put a newline after the XML
+                        // header because this XML could be used as
+                        // an extenal general parsed entity
+                        // and we don't know the context into which it
+                        // will be used in the future.  Only when
+                        // standalone, or a doctype system or public is
+                        // specified are we free to insert a new line
+                        // after the header.  Is it even worth bothering
+                        // in these rare cases?                           
+                        writer.write(m_lineSep, 0, m_lineSepLen);
                     }
-                } 
-                catch(IOException e)
-                {
-                    throw new StreamException(e);
                 }
-
+            } 
+            catch(IOException e)
+            {
+                throw new StreamException(e);
             }
+
         }
     }
 
@@ -265,9 +260,6 @@ public class ToXMLStream extends ToStrea
         {
             try
             {
-                if (m_needToCallStartDocument)
-                    startDocumentInternal();                
-
                 if (shouldIndent())
                     indent();
 

Modified: webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java?rev=1742739&r1=1742738&r2=1742739&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/test/java/org/apache/axiom/core/stream/serializer/SerializerTest.java Sat May  7 17:51:23 2016
@@ -32,6 +32,6 @@ public class SerializerTest {
         handler.startElement("", "test", "");
         handler.attributesCompleted();
         handler.endElement();
-        assertThat(sw.toString()).containsMatch("<test ?/>");
+        assertThat(sw.toString()).matches("<test ?/>");
     }
 }