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/03/25 19:02:53 UTC

svn commit: r1736631 - in /webservices/axiom/trunk: aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/ axiom-api/src/main/java/org/apache/axiom/soap/ implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/ implementation...

Author: veithen
Date: Fri Mar 25 18:02:53 2016
New Revision: 1736631

URL: http://svn.apache.org/viewvc?rev=1736631&view=rev
Log:
AXIOM-362: Support on the fly conversion to SOAPHeaderBlock in remaining SOAPHeader methods.

Modified:
    webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPHeaderSupport.aj
    webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeader.java
    webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderImpl.java
    webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderImpl.java
    webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12HeaderImpl.java
    webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java
    webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderImpl.java
    webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12HeaderImpl.java

Modified: webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPHeaderSupport.aj
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPHeaderSupport.aj?rev=1736631&r1=1736630&r2=1736631&view=diff
==============================================================================
--- webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPHeaderSupport.aj (original)
+++ webservices/axiom/trunk/aspects/om-aspects/src/main/java/org/apache/axiom/soap/impl/mixin/AxiomSOAPHeaderSupport.aj Fri Mar 25 18:02:53 2016
@@ -18,7 +18,9 @@
  */
 package org.apache.axiom.soap.impl.mixin;
 
+import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.List;
 
 import org.apache.axiom.core.Axis;
 import org.apache.axiom.core.ElementMatcher;
@@ -61,4 +63,35 @@ public aspect AxiomSOAPHeaderSupport {
         return coreGetElements(Axis.CHILDREN, AxiomElement.class, new RolePlayerChecker(getSOAPHelper(), rolePlayer, namespace), null, null,
                 SOAPHeaderBlockMapper.INSTANCE, AxiomSemantics.INSTANCE);
     }
+
+    public final Iterator<SOAPHeaderBlock> AxiomSOAPHeader.getHeaderBlocksWithNamespaceURI(String uri) {
+        return coreGetElements(Axis.CHILDREN, AxiomElement.class, ElementMatcher.BY_NAMESPACE_URI, uri, null,
+                SOAPHeaderBlockMapper.INSTANCE, AxiomSemantics.INSTANCE);
+    }
+
+    public final ArrayList<SOAPHeaderBlock> AxiomSOAPHeader.getHeaderBlocksWithNSURI(String nsURI) {
+        ArrayList<SOAPHeaderBlock> result = new ArrayList<SOAPHeaderBlock>();
+        for (Iterator<SOAPHeaderBlock> it = getHeaderBlocksWithNamespaceURI(nsURI); it.hasNext(); ) {
+            result.add(it.next());
+        }
+        return result;
+    }
+
+    private Iterator<SOAPHeaderBlock> AxiomSOAPHeader.extract(Iterator<SOAPHeaderBlock> it) {
+        List<SOAPHeaderBlock> result = new ArrayList<SOAPHeaderBlock>();
+        while (it.hasNext()) {
+            SOAPHeaderBlock headerBlock = it.next();
+            it.remove();
+            result.add(headerBlock);
+        }
+        return result.iterator();
+    }
+
+    public final Iterator<SOAPHeaderBlock> AxiomSOAPHeader.extractHeaderBlocks(String role) {
+        return extract(examineHeaderBlocks(role));
+    }
+
+    public final Iterator<SOAPHeaderBlock> AxiomSOAPHeader.extractAllHeaderBlocks() {
+        return extract(examineAllHeaderBlocks());
+    }
 }

Modified: webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeader.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeader.java?rev=1736631&r1=1736630&r2=1736631&view=diff
==============================================================================
--- webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeader.java (original)
+++ webservices/axiom/trunk/axiom-api/src/main/java/org/apache/axiom/soap/SOAPHeader.java Fri Mar 25 18:02:53 2016
@@ -104,7 +104,7 @@ public interface SOAPHeader extends OMEl
      *         role
      * @see #examineHeaderBlocks(String)
      */
-    Iterator extractHeaderBlocks(String role);
+    Iterator<SOAPHeaderBlock> extractHeaderBlocks(String role);
 
     /**
      * Returns an iterator over all the {@link SOAPHeaderBlock} objects in this {@link SOAPHeader}
@@ -134,15 +134,18 @@ public interface SOAPHeader extends OMEl
      * @return an iterator over all the {@link SOAPHeaderBlock} objects contained by this
      *         {@link SOAPHeader}
      */
-    Iterator extractAllHeaderBlocks();
+    Iterator<SOAPHeaderBlock> extractAllHeaderBlocks();
 
     /**
      * Return all the Headers that has the Namespace URI to given NS URI.
      *
      * @param nsURI
      * @return Returns ArrayList.
+     * @deprecated Use {@link #getHeaderBlocksWithNamespaceURI(String)} instead.
      */
-    ArrayList getHeaderBlocksWithNSURI(String nsURI);
+    ArrayList<SOAPHeaderBlock> getHeaderBlocksWithNSURI(String nsURI);
+
+    Iterator<SOAPHeaderBlock> getHeaderBlocksWithNamespaceURI(String uri);
 
     /**
      * Get the appropriate set of headers for a RolePlayer and a particular namespace.

Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderImpl.java?rev=1736631&r1=1736630&r2=1736631&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/SOAPHeaderImpl.java Fri Mar 25 18:02:53 2016
@@ -19,16 +19,10 @@
 
 package org.apache.axiom.soap.impl.dom;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
 import javax.xml.namespace.QName;
 
-import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.OMNode;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axiom.soap.SOAPProcessingException;
@@ -60,50 +54,4 @@ public abstract class SOAPHeaderImpl ext
     public SOAPHeaderBlock addHeaderBlock(QName qname) throws OMException {
         return addHeaderBlock(qname.getLocalPart(), getOMFactory().createOMNamespace(qname.getNamespaceURI(), qname.getPrefix()));
     }
-
-    public abstract Iterator extractHeaderBlocks(String role);
-
-    public Iterator extractAllHeaderBlocks() {
-        List result = new ArrayList();
-        for (Iterator iter = getChildElements(); iter.hasNext();) {
-            OMElement headerBlock = (OMElement) iter.next();
-            iter.remove();
-            result.add(headerBlock);
-        }
-        return result.iterator();
-    }
-
-    public ArrayList getHeaderBlocksWithNSURI(String nsURI) {
-        ArrayList headers = null;
-        OMNode node;
-        OMElement header = this.getFirstElement();
-
-        if (header != null) {
-            headers = new ArrayList();
-        }
-
-        node = header;
-
-        while (node != null) {
-            if (node.getType() == OMNode.ELEMENT_NODE) {
-                header = (OMElement) node;
-                OMNamespace namespace = header.getNamespace();
-                if (nsURI == null) {
-                    if (namespace == null) {
-                        headers.add(header);
-                    }
-                } else {
-                    if (namespace != null) {
-                        if (nsURI.equals(namespace.getNamespaceURI())) {
-                            headers.add(header);
-                        }
-                    }
-                }
-            }
-            node = node.getNextOMSibling();
-
-        }
-        return headers;
-
-    }
 }

Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderImpl.java?rev=1736631&r1=1736630&r2=1736631&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap11/SOAP11HeaderImpl.java Fri Mar 25 18:02:53 2016
@@ -19,23 +19,9 @@
 
 package org.apache.axiom.soap.impl.dom.soap11;
 
-import java.util.Iterator;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.impl.traverse.OMChildrenWithSpecificAttributeIterator;
-import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.impl.dom.SOAPHeaderImpl;
 import org.apache.axiom.soap.impl.intf.AxiomSOAP11Header;
 
 public class SOAP11HeaderImpl extends SOAPHeaderImpl implements AxiomSOAP11Header {
-    public Iterator extractHeaderBlocks(String role) {
-        return new OMChildrenWithSpecificAttributeIterator(getFirstOMChild(),
-                                                           new QName(
-                                                                   SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI,
-                                                                   SOAP11Constants.ATTR_ACTOR),
-                                                           role,
-                                                           true);
 
-    }
 }

Modified: webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12HeaderImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12HeaderImpl.java?rev=1736631&r1=1736630&r2=1736631&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12HeaderImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-dom/src/main/java/org/apache/axiom/soap/impl/dom/soap12/SOAP12HeaderImpl.java Fri Mar 25 18:02:53 2016
@@ -19,22 +19,9 @@
 
 package org.apache.axiom.soap.impl.dom.soap12;
 
-import java.util.Iterator;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.impl.traverse.OMChildrenWithSpecificAttributeIterator;
-import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.impl.dom.SOAPHeaderImpl;
 import org.apache.axiom.soap.impl.intf.AxiomSOAP12Header;
 
 public class SOAP12HeaderImpl extends SOAPHeaderImpl implements AxiomSOAP12Header {
-    public Iterator extractHeaderBlocks(String role) {
-        return new OMChildrenWithSpecificAttributeIterator(getFirstOMChild(),
-                                                           new QName(
-                                                                   SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI,
-                                                                   SOAP12Constants.SOAP_ROLE),
-                                                           role,
-                                                           true);
-    }
+
 }

Modified: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java?rev=1736631&r1=1736630&r2=1736631&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/SOAPHeaderImpl.java Fri Mar 25 18:02:53 2016
@@ -19,16 +19,10 @@
 
 package org.apache.axiom.soap.impl.llom;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
 import javax.xml.namespace.QName;
 
-import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.OMNode;
 import org.apache.axiom.soap.SOAPFactory;
 import org.apache.axiom.soap.SOAPHeaderBlock;
 import org.apache.axiom.soap.SOAPProcessingException;
@@ -66,52 +60,6 @@ public abstract class SOAPHeaderImpl ext
         return addHeaderBlock(qname.getLocalPart(), getOMFactory().createOMNamespace(qname.getNamespaceURI(), qname.getPrefix()));
     }
 
-    public abstract Iterator extractHeaderBlocks(String role);
-
-    public Iterator extractAllHeaderBlocks() {
-        List result = new ArrayList();
-        for (Iterator iter = getChildElements(); iter.hasNext();) {
-            OMElement headerBlock = (OMElement) iter.next();
-            iter.remove();
-            result.add(headerBlock);
-        }
-        return result.iterator();
-    }
-
-    public ArrayList getHeaderBlocksWithNSURI(String nsURI) {
-        ArrayList headers = null;
-        OMNode node;
-        OMElement header = this.getFirstElement();
-
-        if (header != null) {
-            headers = new ArrayList();
-        }
-
-        node = header;
-
-        while (node != null) {
-            if (node.getType() == OMNode.ELEMENT_NODE) {
-                header = (OMElement) node;
-                OMNamespace namespace = header.getNamespace();
-                if (nsURI == null) {
-                    if (namespace == null) {
-                        headers.add(header);
-                    }
-                } else {
-                    if (namespace != null) {
-                        if (nsURI.equals(namespace.getNamespaceURI())) {
-                            headers.add(header);
-                        }
-                    }
-                }
-            }
-            node = node.getNextOMSibling();
-
-        }
-        return headers;
-
-    }
-
     public static String exceptionToString(Throwable e) {
         java.io.StringWriter sw = new java.io.StringWriter();
         java.io.BufferedWriter bw = new java.io.BufferedWriter(sw);

Modified: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderImpl.java?rev=1736631&r1=1736630&r2=1736631&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap11/SOAP11HeaderImpl.java Fri Mar 25 18:02:53 2016
@@ -19,24 +19,9 @@
 
 package org.apache.axiom.soap.impl.llom.soap11;
 
-import java.util.Iterator;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.impl.traverse.OMChildrenWithSpecificAttributeIterator;
-import org.apache.axiom.soap.SOAP11Constants;
 import org.apache.axiom.soap.impl.intf.AxiomSOAP11Header;
 import org.apache.axiom.soap.impl.llom.SOAPHeaderImpl;
 
 public class SOAP11HeaderImpl extends SOAPHeaderImpl implements AxiomSOAP11Header {
-    public Iterator extractHeaderBlocks(String role) {
-        return new OMChildrenWithSpecificAttributeIterator(getFirstOMChild(),
-                                                           new QName(
-                                                                   SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI,
-                                                                   SOAP11Constants.ATTR_ACTOR),
-                                                           role,
-                                                           true);
-
-    }
 
 }

Modified: webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12HeaderImpl.java
URL: http://svn.apache.org/viewvc/webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12HeaderImpl.java?rev=1736631&r1=1736630&r2=1736631&view=diff
==============================================================================
--- webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12HeaderImpl.java (original)
+++ webservices/axiom/trunk/implementations/axiom-impl/src/main/java/org/apache/axiom/soap/impl/llom/soap12/SOAP12HeaderImpl.java Fri Mar 25 18:02:53 2016
@@ -19,23 +19,9 @@
 
 package org.apache.axiom.soap.impl.llom.soap12;
 
-import java.util.Iterator;
-
-import javax.xml.namespace.QName;
-
-import org.apache.axiom.om.impl.traverse.OMChildrenWithSpecificAttributeIterator;
-import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.impl.intf.AxiomSOAP12Header;
 import org.apache.axiom.soap.impl.llom.SOAPHeaderImpl;
 
 public class SOAP12HeaderImpl extends SOAPHeaderImpl implements AxiomSOAP12Header {
-    public Iterator extractHeaderBlocks(String role) {
-        return new OMChildrenWithSpecificAttributeIterator(getFirstOMChild(),
-                                                           new QName(
-                                                                   SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI,
-                                                                   SOAP12Constants.SOAP_ROLE),
-                                                           role,
-                                                           true);
-    }
 
 }