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>&lt;extensionActivity&gt;</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);
+    }
+
+}


Reply via email to