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/10/09 15:44:19 UTC

svn commit: r1763989 - in /webservices/axiom/trunk/aspects: core-aspects/src/main/java/org/apache/axiom/core/impl/builder/ core-aspects/src/main/java/org/apache/axiom/core/stream/ core-aspects/src/main/java/org/apache/axiom/core/stream/dom/ core-aspect...

Author: veithen
Date: Sun Oct  9 15:44:19 2016
New Revision: 1763989

URL: http://svn.apache.org/viewvc?rev=1763989&view=rev
Log:
AXIOM-487: Add support for namespace unaware attributes to XmlHandler.

Modified:
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
    webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuildableContext.java Sun Oct  9 15:44:19 2016
@@ -31,6 +31,7 @@ import org.apache.axiom.core.CoreModelEx
 import org.apache.axiom.core.CoreModelStreamException;
 import org.apache.axiom.core.CoreNSAwareAttribute;
 import org.apache.axiom.core.CoreNSAwareElement;
+import org.apache.axiom.core.CoreNSUnawareAttribute;
 import org.apache.axiom.core.CoreNamespaceDeclaration;
 import org.apache.axiom.core.CoreParentNode;
 import org.apache.axiom.core.CoreProcessingInstruction;
@@ -211,6 +212,24 @@ final class BuildableContext extends Con
             try {
                 attr.coreSetCharacterData(value, null);
             } catch (CoreModelException ex) {
+                throw new CoreModelStreamException(ex);
+            }
+            attr.coreSetType(type);
+            attr.coreSetSpecified(specified);
+            ((CoreElement)target).coreAppendAttribute(attr);
+        }
+    }
+    
+    @Override
+    void processAttribute(String name, String value, String type, boolean specified) throws StreamException {
+        if (passThroughHandler != null) {
+            passThroughHandler.processAttribute(name, value, type, specified);
+        } else {
+            CoreNSUnawareAttribute attr = builderHandler.nodeFactory.createNode(CoreNSUnawareAttribute.class);
+            attr.coreSetName(name);
+            try {
+                attr.coreSetCharacterData(value, null);
+            } catch (CoreModelException ex) {
                 throw new CoreModelStreamException(ex);
             }
             attr.coreSetType(type);

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/BuilderHandler.java Sun Oct  9 15:44:19 2016
@@ -163,6 +163,11 @@ final class BuilderHandler implements Xm
         context.processAttribute(namespaceURI, localName, prefix, value, type, specified);
     }
     
+    @Override
+    public void processAttribute(String name, String value, String type, boolean specified) throws StreamException {
+        context.processAttribute(name, value, type, specified);
+    }
+    
     public void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException {
         context.processNamespaceDeclaration(prefix, namespaceURI);
     }

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/Context.java Sun Oct  9 15:44:19 2016
@@ -54,6 +54,8 @@ abstract class Context {
     
     abstract void processAttribute(String namespaceURI, String localName, String prefix, String value, String type, boolean specified) throws StreamException;
     
+    abstract void processAttribute(String name, String value, String type, boolean specified) throws StreamException;
+    
     abstract void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException;
     
     abstract void attributesCompleted() throws StreamException;

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/impl/builder/UnwrappingContext.java Sun Oct  9 15:44:19 2016
@@ -72,6 +72,13 @@ final class UnwrappingContext extends Co
     }
 
     @Override
+    void processAttribute(String name, String value, String type, boolean specified)
+            throws StreamException {
+        // TODO Auto-generated method stub
+        
+    }
+
+    @Override
     void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException {
         // TODO Auto-generated method stub
         

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/NullXmlHandler.java Sun Oct  9 15:44:19 2016
@@ -52,6 +52,11 @@ public final class NullXmlHandler implem
     }
 
     @Override
+    public void processAttribute(String name, String value, String type, boolean specified)
+            throws StreamException {
+    }
+
+    @Override
     public void processNamespaceDeclaration(String prefix, String namespaceURI)
             throws StreamException {
     }

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandler.java Sun Oct  9 15:44:19 2016
@@ -51,10 +51,10 @@ public interface XmlHandler {
     void endElement() throws StreamException;
     
     /**
-     * Add the given attribute to the element.
+     * Add the given namespace aware attribute to the element.
      * 
      * @param namespaceURI
-     *            the namespace URI or the attribute; never <code>null</code>
+     *            the namespace URI of the attribute; never <code>null</code>
      * @param localName
      *            the local name of the attribute; never <code>null</code>
      * @param prefix
@@ -68,6 +68,19 @@ public interface XmlHandler {
     void processAttribute(String namespaceURI, String localName, String prefix, String value, String type, boolean specified) throws StreamException;
     
     /**
+     * Add the given namespece unaware attribute to the element.
+     * 
+     * @param name
+     *            the name of the attribute; never <code>null</code>
+     * @param value
+     *            the value of the attribute; never <code>null</code>
+     * @param type
+     *            the attribute type (e.g. <tt>CDATA</tt>); never <code>null</code>
+     * @throws StreamException
+     */
+    void processAttribute(String name, String value, String type, boolean specified) throws StreamException;
+    
+    /**
      * Add the given namespace declaration to the element.
      * 
      * @param prefix

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/XmlHandlerWrapper.java Sun Oct  9 15:44:19 2016
@@ -64,6 +64,12 @@ public class XmlHandlerWrapper implement
     }
 
     @Override
+    public void processAttribute(String name, String value, String type, boolean specified)
+            throws StreamException {
+        parent.processAttribute(name, value, type, specified);
+    }
+
+    @Override
     public void processNamespaceDeclaration(String prefix, String namespaceURI)
             throws StreamException {
         parent.processNamespaceDeclaration(prefix, namespaceURI);

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/dom/DOMReader.java Sun Oct  9 15:44:19 2016
@@ -149,8 +149,7 @@ final class DOMReader implements XmlRead
                             Attr attr = (Attr)attributes.item(i);
                             String attrLocalName = attr.getLocalName();
                             if (attrLocalName == null) {
-                                // TODO
-                                throw new UnsupportedOperationException();
+                                handler.processAttribute(attr.getName(), attr.getValue(), "CDATA", attr.getSpecified());
                             } else {
                                 String namespaceURI = attr.getNamespaceURI();
                                 if (XMLConstants.XMLNS_ATTRIBUTE_NS_URI.equals(namespaceURI)) {

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/sax/ContentHandlerXmlHandler.java Sun Oct  9 15:44:19 2016
@@ -124,6 +124,13 @@ public class ContentHandlerXmlHandler im
         attributes.addAttribute(namespaceURI, localName, getQName(prefix, localName), type, value);
     }
 
+    @Override
+    public void processAttribute(String name, String value, String type, boolean specified)
+            throws StreamException {
+        // TODO
+        throw new UnsupportedOperationException();
+    }
+
     public void attributesCompleted() throws StreamException {
         try {
             contentHandler.startElement(elementURI, elementLocalName, elementQName, attributes);

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/serializer/Serializer.java Sun Oct  9 15:44:19 2016
@@ -810,6 +810,11 @@ public final class Serializer extends Se
     }
 
     @Override
+    public void processAttribute(String name, String value, String type, boolean specified) throws StreamException {
+        writeAttribute("", name, value);
+    }
+
+    @Override
     public void attributesCompleted() throws StreamException {
     }
 

Modified: webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java (original)
+++ webservices/axiom/trunk/aspects/core-aspects/src/main/java/org/apache/axiom/core/stream/stax/pull/StAXPivot.java Sun Oct  9 15:44:19 2016
@@ -319,6 +319,13 @@ public final class StAXPivot implements
     }
 
     @Override
+    public void processAttribute(String name, String value, String type, boolean specified)
+            throws StreamException {
+        // TODO
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
     public void processNamespaceDeclaration(String prefix, String namespaceURI) throws StreamException {
         putNamespaceDeclaration(scopeStack[depth+1]++, prefix, namespaceURI);
     }

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/common/SAXResultContentHandler.java Sun Oct  9 15:44:19 2016
@@ -98,6 +98,13 @@ public final class SAXResultContentHandl
     }
 
     @Override
+    public void processAttribute(String name, String value, String type, boolean specified)
+            throws StreamException {
+        // TODO
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
     public void processNamespaceDeclaration(String prefix, String namespaceURI) {
         if (prefix.isEmpty()) {
             ((OMElement)target).declareDefaultNamespace(namespaceURI);

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java?rev=1763989&r1=1763988&r2=1763989&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/om/impl/stream/stax/push/XMLStreamWriterHandler.java Sun Oct  9 15:44:19 2016
@@ -114,6 +114,15 @@ public class XMLStreamWriterHandler impl
         }
     }
 
+    @Override
+    public void processAttribute(String name, String value, String type, boolean specified) throws StreamException {
+        try {
+            writer.writeAttribute(name, value);
+        } catch (XMLStreamException ex) {
+            throw new StreamException(ex);
+        }
+    }
+
     public void attributesCompleted() throws StreamException {
         // Nothing to do here
     }