Author: rr
Date: Wed Mar 17 11:01:02 2010
New Revision: 924222

URL: http://svn.apache.org/viewvc?rev=924222&view=rev
Log:
ODE-758: Added switch for disabling P2P communication

Modified:
    
ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java
    
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
    
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java
    
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
    
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java
    
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java
    ode/branches/APACHE_ODE_1.X/bpel-schemas/src/main/xsd/dd.xsd
    
ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java?rev=924222&r1=924221&r2=924222&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java
 Wed Mar 17 11:01:02 2010
@@ -45,6 +45,17 @@ import org.w3c.dom.Node;
  */
 public interface ProcessConf {
 
+    public static class PartnerRoleConfig {
+        public final OFailureHandling failureHandling;
+        public final boolean usePeer2Peer;
+        
+        public PartnerRoleConfig(OFailureHandling failureHandling, boolean 
usePeer2Peer) {
+            super();
+            this.failureHandling = failureHandling;
+            this.usePeer2Peer = usePeer2Peer;
+        }
+    }
+    
     /**
      * Get the process id, generally the same as the type.
      * @return process id.
@@ -162,7 +173,7 @@ public interface ProcessConf {
      * Returns failure handling info for invokes.
      * @return
      */
-    public Map<String, OFailureHandling> getInvokeFailureHandling();
+    public Map<String, PartnerRoleConfig> getPartnerRoleConfig();
     
     /**
      * Tells if the service is shareable

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?rev=924222&r1=924221&r2=924222&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
 Wed Mar 17 11:01:02 2010
@@ -70,6 +70,7 @@ import org.apache.ode.bpel.iapi.Schedule
 import org.apache.ode.bpel.iapi.MessageExchange.FailureType;
 import org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern;
 import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
+import org.apache.ode.bpel.iapi.ProcessConf.PartnerRoleConfig;
 import org.apache.ode.bpel.intercept.InterceptorInvoker;
 import org.apache.ode.bpel.memdao.ProcessInstanceDaoImpl;
 import org.apache.ode.bpel.o.OFailureHandling;
@@ -792,7 +793,7 @@ public class BpelRuntimeContextImpl impl
         List<BpelProcess> p2pProcesses = null;
         
         Endpoint partnerEndpoint = 
_bpelProcess.getInitialPartnerRoleEndpoint(partnerLink.partnerLink);
-        if (partnerEndpoint != null)
+        if (getConfigForPartnerLink(partnerLink.partnerLink).usePeer2Peer && 
partnerEndpoint != null)
             p2pProcesses = 
_bpelProcess.getEngine().route(partnerEndpoint.serviceName, mex.getRequest());
 
         if (p2pProcesses != null && !p2pProcesses.isEmpty()) {
@@ -1515,8 +1516,13 @@ public class BpelRuntimeContextImpl impl
         return _bpelProcess._classLoader;
     }
 
-    public OFailureHandling getFailureHandlingForPartnerLink(OPartnerLink 
pLink) {
-        return 
_bpelProcess.getConf().getInvokeFailureHandling().get(pLink.name);
+    public PartnerRoleConfig getConfigForPartnerLink(OPartnerLink pLink) {
+        PartnerRoleConfig c = 
_bpelProcess.getConf().getPartnerRoleConfig().get(pLink.name);
+        if (c == null) {
+            return new PartnerRoleConfig(null, true);
+        } else {
+            return c;
+        }
     }
 
 }

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java?rev=924222&r1=924221&r2=924222&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkPartnerRoleImpl.java
 Wed Mar 17 11:01:02 2010
@@ -33,6 +33,8 @@ class PartnerLinkPartnerRoleImpl extends
     Endpoint _initialPartner;
 
     public PartnerRoleChannel _channel;
+    
+    public boolean usePeer2Peer = true;
 
     PartnerLinkPartnerRoleImpl(BpelProcess process, OPartnerLink plink, 
Endpoint initialPartner) {
         super(process, plink);

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java?rev=924222&r1=924221&r2=924222&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
 Wed Mar 17 11:01:02 2010
@@ -242,7 +242,7 @@ class ACTIVITYGUARD extends ACTIVITY {
                 private OFailureHandling getFailureHandling() {
                     if (_oactivity instanceof OInvoke) {
                         OInvoke _oinvoke = (OInvoke) _oactivity;
-                        OFailureHandling f = 
getBpelRuntimeContext().getFailureHandlingForPartnerLink(_oinvoke.partnerLink);
+                        OFailureHandling f = 
getBpelRuntimeContext().getConfigForPartnerLink(_oinvoke.partnerLink).failureHandling;
                         if (f != null) return f;
                     }
                     return _oactivity.getFailureHandling();

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java?rev=924222&r1=924221&r2=924222&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/BpelRuntimeContext.java
 Wed Mar 17 11:01:02 2010
@@ -20,7 +20,6 @@ package org.apache.ode.bpel.runtime;
 
 import java.util.Collection;
 import java.util.Date;
-import java.util.Map;
 import java.net.URI;
 
 import javax.wsdl.Operation;
@@ -29,7 +28,6 @@ import javax.xml.namespace.QName;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.evt.ProcessInstanceEvent;
-import org.apache.ode.bpel.o.OFailureHandling;
 import org.apache.ode.bpel.o.OPartnerLink;
 import org.apache.ode.bpel.o.OProcess;
 import org.apache.ode.bpel.o.OScope;
@@ -40,6 +38,7 @@ import org.apache.ode.bpel.runtime.chann
 import org.apache.ode.bpel.runtime.channels.PickResponseChannel;
 import org.apache.ode.bpel.runtime.channels.TimerResponseChannel;
 import org.apache.ode.bpel.evar.ExternalVariableModuleException;
+import org.apache.ode.bpel.iapi.ProcessConf.PartnerRoleConfig;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -115,7 +114,7 @@ public interface BpelRuntimeContext {
      * @param pLink
      * @return
      */
-    OFailureHandling getFailureHandlingForPartnerLink(OPartnerLink pLink);
+    PartnerRoleConfig getConfigForPartnerLink(OPartnerLink pLink);
 
     /**
      * Fetches our session id associated with the partner link instance.  This 
will always return a

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java?rev=924222&r1=924221&r2=924222&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/CoreBpelTest.java
 Wed Mar 17 11:01:02 2010
@@ -54,6 +54,7 @@ import org.apache.ode.bpel.runtime.chann
 import org.apache.ode.jacob.vpu.ExecutionQueueImpl;
 import org.apache.ode.jacob.vpu.JacobVPU;
 import org.apache.ode.bpel.evar.ExternalVariableModuleException;
+import org.apache.ode.bpel.iapi.ProcessConf.PartnerRoleConfig;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -468,7 +469,7 @@ public class CoreBpelTest extends TestCa
         // TODO Auto-generated method stub
     }
 
-    public OFailureHandling getFailureHandlingForPartnerLink(OPartnerLink 
pLink) {
-        return null;
+    public PartnerRoleConfig getConfigForPartnerLink(OPartnerLink pLink) {
+        return new PartnerRoleConfig(null, true);
     }
 }

Modified: ode/branches/APACHE_ODE_1.X/bpel-schemas/src/main/xsd/dd.xsd
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-schemas/src/main/xsd/dd.xsd?rev=924222&r1=924221&r2=924222&view=diff
==============================================================================
--- ode/branches/APACHE_ODE_1.X/bpel-schemas/src/main/xsd/dd.xsd (original)
+++ ode/branches/APACHE_ODE_1.X/bpel-schemas/src/main/xsd/dd.xsd Wed Mar 17 
11:01:02 2010
@@ -126,7 +126,7 @@
     </xs:complexType>
 
     <xs:complexType name="tInvoke">
-        <xs:choice>
+        <xs:sequence>
             <xs:element name="service" minOccurs="1" maxOccurs="1" 
type="dd:tService"/>
             <xs:element name="binding" minOccurs="0" maxOccurs="1">
                 <xs:complexType>
@@ -134,8 +134,9 @@
                 </xs:complexType>
             </xs:element>
             <xs:element ref="ext:failureHandling" minOccurs="0"/>
-        </xs:choice>
+        </xs:sequence>
         <xs:attribute name="partnerLink" type="xs:string" use="required"/>
+        <xs:attribute name="usePeer2Peer" type="xs:boolean" use="optional" 
default="true"/>
     </xs:complexType>
 
     <xs:complexType name="tService">

Modified: 
ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
URL: 
http://svn.apache.org/viewvc/ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java?rev=924222&r1=924221&r2=924222&view=diff
==============================================================================
--- 
ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
 (original)
+++ 
ode/branches/APACHE_ODE_1.X/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
 Wed Mar 17 11:01:02 2010
@@ -50,6 +50,7 @@ import org.apache.ode.bpel.iapi.ProcessC
 import org.apache.ode.bpel.iapi.ProcessState;
 import org.apache.ode.bpel.iapi.EndpointReferenceContext;
 import org.apache.ode.bpel.iapi.EndpointReference;
+import org.apache.ode.bpel.iapi.ProcessConf.PartnerRoleConfig;
 import org.apache.ode.bpel.o.OFailureHandling;
 import org.apache.ode.store.DeploymentUnitDir.CBPInfo;
 import org.apache.ode.utils.CronExpression;
@@ -74,7 +75,7 @@ public class ProcessConfImpl implements 
     private File _configDir;
     private final Map<QName, Node> _props;
     private final HashMap<String, Endpoint> _partnerRoleInitialValues = new 
HashMap<String, Endpoint>();
-    private final HashMap<String, OFailureHandling> 
_partnerRoleFailureHandling = new HashMap<String, OFailureHandling>();
+    private final HashMap<String, PartnerRoleConfig> _partnerRoleConfig = new 
HashMap<String, PartnerRoleConfig>();
 
     private final HashMap<String, Endpoint> _myRoleEndpoints = new 
HashMap<String, Endpoint>();
     private final ArrayList<QName> _sharedServices = new ArrayList<QName>();
@@ -169,14 +170,19 @@ public class ProcessConfImpl implements 
                 _partnerRoleInitialValues.put(plinkName, new 
Endpoint(service.getName(), service.getPort()));
                 
                 {
+                    OFailureHandling g = null;
+                    
                     if (invoke.isSetFailureHandling()) {
                         FailureHandling f = invoke.getFailureHandling();
-                        OFailureHandling g = new OFailureHandling();
+                        g = new OFailureHandling();
                         if (f.isSetFaultOnFailure()) g.faultOnFailure = 
f.getFaultOnFailure();
                         if (f.isSetRetryDelay()) g.retryDelay = 
f.getRetryDelay();
                         if (f.isSetRetryFor()) g.retryFor = f.getRetryFor();
-                        _partnerRoleFailureHandling.put(plinkName, g);
                     }
+                    
+                    PartnerRoleConfig c = new PartnerRoleConfig(g, 
invoke.getUsePeer2Peer());
+                    __log.debug("PartnerRoleConfig for " + plinkName + " " + 
c.failureHandling + " usePeer2Peer: " + c.usePeer2Peer);
+                    _partnerRoleConfig.put(plinkName, c);
                 }
             }
         }
@@ -297,8 +303,8 @@ public class ProcessConfImpl implements 
         return Collections.unmodifiableMap(_partnerRoleInitialValues);
     }
 
-    public Map<String, OFailureHandling> getInvokeFailureHandling() {
-        return Collections.unmodifiableMap(_partnerRoleFailureHandling);
+    public Map<String, PartnerRoleConfig> getPartnerRoleConfig() {
+        return Collections.unmodifiableMap(_partnerRoleConfig);
     }
 
     public Map<String, Endpoint> getProvideEndpoints() {


Reply via email to