You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2008/08/02 00:27:42 UTC
svn commit: r681872 - in /ode/branches/rtver:
bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/
bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/
runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/
runtime-repo/src/...
Author: mriou
Date: Fri Aug 1 15:27:40 2008
New Revision: 681872
URL: http://svn.apache.org/viewvc?rev=681872&view=rev
Log:
The new runtime repo module compiles. Now that this works, I can go and break more stuff (the compiler).
Added:
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensibilityQNames.java
- copied, changed from r680846, ode/branches/rtver/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/ExtensibilityQNames.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java
- copied, changed from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_ALARM.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java
Removed:
ode/branches/rtver/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/ExtensibilityQNames.java
ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_ALARM.java
Modified:
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EvaluationContext.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/FOREACH.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/PROCESS.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java Fri Aug 1 15:27:40 2008
@@ -19,10 +19,6 @@
package org.apache.ode.bpel.rtrep.common.extension;
import org.apache.ode.bpel.common.FaultException;
-import org.apache.ode.bpel.compiler.api.CompilationException;
-import org.apache.ode.bpel.compiler.api.CompilerContext;
-import org.apache.ode.bpel.compiler.api.ExtensionValidator;
-import org.apache.ode.bpel.compiler.bom.ExtensibleElement;
import org.w3c.dom.Element;
/**
@@ -30,12 +26,13 @@
*
* @author Tammo van Lessen (University of Stuttgart)
*/
-public abstract class AbstractAsyncExtensionOperation implements ExtensionValidator,
+public abstract class AbstractAsyncExtensionOperation implements //ExtensionValidator,
ExtensionOperation {
- public void validate(CompilerContext context, ExtensibleElement element) throws CompilationException {
- // default behavior: pass
- }
+ // TODO check what to do with compiler context
+// public void validate(CompilerContext context, ExtensibleElement element) throws CompilationException {
+// // default behavior: pass
+// }
public abstract void run(ExtensionContext context, Element element)
throws FaultException;
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java Fri Aug 1 15:27:40 2008
@@ -27,7 +27,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.ode.bpel.compiler.api.ExtensionValidator;
+//import org.apache.ode.bpel.compiler.api.ExtensionValidator;
/**
* Abstract class that bundles and registers <code><extensionActivity></code> and
@@ -75,18 +75,19 @@
return getExtensionOperationClass(localName).newInstance();
}
- public final Map<QName, ExtensionValidator> getExtensionValidators() {
- Map<QName, ExtensionValidator> result = new HashMap<QName, ExtensionValidator>();
- String ns = getNamespaceURI();
- for (String localName : extensionsByName.keySet()) {
- if (ExtensionValidator.class.isAssignableFrom(extensionsByName.get(localName))) {
- try {
- result.put(new QName(ns, localName), (ExtensionValidator)getExtensionOperationInstance(localName));
- } catch (Exception e) {
- __log.warn("Could not instantiate extension validator for '{" + ns + "}" + localName);
- }
- }
- }
- return result;
- }
+ // TODO See what to do with the validation part
+// public final Map<QName, ExtensionValidator> getExtensionValidators() {
+// Map<QName, ExtensionValidator> result = new HashMap<QName, ExtensionValidator>();
+// String ns = getNamespaceURI();
+// for (String localName : extensionsByName.keySet()) {
+// if (ExtensionValidator.class.isAssignableFrom(extensionsByName.get(localName))) {
+// try {
+// result.put(new QName(ns, localName), (ExtensionValidator)getExtensionOperationInstance(localName));
+// } catch (Exception e) {
+// __log.warn("Could not instantiate extension validator for '{" + ns + "}" + localName);
+// }
+// }
+// }
+// return result;
+// }
}
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java Fri Aug 1 15:27:40 2008
@@ -19,10 +19,6 @@
package org.apache.ode.bpel.rtrep.common.extension;
import org.apache.ode.bpel.common.FaultException;
-import org.apache.ode.bpel.compiler.api.CompilationException;
-import org.apache.ode.bpel.compiler.api.CompilerContext;
-import org.apache.ode.bpel.compiler.api.ExtensionValidator;
-import org.apache.ode.bpel.compiler.bom.ExtensibleElement;
import org.w3c.dom.Element;
/**
@@ -30,12 +26,13 @@
*
* @author Tammo van Lessen (University of Stuttgart)
*/
-public abstract class AbstractSyncExtensionOperation implements ExtensionValidator,
+public abstract class AbstractSyncExtensionOperation implements //ExtensionValidator,
ExtensionOperation {
- public void validate(CompilerContext context, ExtensibleElement element) throws CompilationException {
- // default behavior: pass
- }
+ // TODO check what to do with compiler context
+// public void validate(CompilerContext context, ExtensibleElement element) throws CompilationException {
+// // default behavior: pass
+// }
protected abstract void runSync(ExtensionContext context, Element element) throws FaultException;
Copied: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensibilityQNames.java (from r680846, ode/branches/rtver/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/ExtensibilityQNames.java)
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensibilityQNames.java?p2=ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensibilityQNames.java&p1=ode/branches/rtver/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/ExtensibilityQNames.java&r1=680846&r2=681872&rev=681872&view=diff
==============================================================================
--- ode/branches/rtver/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/ExtensibilityQNames.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensibilityQNames.java Fri Aug 1 15:27:40 2008
@@ -16,11 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.ode.bpel.compiler.bom;
+package org.apache.ode.bpel.rtrep.common.extension;
import javax.xml.namespace.QName;
-
public abstract class ExtensibilityQNames {
/*
* Activity Recovery extensibility elements.
@@ -37,8 +36,7 @@
//
// External variables
- //
-
+ //
/** Namespace for external variables. */
private static final String EXTVAR_NS = "http://ode.apache.org/externalVariables";
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java Fri Aug 1 15:27:40 2008
@@ -118,4 +118,9 @@
*/
OActivity getOActivity();
+ //ScopeFrame getScopeFrame();
+ void complete();
+
+ void completeWithFault(Throwable t);
+ void completeWithFault(FaultException fault);
}
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java Fri Aug 1 15:27:40 2008
@@ -19,10 +19,9 @@
package org.apache.ode.bpel.rtrep.v2;
import java.util.List;
+import java.net.URI;
import javax.xml.namespace.QName;
-import java.io.StringWriter;
-import java.io.PrintWriter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -32,6 +31,8 @@
import org.apache.ode.bpel.evt.VariableModificationEvent;
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.rtrep.common.extension.ExtensionOperation;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.Namespaces;
import org.apache.ode.utils.msg.MessageBundle;
@@ -574,40 +575,31 @@
return data;
}
- private void invokeExtensionAssignOperation(
- OAssign.ExtensionAssignOperation eao) throws FaultException {
+ private void invokeExtensionAssignOperation(OAssign.ExtensionAssignOperation eao) throws FaultException {
+ final ExtensionContext context = new ExtensionContextImpl(_self, _scopeFrame, getBpelRuntime());
+ final QName extensionId = DOMUtils.getElementQName(eao.nestedElement.getElement());
try {
- final ExtensionContext helper = new ExtensionContextImpl(_self.o, _scopeFrame, getBpelRuntime());
- final ExtensionResponseChannel responseChannel = newChannel(ExtensionResponseChannel.class);
-
- getBpelRuntime().executeExtension(
- DOMUtils.getElementQName(eao.nestedElement.getElement()),
- helper, eao.nestedElement.getElement(), responseChannel);
-
- object(new ExtensionResponseChannelListener(responseChannel) {
- private static final long serialVersionUID = 1L;
-
- public void onCompleted() {
- _self.parent.completed(null, CompensationHandler.emptySet());
+ ExtensionOperation ea = getBpelRuntime().createExtensionActivityImplementation(extensionId);
+ if (ea == null) {
+ for (OProcess.OExtension oe : eao.getOwner().mustUnderstandExtensions) {
+ if (extensionId.getNamespaceURI().equals(oe.namespaceURI)) {
+ __log.warn("Lookup of extension activity " + extensionId + " failed.");
+ throw new FaultException(ExtensibilityQNames.UNKNOWN_EA_FAULT_NAME, "Lookup of extension activity " + extensionId + " failed. No implementation found.");
+ }
}
+ // act like <empty> - do nothing
+ context.complete();
+ return;
+ }
- public void onFailure(Throwable t) {
- StringWriter sw = new StringWriter();
- t.printStackTrace(new PrintWriter(sw));
- FaultData fault = createFault(new QName(Namespaces.WSBPEL2_0_FINAL_EXEC,
- "subLanguageExecutionFault"), _self.o, sw.getBuffer().toString());
- _self.parent.completed(fault, CompensationHandler.emptySet());
- };
- });
-
+ ea.run(context, eao.nestedElement.getElement());
} catch (FaultException fault) {
__log.error(fault);
- FaultData faultData = createFault(fault.getQName(), _self.o, fault
- .getMessage());
- _self.parent.completed(faultData, CompensationHandler.emptySet());
+ context.completeWithFault(fault);
}
}
+
private class EvaluationContextProxy implements EvaluationContext {
private OScope.Variable _var;
@@ -665,6 +657,10 @@
public boolean narrowTypes() {
return false;
}
+
+ public URI getBaseResourceURI() {
+ return _ctx.getBaseResourceURI();
+ }
}
}
Copied: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java (from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_ALARM.java)
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java?p2=ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java&p1=ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_ALARM.java&r1=680846&r2=681872&rev=681872&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/EH_ALARM.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_ALARM.java Fri Aug 1 15:27:40 2008
@@ -16,21 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-package org.apache.ode.bpel.runtime;
+package org.apache.ode.bpel.rtrep.v2;
import org.apache.ode.bpel.common.FaultException;
-import org.apache.ode.bpel.explang.EvaluationContext;
-import org.apache.ode.bpel.o.OEventHandler;
-import org.apache.ode.bpel.o.OScope;
-import org.apache.ode.bpel.runtime.channels.EventHandlerControlChannel;
-import org.apache.ode.bpel.runtime.channels.EventHandlerControlChannelListener;
-import org.apache.ode.bpel.runtime.channels.FaultData;
-import org.apache.ode.bpel.runtime.channels.ParentScopeChannel;
-import org.apache.ode.bpel.runtime.channels.ParentScopeChannelListener;
-import org.apache.ode.bpel.runtime.channels.TerminationChannel;
-import org.apache.ode.bpel.runtime.channels.TerminationChannelListener;
-import org.apache.ode.bpel.runtime.channels.TimerResponseChannel;
-import org.apache.ode.bpel.runtime.channels.TimerResponseChannelListener;
+import org.apache.ode.bpel.rtrep.v2.channels.*;
import org.apache.ode.jacob.SynchChannel;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -38,7 +27,6 @@
import java.util.Calendar;
import java.util.HashSet;
import java.util.Set;
-import java.util.Date;
import org.w3c.dom.Element;
@@ -83,7 +71,7 @@
if (_oalarm.forExpr != null)
try {
- getBpelRuntimeContext().getExpLangRuntime().evaluateAsDuration(_oalarm.forExpr, getEvaluationContext()).addTo(alarm);
+ getBpelRuntime().getExpLangRuntime().evaluateAsDuration(_oalarm.forExpr, getEvaluationContext()).addTo(alarm);
} catch (FaultException e) {
__log.error(e);
_psc.completed(createFault(e.getQName(),_oalarm.forExpr), _comps);
@@ -91,7 +79,7 @@
}
else if (_oalarm.untilExpr != null)
try {
- alarm.setTime(getBpelRuntimeContext().getExpLangRuntime().evaluateAsDate(_oalarm.untilExpr, getEvaluationContext()).getTime());
+ alarm.setTime(getBpelRuntime().getExpLangRuntime().evaluateAsDate(_oalarm.untilExpr, getEvaluationContext()).getTime());
} catch (FaultException e) {
__log.error(e);
_psc.completed(createFault(e.getQName(),_oalarm.untilExpr), _comps);
@@ -103,7 +91,7 @@
}
protected EvaluationContext getEvaluationContext() {
- return new ExprEvaluationContextImpl(_scopeFrame,getBpelRuntimeContext());
+ return new ExprEvaluationContextImpl(_scopeFrame,getBpelRuntime());
}
/**
@@ -128,7 +116,7 @@
if (now.before(_alarm)) {
TimerResponseChannel trc = newChannel(TimerResponseChannel.class);
- getBpelRuntimeContext().registerTimer(trc,_alarm.getTime());
+ getBpelRuntime().registerTimer(trc,_alarm.getTime());
object(false,new TimerResponseChannelListener(trc){
private static final long serialVersionUID = 1110683632756756017L;
@@ -207,7 +195,7 @@
if (!_stopped && _oalarm.repeatExpr != null) {
Calendar next = Calendar.getInstance();
try {
- getBpelRuntimeContext().getExpLangRuntime().evaluateAsDuration(_oalarm.forExpr, getEvaluationContext()).addTo(next);
+ getBpelRuntime().getExpLangRuntime().evaluateAsDuration(_oalarm.forExpr, getEvaluationContext()).addTo(next);
} catch (FaultException e) {
__log.error(e);
_psc.completed(createFault(e.getQName(),_oalarm.forExpr), _comps);
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java Fri Aug 1 15:27:40 2008
@@ -23,12 +23,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.FaultException;
-import org.apache.ode.bpel.compiler.bom.ExtensibilityQNames;
-import org.apache.ode.bpel.o.OExtensionActivity;
-import org.apache.ode.bpel.rtrep.v2.extension.ExtensionContext;
-import org.apache.ode.bpel.rtrep.v2.extension.ExtensionOperation;
import org.apache.ode.bpel.rtrep.common.extension.ExtensionOperation;
import org.apache.ode.bpel.rtrep.common.extension.ExtensionContext;
+import org.apache.ode.bpel.rtrep.common.extension.ExtensibilityQNames;
import org.apache.ode.utils.DOMUtils;
/**
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EvaluationContext.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EvaluationContext.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EvaluationContext.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EvaluationContext.java Fri Aug 1 15:27:40 2008
@@ -97,5 +97,6 @@
* using this evaluation context.
*/
boolean narrowTypes();
-
+
+ URI getBaseResourceURI();
}
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java Fri Aug 1 15:27:40 2008
@@ -19,6 +19,7 @@
package org.apache.ode.bpel.rtrep.v2;
import java.util.Map;
+import java.net.URI;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -117,4 +118,7 @@
_native.sendEvent(se);
}
+ public URI getBaseResourceURI() {
+ return _native.getBaseResourceURI();
+ }
}
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java Fri Aug 1 15:27:40 2008
@@ -18,14 +18,22 @@
*/
package org.apache.ode.bpel.rtrep.v2;
-import java.util.Map;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.util.HashMap;
+import java.util.Map;
+
+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.rtrep.common.extension.ExtensionContext;
+import org.apache.ode.bpel.evt.ScopeEvent;
+import org.apache.ode.bpel.evt.VariableModificationEvent;
import org.apache.ode.bpel.evar.ExternalVariableModuleException;
+import org.apache.ode.bpel.rtrep.v2.channels.FaultData;
+import org.apache.ode.bpel.rtrep.common.extension.ExtensionContext;
+import org.apache.ode.utils.Namespaces;
import org.w3c.dom.Node;
@@ -39,6 +47,8 @@
private ScopeFrame _scopeFrame;
private ActivityInfo _activityInfo;
+ private boolean hasCompleted = false;
+
public ExtensionContextImpl(ActivityInfo activityInfo, ScopeFrame scopeFrame, RuntimeInstanceImpl context) {
_activityInfo = activityInfo;
_context = context;
@@ -92,8 +102,11 @@
public void writeVariable(OScope.Variable variable, Node value)
throws FaultException, ExternalVariableModuleException {
- VariableInstance vi = _scopeFrame.resolve(variable);
- _context.commitChanges(vi, value);
+ VariableInstance vi = _scopeFrame.resolve(variable);
+ _context.commitChanges(vi, value);
+ VariableModificationEvent vme = new VariableModificationEvent(variable.name);
+ vme.setNewValue(value);
+ sendEvent(vme);
}
private OScope.Variable getVisibleVariable(String varName) {
@@ -108,4 +121,50 @@
return _activityInfo.o;
}
+ public void sendEvent(ScopeEvent event) {
+ if (event.getLineNo() == -1 && _activityInfo.o.debugInfo != null) {
+ event.setLineNo(_activityInfo.o.debugInfo.startLine);
+ }
+ _scopeFrame.fillEventInfo(event);
+ _context.sendEvent(event);
+ }
+
+ public void complete() {
+ if (!hasCompleted) {
+ _activityInfo.parent.completed(null, CompensationHandler.emptySet());
+ hasCompleted = true;
+ } else {
+ if (__log.isWarnEnabled()) {
+ __log.warn("Activity '" + _activityInfo.o.name + "' has already been completed.");
+ }
+ }
+ }
+
+ public void completeWithFault(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());
+ hasCompleted = true;
+ } else {
+ if (__log.isWarnEnabled()) {
+ __log.warn("Activity '" + _activityInfo.o.name + "' has already been completed.");
+ }
+ }
+ }
+
+ public void completeWithFault(FaultException ex) {
+ if (!hasCompleted) {
+ FaultData fault = new FaultData(ex.getQName(), _activityInfo.o, ex.getMessage());
+ _activityInfo.parent.completed(fault, CompensationHandler.emptySet());
+ hasCompleted = true;
+ } else {
+ if (__log.isWarnEnabled()) {
+ __log.warn("Activity '" + _activityInfo.o.name + "' has already been completed.");
+ }
+ }
+
+ }
}
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/FOREACH.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/FOREACH.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/FOREACH.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/FOREACH.java Fri Aug 1 15:27:40 2008
@@ -32,6 +32,7 @@
import org.apache.ode.bpel.rtrep.v2.channels.ParentScopeChannelListener;
import org.apache.ode.bpel.rtrep.v2.channels.TerminationChannel;
import org.apache.ode.bpel.rtrep.v2.channels.TerminationChannelListener;
+import org.apache.ode.bpel.evar.ExternalVariableModuleException;
import org.apache.ode.jacob.ChannelListener;
import org.apache.ode.jacob.SynchChannel;
import org.apache.ode.utils.DOMUtils;
@@ -206,8 +207,14 @@
_oforEach.innerScope), _scopeFrame, null);
VariableInstance vinst = newFrame.resolve(_oforEach.counterVariable);
- getBpelRuntime().initializeVariable(vinst, counterNode);
-
+ try {
+ getBpelRuntime().initializeVariable(vinst, counterNode);
+ } catch (ExternalVariableModuleException e) {
+ __log.error("Exception while initializing external variable", e);
+ _self.parent.failure(e.toString(), null);
+ return;
+ }
+
// Generating event
VariableModificationEvent se = new VariableModificationEvent(vinst.declaration.name);
se.setNewValue(counterNode);
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java Fri Aug 1 15:27:40 2008
@@ -86,7 +86,7 @@
try {
if (!isTwoWay) {
FaultData faultData = null;
- getBpelRuntime().invoke(_scopeFrame.resolve(_oinvoke.partnerLink),
+ getBpelRuntime().invoke(null, _scopeFrame.resolve(_oinvoke.partnerLink),
_oinvoke.operation, outboundMsg, null);
_self.parent.completed(faultData, CompensationHandler.emptySet());
@@ -94,7 +94,7 @@
final VariableInstance outputVar = _scopeFrame.resolve(_oinvoke.outputVar);
InvokeResponseChannel invokeResponseChannel = newChannel(InvokeResponseChannel.class);
- final String mexId = getBpelRuntime().invoke(
+ final String mexId = getBpelRuntime().invoke(invokeResponseChannel.export(),
_scopeFrame.resolve(_oinvoke.partnerLink), _oinvoke.operation,
outboundMsg, invokeResponseChannel);
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/PROCESS.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/PROCESS.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/PROCESS.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/PROCESS.java Fri Aug 1 15:27:40 2008
@@ -19,11 +19,6 @@
package org.apache.ode.bpel.rtrep.v2;
import org.apache.ode.bpel.evt.ProcessInstanceStartedEvent;
-import org.apache.ode.bpel.o.OBase;
-import org.apache.ode.bpel.o.OProcess;
-import org.apache.ode.bpel.o.OScope;
-import org.apache.ode.bpel.o.OFailureHandling;
-import org.apache.ode.bpel.o.OScope.Variable;
import org.apache.ode.bpel.rtrep.v2.channels.FaultData;
import org.apache.ode.bpel.rtrep.v2.channels.ParentScopeChannel;
import org.apache.ode.bpel.rtrep.v2.channels.ParentScopeChannelListener;
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java Fri Aug 1 15:27:40 2008
@@ -4,6 +4,7 @@
import java.io.OutputStream;
import java.util.Collection;
import java.util.Date;
+import java.net.URI;
import javax.wsdl.Operation;
import javax.xml.namespace.QName;
@@ -342,53 +343,7 @@
return _brc.getSourceEPR(mexId);
}
- public void executeExtension(QName extensionId, ExtensionContext context, Element element,
- ExtensionResponseChannel extResponseChannel) throws FaultException {
- __log.debug("Execute extension activity");
- final String channelId = extResponseChannel.export();
- ExtensionOperation ea = createExtensionActivityImplementation(extensionId);
- if (ea == null) {
- if (_runtime._mustUnderstandExtensions.contains(extensionId.getNamespaceURI())) {
- __log.warn("Lookup of extension activity " + extensionId + " failed.");
- throw new FaultException(new QName("urn:bpel20", "extlookup-failed"), "Lookup of extension activity " + extensionId
- + " failed.");
- } else {
- // act like <empty> - do nothing
- completeExtensionExecution(channelId, null);
- return;
- }
- }
-
- try {
- ea.run(context, element);
- completeExtensionExecution(channelId, null);
- } catch (RuntimeException e) {
- __log.error("Error during execution of extension activity.", e);
- completeExtensionExecution(channelId, e);
- }
- }
-
- private void completeExtensionExecution(final String channelId, final Throwable t) {
- if (t != null) {
- _vpu.inject(new BpelJacobRunnable() {
- private static final long serialVersionUID = -1L;
-
- public void run() {
- importChannel(channelId, ExtensionResponseChannel.class).onFailure(t);
- }
- });
- } else {
- _vpu.inject(new BpelJacobRunnable() {
- private static final long serialVersionUID = -1L;
-
- public void run() {
- importChannel(channelId, ExtensionResponseChannel.class).onCompleted();
- }
- });
- }
- }
-
- private ExtensionOperation createExtensionActivityImplementation(QName name) {
+ public ExtensionOperation createExtensionActivityImplementation(QName name) {
if (name == null) {
return null;
}
@@ -397,7 +352,7 @@
return null;
} else {
try {
- return (ExtensionOperation) bundle.getExtensionOperationInstance(name.getLocalPart());
+ return bundle.getExtensionOperationInstance(name.getLocalPart());
} catch (Exception e) {
return null;
}
@@ -751,4 +706,7 @@
_brc = ctx;
}
+ public URI getBaseResourceURI() {
+ return _runtime._pconf.getBaseURI();
+ }
}
Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java?rev=681872&r1=681871&r2=681872&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java Fri Aug 1 15:27:40 2008
@@ -73,24 +73,22 @@
instance(createChild(_child, _scopeFrame, _linkFrame));
if (_oscope.eventHandler != null) {
- for (Iterator<OEventHandler.OAlarm> i = _oscope.eventHandler.onAlarms.iterator(); i.hasNext(); ) {
- OEventHandler.OAlarm alarm = i.next();
+ for (OEventHandler.OAlarm alarm : _oscope.eventHandler.onAlarms) {
EventHandlerInfo ehi = new EventHandlerInfo(alarm,
newChannel(EventHandlerControlChannel.class),
newChannel(ParentScopeChannel.class),
newChannel(TerminationChannel.class));
_eventHandlers.add(ehi);
- instance(new EH_ALARM(ehi.psc,ehi.tc, ehi.cc, alarm, _scopeFrame));
+ instance(new EH_ALARM(ehi.psc, ehi.tc, ehi.cc, alarm, _scopeFrame));
}
-
- for (Iterator<OEventHandler.OEvent> i = _oscope.eventHandler.onMessages.iterator(); i.hasNext(); ) {
- OEventHandler.OEvent event = i.next();
+
+ for (OEventHandler.OEvent event : _oscope.eventHandler.onMessages) {
EventHandlerInfo ehi = new EventHandlerInfo(event,
newChannel(EventHandlerControlChannel.class),
newChannel(ParentScopeChannel.class),
newChannel(TerminationChannel.class));
_eventHandlers.add(ehi);
- instance(new EH_EVENT(ehi.psc,ehi.tc, ehi.cc, event, _scopeFrame));
+ instance(new EH_EVENT(ehi.psc, ehi.tc, ehi.cc, event, _scopeFrame));
}
}
Added: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java?rev=681872&view=auto
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java (added)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/WrappedFaultException.java Fri Aug 1 15:27:40 2008
@@ -0,0 +1,22 @@
+package org.apache.ode.bpel.rtrep.v2.xpath20;
+
+import org.apache.ode.bpel.common.FaultException;
+
+public class WrappedFaultException extends RuntimeException {
+ private static final long serialVersionUID = -2677245631724501573L;
+
+ public FaultException _fault;
+
+ public WrappedFaultException(String message) {
+ super(message);
+ }
+
+ public WrappedFaultException(FaultException message) {
+ _fault = message;
+ }
+
+ public WrappedFaultException(String message, FaultException cause) {
+ super(message, cause);
+ }
+
+}