You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mi...@apache.org on 2009/04/24 01:21:19 UTC

svn commit: r768094 - in /ode/branches/APACHE_ODE_1.X: axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java

Author: midon
Date: Thu Apr 23 23:21:19 2009
New Revision: 768094

URL: http://svn.apache.org/viewvc?rev=768094&view=rev
Log:
ODE-591: expect a valid request but do not fail if namespaces are not correct.

Modified:
    ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
    ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java

Modified: ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java?rev=768094&r1=768093&r2=768094&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java (original)
+++ ode/branches/APACHE_ODE_1.X/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java Thu Apr 23 23:21:19 2009
@@ -47,6 +47,7 @@
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.axis2.receivers.AbstractMessageReceiver;
@@ -61,6 +62,7 @@
 import org.apache.ode.bpel.iapi.ProcessStore;
 import org.apache.ode.il.OMUtils;
 import org.apache.ode.utils.fs.FileUtils;
+import org.apache.ode.utils.Namespaces;
 
 /**
  * Axis wrapper for process deployment.
@@ -110,9 +112,30 @@
             try {
                 if (operation.equals("deploy")) {
                     OMElement deployElement = messageContext.getEnvelope().getBody().getFirstElement();
-                    OMElement namePart = deployElement.getFirstElement();
-                    OMElement packagePart = deployElement.getFirstChildWithName(new QName("http://www.apache.org/ode/pmapi/types/2006/08/02/", "package"));
-                    OMElement zip = (packagePart == null) ? null : packagePart.getFirstChildWithName(new QName("http://www.apache.org/ode/pmapi/types/2006/08/02/", "zip"));
+                    OMElement namePart = deployElement.getFirstChildWithName(new QName(null, "name"));
+                    OMElement packagePart = deployElement.getFirstChildWithName(new QName(null, "package"));
+
+                    // "be liberal in what you accept from others"
+                    if (packagePart == null) {
+                        packagePart = OMUtils.getFirstChildWithName(deployElement, "package");
+                        if (packagePart != null && __log.isWarnEnabled()) {
+                            __log.warn("Invalid incoming request detected for operation " + messageContext.getAxisOperation().getName() + ". Package part should have no namespace but has " + packagePart.getQName().getNamespaceURI());
+                        }
+                    }
+
+                    OMElement zip = null;
+                    if (packagePart != null) {
+                        zip = packagePart.getFirstChildWithName(new QName(Namespaces.ODE_DEPLOYAPI_NS, "zip"));
+                        // "be liberal in what you accept from others"
+                        if (zip == null) {
+                            zip = OMUtils.getFirstChildWithName(packagePart, "zip");
+                            if (zip != null && __log.isWarnEnabled()) {
+                                String ns = zip.getQName().getNamespaceURI() == null || zip.getQName().getNamespaceURI().length() == 0 ? "empty" : zip.getQName().getNamespaceURI();
+                                __log.warn("Invalid incoming request detected for operation " + messageContext.getAxisOperation().getName() + ". <zip/> element namespace should be " + Namespaces.ODE_DEPLOYAPI_NS + " but was " + ns);
+                            }
+                        }
+                    }
+
                     if (zip == null || packagePart == null)
                         throw new OdeFault("Your message should contain an element named 'package' with a 'zip' element"); 
 

Modified: ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java
URL: http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java?rev=768094&r1=768093&r2=768094&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-epr/src/main/java/org/apache/ode/il/OMUtils.java Thu Apr 23 23:21:19 2009
@@ -52,6 +52,18 @@
  */
 public class OMUtils {
 
+    public static OMElement getFirstChildWithName(OMElement parent, String name) {
+        if (parent == null)
+            throw new IllegalArgumentException("null parent");
+        if (name == null)
+            throw new IllegalArgumentException("null name");
+        for (Iterator it = parent.getChildElements(); it.hasNext();) {
+            OMElement e = (OMElement) it.next();
+            if (name.equals(e.getQName().getLocalPart())) return e;
+        }
+        return null;
+    }
+
     public static Element toDOM(OMElement element) {
         return toDOM(element, DOMUtils.newDocument());
     }