Author: vanto
Date: Fri Feb 13 18:45:32 2009
New Revision: 744217
URL: http://svn.apache.org/viewvc?rev=744217&view=rev
Log:
fixing ODE-503.
Modified:
ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/extension/ExtensionOperation.java
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/AssignGenerator.java
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/ExtensionActivtityGenerator.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/OAssign.java
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OExtensionActivity.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=744217&r1=744216&r2=744217&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
Fri Feb 13 18:45:32 2009
@@ -35,6 +35,19 @@
*/
public interface ExtensionOperation {
+
+ /**
+ * Provides the runtime implementation.
+ *
+ * <strong>Note:</strong> This method MAY run concurrently. Since
Xerces' DOM
+ * implementation is not thread-safe, please make sure to synchronize
the
+ * access to <code>element</code> if necessary.
+ *
+ * @param context injected ExtensionContext
+ * @param element the extension element (child of
<code>extensionActivity</code>
+ * or <code>extensionAssignOperation</code>
+ * @throws FaultException
+ */
void run(Object context, Element element) throws FaultException;
}
Modified:
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/AssignGenerator.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/AssignGenerator.java?rev=744217&r1=744216&r2=744217&view=diff
==============================================================================
---
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/AssignGenerator.java
(original)
+++
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/AssignGenerator.java
Fri Feb 13 18:45:32 2009
@@ -110,6 +110,7 @@
if (validator != null) {
validator.validate(_context, sop);
}
+ oext.extensionName = DOMUtils.getElementQName(el);
oext.nestedElement = new
SerializableElement(el);
oassign.operations.add(oext);
} catch (CompilationException ce) {
Modified:
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/ExtensionActivtityGenerator.java
URL:
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/ExtensionActivtityGenerator.java?rev=744217&r1=744216&r2=744217&view=diff
==============================================================================
---
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/ExtensionActivtityGenerator.java
(original)
+++
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/ExtensionActivtityGenerator.java
Fri Feb 13 18:45:32 2009
@@ -53,6 +53,7 @@
if (validator != null) {
validator.validate(_context, src);
}
+ oactivity.extensionName = DOMUtils.getElementQName(child);
oactivity.nestedElement = new
SerializableElement(child);
compileChildren(oactivity, (ExtensionActivity) src);
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=744217&r1=744216&r2=744217&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
Fri Feb 13 18:45:32 2009
@@ -622,14 +622,14 @@
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 {
- ExtensionOperation ea =
getBpelRuntime().createExtensionActivityImplementation(extensionId);
+ ExtensionOperation ea =
getBpelRuntime().createExtensionActivityImplementation(eao.extensionName);
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.");
+ if
(eao.extensionName.getNamespaceURI().equals(oe.namespaceURI)) {
+ __log.warn("Lookup of extension activity " +
eao.extensionName + " failed.");
+ throw new
FaultException(ExtensibilityQNames.UNKNOWN_EA_FAULT_NAME, "Lookup of extension
activity " + eao.extensionName + " failed. No implementation found.");
}
}
// act like <empty> - do nothing
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=744217&r1=744216&r2=744217&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
Fri Feb 13 18:45:32 2009
@@ -18,15 +18,12 @@
*/
package org.apache.ode.bpel.rtrep.v2;
-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.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;
+import org.apache.ode.bpel.rtrep.common.extension.ExtensionContext;
/**
* JacobRunnable that delegates the work of the <code>extensionActivity</code>
activity
@@ -38,25 +35,23 @@
private static final long serialVersionUID = 1L;
private static final Log __log =
LogFactory.getLog(EXTENSIONACTIVITY.class);
- private OExtensionActivity _oext;
-
public EXTENSIONACTIVITY(ActivityInfo self, ScopeFrame scopeFrame,
LinkFrame linkFrame) {
super(self, scopeFrame, linkFrame);
- _oext = (OExtensionActivity) _self.o;
}
public final void run() {
final ExtensionContext context = new ExtensionContextImpl(_self,
_scopeFrame, getBpelRuntime());
- final QName extensionId =
DOMUtils.getElementQName(_oext.nestedElement.getElement());
+ final OExtensionActivity oea = (OExtensionActivity)_self.o;
+
try {
- ExtensionOperation ea =
getBpelRuntime().createExtensionActivityImplementation(extensionId);
+ ExtensionOperation ea =
getBpelRuntime().createExtensionActivityImplementation(oea.extensionName);
if (ea == null) {
- for (OProcess.OExtension oe :
_oext.getOwner().mustUnderstandExtensions) {
- if (extensionId.getNamespaceURI().equals(oe.namespaceURI))
{
- __log.warn("Lookup of extension activity " +
extensionId + " failed.");
+ for (OProcess.OExtension oe :
oea.getOwner().mustUnderstandExtensions) {
+ if
(oea.extensionName.getNamespaceURI().equals(oe.namespaceURI)) {
+ __log.warn("Lookup of extension activity " +
oea.extensionName + " failed.");
throw new
FaultException(ExtensibilityQNames.UNKNOWN_EA_FAULT_NAME, "Lookup of extension
activity "
- + extensionId + " failed. No implementation
found.");
+ + oea.extensionName + " failed. No
implementation found.");
}
}
// act like <empty> - do nothing
@@ -64,7 +59,7 @@
return;
}
- ea.run(context, _oext.nestedElement.getElement());
+ ea.run(context, oea.nestedElement.getElement());
} catch (FaultException fault) {
__log.error(fault);
context.completeWithFault(fault);
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OAssign.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OAssign.java?rev=744217&r1=744216&r2=744217&view=diff
==============================================================================
--- ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OAssign.java
(original)
+++ ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OAssign.java
Fri Feb 13 18:45:32 2009
@@ -87,6 +87,7 @@
public static class ExtensionAssignOperation extends OAssignOperation {
private static final long serialVersionUID = 1L;
public SerializableElement nestedElement;
+ public QName extensionName;
public ExtensionAssignOperation(OProcess owner) {
super(owner);
Modified:
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OExtensionActivity.java
URL:
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OExtensionActivity.java?rev=744217&r1=744216&r2=744217&view=diff
==============================================================================
---
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OExtensionActivity.java
(original)
+++
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/OExtensionActivity.java
Fri Feb 13 18:45:32 2009
@@ -21,6 +21,8 @@
import java.util.ArrayList;
import java.util.List;
+import javax.xml.namespace.QName;
+
import org.apache.ode.utils.SerializableElement;
@@ -34,6 +36,7 @@
static final long serialVersionUID = -1L ;
public final List<OActivity> children = new ArrayList<OActivity>();
public SerializableElement nestedElement;
+ public QName extensionName;
public OExtensionActivity(OProcess owner, OActivity parent) {
super(owner, parent);