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() {