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/23 00:00:15 UTC

svn commit: r1731757 - in /webservices/axiom/trunk/aspects: core-aspects/ core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ core-aspects/src/main/java/org/apache/axiom/core/stream/stax/ om-aspects/src/main/java/org/apache/axiom/om/impl/commo...

Author: veithen
Date: Mon Feb 22 23:00:15 2016
New Revision: 1731757

URL: http://svn.apache.org/viewvc?rev=1731757&view=rev
Log:
Move some classes from om-aspects to core-aspects.

Added:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerWriter.java
      - copied, changed from r1731428, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java
      - copied, changed from r1731741, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/XMLStreamWriterNamespaceContextProvider.java
      - copied, changed from r1731737, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/XMLStreamWriterNamespaceContextProvider.java
Removed:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/XMLStreamWriterNamespaceContextProvider.java
Modified:
    webservices/axiom/trunk/aspects/core-aspects/pom.xml
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/XMLReaderImpl.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/mixin/AxiomContainerSupport.aj

Modified: webservices/axiom/trunk/aspects/core-aspects/pom.xml
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/pom.xml?rev=1731757&r1=1731756&r2=1731757&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/pom.xml (original)
+++ webservices/axiom/trunk/aspects/core-aspects/pom.xml Mon Feb 22 23:00:15 2016
@@ -37,5 +37,9 @@
             <groupId>org.aspectj</groupId>
             <artifactId>aspectjrt</artifactId>
         </dependency>
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+        </dependency>
     </dependencies>
 </project>

Copied: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerWriter.java (from r1731428, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerWriter.java?p2=webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerWriter.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java&r1=1731428&r2=1731757&rev=1731757&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/ContentHandlerWriter.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerWriter.java Mon Feb 22 23:00:15 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.om.impl.common.serializer.push.sax;
+package org.apache.axiom.core.stream.sax;
 
 import java.io.IOException;
 import java.io.Writer;

Copied: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java (from r1731741, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java?p2=webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java&r1=1731741&r2=1731757&rev=1731757&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/SAXSerializer.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java Mon Feb 22 23:00:15 2016
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.om.impl.common.serializer.push.sax;
+package org.apache.axiom.core.stream.sax;
 
 import java.io.IOException;
 import java.util.Stack;
@@ -24,16 +24,17 @@ import java.util.Stack;
 import org.apache.axiom.core.CharacterData;
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
-import org.apache.axiom.util.namespace.ScopedNamespaceContext;
 import org.xml.sax.ContentHandler;
 import org.xml.sax.SAXException;
 import org.xml.sax.ext.LexicalHandler;
 import org.xml.sax.helpers.AttributesImpl;
 
-public class SAXSerializer implements XmlHandler {
+public class ContentHandlerXmlHandler implements XmlHandler {
     private final ContentHandler contentHandler;
     private final LexicalHandler lexicalHandler;
-    private final ScopedNamespaceContext nsContext = new ScopedNamespaceContext();
+    private String[] prefixStack = new String[16];
+    private int bindings;
+    private int[] scopeStack = new int[8];
     private boolean startDocumentWritten;
     private boolean autoStartDocument;
     private int depth;
@@ -43,7 +44,7 @@ public class SAXSerializer implements Xm
     private String elementQName;
     private final AttributesImpl attributes = new AttributesImpl();
     
-    public SAXSerializer(ContentHandler contentHandler, LexicalHandler lexicalHandler) {
+    public ContentHandlerXmlHandler(ContentHandler contentHandler, LexicalHandler lexicalHandler) {
         this.contentHandler = contentHandler;
         this.lexicalHandler = lexicalHandler;
     }
@@ -90,12 +91,21 @@ public class SAXSerializer implements Xm
         elementURI = namespaceURI;
         elementLocalName = localName;
         elementQName = getQName(prefix, localName);
-        nsContext.startScope();
-        depth++;
+        if (depth == scopeStack.length) {
+            int[] newScopeStack = new int[scopeStack.length*2];
+            System.arraycopy(scopeStack, 0, newScopeStack, 0, scopeStack.length);
+            scopeStack = newScopeStack;
+        }
+        scopeStack[depth++] = bindings;
     }
 
     public void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException {
-        nsContext.setPrefix(prefix, namespaceURI);
+        if (bindings == prefixStack.length) {
+            String[] newPrefixStack = new String[prefixStack.length*2];
+            System.arraycopy(prefixStack, 0, newPrefixStack, 0, prefixStack.length);
+            prefixStack = newPrefixStack;
+        }
+        prefixStack[bindings++] = prefix;
         try {
             contentHandler.startPrefixMapping(prefix, namespaceURI);
         } catch (SAXException ex) {
@@ -129,11 +139,11 @@ public class SAXSerializer implements Xm
             String elementLocalName = elementNameStack.pop();
             String elementURI = elementNameStack.pop();
             contentHandler.endElement(elementURI, elementLocalName, elementQName);
-            for (int i=nsContext.getBindingsCount()-1; i>=nsContext.getFirstBindingInCurrentScope(); i--) {
-                contentHandler.endPrefixMapping(nsContext.getPrefix(i));
+            for (int i=bindings-1; i>=scopeStack[depth-1]; i--) {
+                contentHandler.endPrefixMapping(prefixStack[i]);
             }
-            nsContext.endScope();
-            if (--depth == 0 && autoStartDocument) {
+            bindings = scopeStack[--depth];
+            if (depth == 0 && autoStartDocument) {
                 contentHandler.endDocument();
             }
         } catch (SAXException ex) {

Copied: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/XMLStreamWriterNamespaceContextProvider.java (from r1731737, webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/XMLStreamWriterNamespaceContextProvider.java)
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/XMLStreamWriterNamespaceContextProvider.java?p2=webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/XMLStreamWriterNamespaceContextProvider.java&p1=webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/XMLStreamWriterNamespaceContextProvider.java&r1=1731737&r2=1731757&rev=1731757&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/stax/XMLStreamWriterNamespaceContextProvider.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/XMLStreamWriterNamespaceContextProvider.java Mon Feb 22 23:00:15 2016
@@ -16,11 +16,10 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.axiom.om.impl.common.serializer.push.stax;
+package org.apache.axiom.core.stream.stax;
 
 import org.apache.axiom.core.stream.NamespaceContextProvider;
 import org.apache.axiom.core.stream.StreamException;
-import org.apache.axiom.om.OMException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -83,7 +82,7 @@ public class XMLStreamWriterNamespaceCon
                 
                 // Neither XML 1.0 nor XML 1.1 allow to associate a prefix with an unqualified name (see also AXIOM-372).
                 if (prefix.length() > 0) {
-                    throw new OMException("Invalid namespace declaration: Prefixed namespace bindings may not be empty.");  
+                    throw new StreamException("Invalid namespace declaration: Prefixed namespace bindings may not be empty.");  
                 }
                 
                 // Get the namespace associated with the prefix.

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/XMLReaderImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/XMLReaderImpl.java?rev=1731757&r1=1731756&r2=1731757&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/XMLReaderImpl.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/serializer/push/sax/XMLReaderImpl.java Mon Feb 22 23:00:15 2016
@@ -23,6 +23,7 @@ import java.io.IOException;
 import org.apache.axiom.core.CoreElement;
 import org.apache.axiom.core.stream.StreamException;
 import org.apache.axiom.core.stream.XmlHandler;
+import org.apache.axiom.core.stream.sax.ContentHandlerXmlHandler;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.om.impl.common.serializer.push.NamespaceContextPreservationFilterHandler;
 import org.apache.axiom.om.impl.intf.AxiomContainer;
@@ -48,7 +49,7 @@ public class XMLReaderImpl extends Abstr
     }
     
     private void parse() throws SAXException {
-        XmlHandler handler = new SAXSerializer(contentHandler, lexicalHandler);
+        XmlHandler handler = new ContentHandlerXmlHandler(contentHandler, lexicalHandler);
         CoreElement contextElement = root.getContextElement();
         if (contextElement != null) {
             handler = new NamespaceContextPreservationFilterHandler(handler, contextElement);

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=1731757&r1=1731756&r2=1731757&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 Mon Feb 22 23:00:15 2016
@@ -41,6 +41,7 @@ import org.apache.axiom.core.stream.Name
 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.core.stream.stax.XMLStreamWriterNamespaceContextProvider;
 import org.apache.axiom.om.NodeUnavailableException;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
@@ -63,7 +64,6 @@ import org.apache.axiom.om.impl.common.s
 import org.apache.axiom.om.impl.common.serializer.push.XsiTypeFilterHandler;
 import org.apache.axiom.om.impl.common.serializer.push.sax.XMLReaderImpl;
 import org.apache.axiom.om.impl.common.serializer.push.stax.StAXSerializer;
-import org.apache.axiom.om.impl.common.serializer.push.stax.XMLStreamWriterNamespaceContextProvider;
 import org.apache.axiom.om.impl.intf.AxiomChildNode;
 import org.apache.axiom.om.impl.intf.AxiomContainer;
 import org.apache.axiom.om.impl.intf.OMFactoryEx;