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/02/19 00:31:11 UTC

svn commit: r1731167 - in /webservices/axiom/trunk/aspects: core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ om-aspects/src/main/java/org/apache/axiom/om/impl/common/ om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/ om-aspe...

Author: veithen
Date: Thu Feb 18 23:31:10 2016
New Revision: 1731167

URL: http://svn.apache.org/viewvc?rev=1731167&view=rev
Log:
Move some SAX related code to core-aspects.

Added:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXInput.java
      - copied, changed from r1731144, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXInput.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXReader.java
      - copied, changed from r1731144, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXReader.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java
      - copied, changed from r1731144, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/OMContentHandler.java
Removed:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/OMContentHandler.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/
Modified:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj

Copied: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXInput.java (from r1731144, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXInput.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXInput.java?p2=webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXInput.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXInput.java&r1=1731144&r2=1731167&rev=1731167&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXInput.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXInput.java Thu Feb 18 23:31:10 2016
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.axiom.om.impl.stream.sax;
+package org.apache.axiom.core.stream.sax;
 
 import javax.xml.transform.sax.SAXSource;
 

Copied: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXReader.java (from r1731144, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXReader.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXReader.java?p2=webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXReader.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXReader.java&r1=1731144&r2=1731167&rev=1731167&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/sax/SAXReader.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/SAXReader.java Thu Feb 18 23:31:10 2016
@@ -17,12 +17,11 @@
  * under the License.
  */
 
-package org.apache.axiom.om.impl.stream.sax;
+package org.apache.axiom.core.stream.sax;
 
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
 import org.apache.axiom.core.stream.XmlReader;
-import org.apache.axiom.om.impl.common.OMContentHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.XMLReader;
 
@@ -44,7 +43,7 @@ public final class SAXReader implements
     @Override
     public void proceed() throws StreamException {
         XMLReader reader = source.getXMLReader();
-        OMContentHandler contentHandler = new OMContentHandler(handler, expandEntityReferences);
+        XmlHandlerContentHandler contentHandler = new XmlHandlerContentHandler(handler, expandEntityReferences);
         reader.setContentHandler(contentHandler);
         reader.setDTDHandler(contentHandler);
         try {

Copied: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java (from r1731144, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/OMContentHandler.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java?p2=webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/OMContentHandler.java&r1=1731144&r2=1731167&rev=1731167&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/OMContentHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/XmlHandlerContentHandler.java Thu Feb 18 23:31:10 2016
@@ -16,12 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.om.impl.common;
+package org.apache.axiom.core.stream.sax;
 
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMNode;
 import org.xml.sax.Attributes;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.DTDHandler;
@@ -33,9 +31,7 @@ import org.xml.sax.ext.LexicalHandler;
 import java.util.HashMap;
 import java.util.Map;
 
-import javax.xml.stream.XMLStreamConstants;
-
-public final class OMContentHandler implements ContentHandler, LexicalHandler, DeclHandler, DTDHandler {
+public final class XmlHandlerContentHandler implements ContentHandler, LexicalHandler, DeclHandler, DTDHandler {
     private final XmlHandler handler;
     private final boolean expandEntityReferences;
     
@@ -71,7 +67,7 @@ public final class OMContentHandler impl
 
     /**
      * Stores namespace declarations reported to {@link #startPrefixMapping(String, String)}. These
-     * declarations will be added to the {@link OMElement} by
+     * declarations will be passed to the {@link XmlHandler} by
      * {@link #startElement(String, String, String, Attributes)}. Each declaration is stored as
      * (prefix, uri) pair using two array elements.
      */
@@ -82,12 +78,12 @@ public final class OMContentHandler impl
      */
     private int namespaceCount;
 
-    private int textNodeType = OMNode.TEXT_NODE;
+    private boolean inCDATASection;
     
     private boolean inEntityReference;
     private int entityReferenceDepth;
 
-    public OMContentHandler(XmlHandler handler, boolean expandEntityReferences) {
+    public XmlHandlerContentHandler(XmlHandler handler, boolean expandEntityReferences) {
         this.handler = handler;
         this.expandEntityReferences = expandEntityReferences;
     }
@@ -312,52 +308,40 @@ public final class OMContentHandler impl
 
     public final void startCDATA() throws SAXException {
         if (!inEntityReference) {
-            textNodeType = OMNode.CDATA_SECTION_NODE;
+            inCDATASection = true;
         }
     }
 
     public final void endCDATA() throws SAXException {
         if (!inEntityReference) {
-            textNodeType = OMNode.TEXT_NODE;
-        }
-    }
-
-    private void characterData(char[] ch, int start, int length, int nodeType)
-            throws SAXException {
-        if (inEntityReference) {
-            return;
-        }
-        try {
-            String text = new String(ch, start, length);
-            switch (nodeType) {
-                case XMLStreamConstants.CHARACTERS:
-                    handler.processCharacterData(text, false);
-                    break;
-                case XMLStreamConstants.SPACE:
-                    handler.processCharacterData(text, true);
-                    break;
-                case XMLStreamConstants.CDATA:
-                    handler.processCDATASection(text);
-                    break;
-                default:
-                    throw new IllegalArgumentException();
-            }
-        } catch (StreamException ex) {
-            throw toSAXException(ex);
+            inCDATASection = false;
         }
     }
 
     public final void characters(char[] ch, int start, int length)
             throws SAXException {
         if (!inEntityReference) {
-            characterData(ch, start, length, textNodeType);
+            try {
+                if (inCDATASection) {
+                    // TODO: incorrect because it may split CDATA sections
+                    handler.processCDATASection(new String(ch, start, length));
+                } else {
+                    handler.processCharacterData(new String(ch, start, length), false);
+                }
+            } catch (StreamException ex) {
+                throw toSAXException(ex);
+            }
         }
     }
     
     public final void ignorableWhitespace(char[] ch, int start, int length)
             throws SAXException {
         if (!inEntityReference) {
-            characterData(ch, start, length, OMNode.SPACE_NODE);
+            try {
+                handler.processCharacterData(new String(ch, start, length), true);
+            } catch (StreamException ex) {
+                throw toSAXException(ex);
+            }
         }
     }
 

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java?rev=1731167&r1=1731166&r2=1731167&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/factory/AbstractOMMetaFactory.java Thu Feb 18 23:31:10 2016
@@ -32,6 +32,7 @@ import javax.xml.transform.sax.SAXSource
 import javax.xml.transform.stream.StreamSource;
 
 import org.apache.axiom.core.NodeFactory;
+import org.apache.axiom.core.stream.sax.SAXInput;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMFactory;
 import org.apache.axiom.om.OMMetaFactory;
@@ -40,7 +41,6 @@ import org.apache.axiom.om.impl.builder.
 import org.apache.axiom.om.impl.common.builder.PlainXMLModel;
 import org.apache.axiom.om.impl.common.builder.PushBuilder;
 import org.apache.axiom.om.impl.common.builder.StAXOMBuilder;
-import org.apache.axiom.om.impl.stream.sax.SAXInput;
 import org.apache.axiom.om.util.StAXParserConfiguration;
 import org.apache.axiom.om.util.StAXUtils;
 import org.apache.axiom.soap.SOAP12Constants;

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj?rev=1731167&r1=1731166&r2=1731167&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj Thu Feb 18 23:31:10 2016
@@ -38,6 +38,7 @@ import org.apache.axiom.core.ElementMatc
 import org.apache.axiom.core.Mapper;
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
+import org.apache.axiom.core.stream.sax.XmlHandlerContentHandler;
 import org.apache.axiom.om.NodeUnavailableException;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
@@ -53,7 +54,6 @@ import org.apache.axiom.om.impl.common.A
 import org.apache.axiom.om.impl.common.AxiomSemantics;
 import org.apache.axiom.om.impl.common.NamespaceURIInterningXMLStreamReaderWrapper;
 import org.apache.axiom.om.impl.common.OMChildrenQNameIterator;
-import org.apache.axiom.om.impl.common.OMContentHandler;
 import org.apache.axiom.om.impl.common.SAXResultContentHandler;
 import org.apache.axiom.om.impl.common.builder.StAXHelper;
 import org.apache.axiom.om.impl.common.serializer.pull.OMXMLStreamReaderExAdapter;
@@ -267,7 +267,7 @@ public aspect AxiomContainerSupport {
     }
 
     public final SAXResult AxiomContainer.getSAXResult() {
-        OMContentHandler handler = new OMContentHandler(new SAXResultContentHandler(this), true);
+        XmlHandlerContentHandler handler = new XmlHandlerContentHandler(new SAXResultContentHandler(this), true);
         SAXResult result = new SAXResult();
         result.setHandler(handler);
         result.setLexicalHandler(handler);