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());
}