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);


Reply via email to