Author: vanto
Date: Sun Aug 9 15:31:00 2009
New Revision: 802551
URL: http://svn.apache.org/viewvc?rev=802551&view=rev
Log:
Merge branch 'ODE-606' into trunk
Modified:
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/extension/ExtensionOperation.java
ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java
Modified:
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/extension/ExtensionOperation.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/extension/ExtensionOperation.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/extension/ExtensionOperation.java
(original)
+++
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/extension/ExtensionOperation.java
Sun Aug 9 15:31:00 2009
@@ -44,10 +44,11 @@
* access to <code>element</code> if necessary.
*
* @param context injected ExtensionContext
+ * @param cid channel id (needed for async completion)
* @param element the extension element (child of
<code>extensionActivity</code>
* or <code>extensionAssignOperation</code>
* @throws FaultException
*/
- void run(Object context, Element element) throws FaultException;
+ void run(Object context, String cid, Element element) throws
FaultException;
}
Modified:
ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java
(original)
+++
ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java
Sun Aug 9 15:31:00 2009
@@ -100,16 +100,16 @@
throw new UnsupportedOperationException("This method is not
available in this mock implementation.");
}
- public void complete() {
+ public void complete(String cid) {
this.completed = true;
}
- public void completeWithFault(Throwable t) {
+ public void completeWithFault(String cid, Throwable t) {
this.completed = true;
this.faulted = true;
}
- public void completeWithFault(FaultException fault) {
+ public void completeWithFault(String cid, FaultException fault) {
this.completed = true;
this.faulted = true;
this.fault = fault;
Modified:
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java
(original)
+++
ode/trunk/bpel-test/src/test/java/org/apache/ode/test/ExtensibilityTest.java
Sun Aug 9 15:31:00 2009
@@ -122,17 +122,17 @@
public static class TestExtensionActivity implements ExtensionOperation
{
private static final long serialVersionUID = 1L;
- public void run(Object context,
+ public void run(Object context, String cid,
Element element) throws FaultException {
TestExtensionBundle.wasExecuted = true;
- ((ExtensionContext)context).complete();
+ ((ExtensionContext)context).complete(cid);
}
}
public static class TestExtensionAssignOperation implements
ExtensionOperation {
private static final long serialVersionUID = 1L;
- public void run(Object contexto, Element element)
+ public void run(Object contexto, String cid, Element element)
throws FaultException {
ExtensionContext context = (ExtensionContext) contexto;
//Node val = context.readVariable("myVar");
@@ -144,7 +144,7 @@
e.printStackTrace();
Assert.fail();
} finally {
- context.complete();
+ context.complete(cid);
}
}
}
@@ -152,10 +152,10 @@
public static class TestExtensionValidatorActivity extends
AbstractAsyncExtensionOperation {
private static final long serialVersionUID = 1L;
- public void run(Object context,
+ public void run(Object context, String cid,
Element element) throws FaultException {
TestExtensionBundle.wasExecuted = true;
- ((ExtensionContext)context).complete();
+ ((ExtensionContext)context).complete(cid);
}
public void validate(CompilerContext context, ExtensibleElement
element)
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java
(original)
+++
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java
Sun Aug 9 15:31:00 2009
@@ -29,7 +29,7 @@
*/
public abstract class AbstractAsyncExtensionOperation implements
ExtensionOperation {
- public abstract void run(Object context, Element element)
+ public abstract void run(Object context, String cid, Element element)
throws FaultException;
}
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java
(original)
+++
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java
Sun Aug 9 15:31:00 2009
@@ -31,16 +31,16 @@
protected abstract void runSync(ExtensionContext context, Element
element) throws FaultException;
- public void run(Object contexto, Element element)
+ public void run(Object contexto, String cid, Element element)
throws FaultException {
ExtensionContext context = (ExtensionContext) contexto;
try {
runSync(context, element);
- context.complete();
+ context.complete(cid);
} catch (FaultException f) {
- context.completeWithFault(f);
+ context.completeWithFault(cid, f);
} catch (Exception e) {
- context.completeWithFault(e);
+ context.completeWithFault(cid, e);
}
}
}
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
(original)
+++
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
Sun Aug 9 15:31:00 2009
@@ -139,19 +139,19 @@
/**
* Marks the currently executed activity as successfully completed.
*/
- void complete();
+ void complete(String cid);
/**
* Marks the currently executed activity as faulted.
* @param t an exception to be reported as the fault cause.
*/
- void completeWithFault(Throwable t);
+ void completeWithFault(String cid, Throwable t);
/**
* Marks the currently executed activity as faulted.
* @param fault a fault.
*/
- void completeWithFault(FaultException fault);
+ void completeWithFault(String cid, FaultException fault);
/*
* Low-level-methods
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java
(original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java
Sun Aug 9 15:31:00 2009
@@ -18,26 +18,25 @@
*/
package org.apache.ode.bpel.rtrep.v2;
-import java.util.List;
import java.net.URI;
import javax.xml.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.ode.bpel.common.FaultException;
import org.apache.ode.bpel.common.CorrelationKey;
+import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.evar.ExternalVariableModuleException;
+import org.apache.ode.bpel.evt.CorrelationSetWriteEvent;
import org.apache.ode.bpel.evt.PartnerLinkModificationEvent;
import org.apache.ode.bpel.evt.ScopeEvent;
import org.apache.ode.bpel.evt.VariableModificationEvent;
-import org.apache.ode.bpel.evt.CorrelationSetWriteEvent;
-import org.apache.ode.bpel.rtrep.v2.channels.FaultData;
-import org.apache.ode.bpel.rtrep.common.extension.ExtensionContext;
-import org.apache.ode.bpel.rtrep.common.extension.ExtensibilityQNames;
import org.apache.ode.bpel.extension.ExtensionOperation;
+import org.apache.ode.bpel.rtrep.common.extension.ExtensibilityQNames;
+import org.apache.ode.bpel.rtrep.common.extension.ExtensionContext;
+import org.apache.ode.bpel.rtrep.v2.channels.FaultData;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.Namespaces;
-import org.apache.ode.bpel.evar.ExternalVariableModuleException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -330,14 +329,14 @@
}
}
// act like <empty> - do nothing
- context.complete();
+ context.complete(_self.parent.export());
return;
}
- ea.run(context, eao.nestedElement.getElement());
+ ea.run(context, _self.parent.export(),
eao.nestedElement.getElement());
} catch (FaultException fault) {
__log.error(fault);
- context.completeWithFault(fault);
+ context.completeWithFault(_self.parent.export(), fault);
}
}
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java
(original)
+++
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java
Sun Aug 9 15:31:00 2009
@@ -55,14 +55,14 @@
}
}
// act like <empty> - do nothing
- context.complete();
+ context.complete(_self.parent.export());
return;
}
- ea.run(context, oea.nestedElement.getElement());
+ ea.run(context, _self.parent.export(),
oea.nestedElement.getElement());
} catch (FaultException fault) {
__log.error(fault);
- context.completeWithFault(fault);
+ context.completeWithFault(_self.parent.export(), fault);
}
}
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
(original)
+++
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
Sun Aug 9 15:31:00 2009
@@ -142,9 +142,9 @@
_context.sendEvent(event);
}
- public void complete() {
+ public void complete(String cid) {
if (!hasCompleted) {
- _activityInfo.parent.completed(null,
CompensationHandler.emptySet());
+ _context.completeExtensionActivity(cid, null);
hasCompleted = true;
} else {
if (__log.isWarnEnabled()) {
@@ -153,13 +153,13 @@
}
}
- public void completeWithFault(Throwable t) {
+ public void completeWithFault(String cid, Throwable t) {
if (!hasCompleted) {
StringWriter sw = new StringWriter();
t.printStackTrace(new PrintWriter(sw));
FaultData fault = new FaultData(new
QName(Namespaces.WSBPEL2_0_FINAL_EXEC, "subLanguageExecutionFault"),
_activityInfo.o, sw.getBuffer().toString());
- _activityInfo.parent.completed(fault,
CompensationHandler.emptySet());
+ _context.completeExtensionActivity(cid, fault);
hasCompleted = true;
} else {
if (__log.isWarnEnabled()) {
@@ -168,10 +168,10 @@
}
}
- public void completeWithFault(FaultException ex) {
+ public void completeWithFault(String cid, FaultException ex) {
if (!hasCompleted) {
FaultData fault = new FaultData(ex.getQName(),
_activityInfo.o, ex.getMessage());
- _activityInfo.parent.completed(fault,
CompensationHandler.emptySet());
+ _context.completeExtensionActivity(cid, fault);
hasCompleted = true;
} else {
if (__log.isWarnEnabled()) {
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java
(original)
+++
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OdeInternalInstance.java
Sun Aug 9 15:31:00 2009
@@ -129,6 +129,8 @@
Node fetchVariableData(VariableInstance variable, ScopeFrame scopeFrame,
boolean forWriting) throws FaultException;
ExtensionOperation createExtensionActivityImplementation(QName name);
+
+ void completeExtensionActivity(String channelId, FaultData faultData);
void terminate();
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
(original)
+++
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
Sun Aug 9 15:31:00 2009
@@ -415,6 +415,20 @@
}
}
}
+
+ public void completeExtensionActivity(final String channelId, final
FaultData faultData) {
+ _vpu.inject(new JacobRunnable() {
+ private static final long serialVersionUID =
5198590543947804763L;
+
+ public void run() {
+ ParentScopeChannel channel = importChannel(channelId,
ParentScopeChannel.class);
+ if (channel == null) {
+ throw new RuntimeException("Could not resolve channel
ID (" + channelId + ") for extension activity.");
+ }
+ channel.completed(faultData, CompensationHandler.emptySet());
+ }
+ });
+ }
/**
* Proxy to {...@link ProcessControlContext# }.
Modified:
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java?rev=802551&r1=802550&r2=802551&view=diff
==============================================================================
---
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java
(original)
+++
ode/trunk/runtimes/src/test/java/org/apache/ode/bpel/rtrep/v2/CoreBpelTest.java
Sun Aug 9 15:31:00 2009
@@ -544,4 +544,8 @@
// TODO Auto-generated method stub
return null;
}
+
+ public void completeExtensionActivity(String channelId, FaultData
faultData) {
+ // TODO Auto-generated method stub
+ }
}