Author: assaf
Date: Fri Nov 10 15:23:07 2006
New Revision: 473571

URL: http://svn.apache.org/viewvc?view=rev&rev=473571
Log:
Removed SJF: suppressJoinFailure is now handled by ACTIVITYGUARD without 
creating a fake scope, see BPEL 2.0 change in public review draft

Modified:
    
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
    
incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OActivity.java
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
    
incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-cancel.bpel

Modified: 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java?view=diff&rev=473571&r1=473570&r2=473571
==============================================================================
--- 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
 (original)
+++ 
incubator/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
 Fri Nov 10 15:23:07 2006
@@ -730,49 +730,19 @@
                 break;
         }
 
-        OActivity ret;
+        OActivity compiled;
         try {
-            if (_supressJoinFailure)
-                ret = compileSJF(source);
-            else
-                ret = compileSLC(source);
+            compiled = (source instanceof ScopeLikeActivity)  ?
+                compileSLC((ScopeLikeActivity)source) :
+                compileActivity(source);
+            compiled.suppressJoinFailure = _supressJoinFailure;
         } finally {
             _supressJoinFailure = previousSupressJoinFailure;
         }
 
-
         if (__log.isDebugEnabled())
-            __log.debug("Compiled activity " + ret);
-
-        return ret;
-    }
-
-    private OActivity compileSJF(final Activity source) {
-        final OScope oscope = new OScope(_oprocess, getCurrent());
-        oscope.name = createName(source);
-        oscope.debugInfo = createDebugInfo(source, "suppress join failure 
scope for " + source);
-        DefaultActivityGenerator.defaultExtensibilityElements(oscope, source);
-
-        compile(oscope, null, new Runnable() {
-            public void run() {
-                oscope.activity = compileSLC(source);
-                final OCatch joinFailureCatch = new OCatch(_oprocess, 
getCurrent());
-                joinFailureCatch.name = "__suppressJoinFailureCatch:" + 
oscope.name;
-                joinFailureCatch.debugInfo = createDebugInfo(source, "suppress 
join failure catch for " + source);
-                compile(joinFailureCatch, null, new Runnable() {
-                    public void run() {
-                        joinFailureCatch.faultName = 
_oprocess.constants.qnJoinFailure;
-                        joinFailureCatch.faultVariable = null;
-                        joinFailureCatch.activity = 
createDefaultCompensateActivity(source, "Auto-generated compensation for 
suppress-join-failure handler for " + source);
-                    }
-                });
-
-                oscope.faultHandler = new OFaultHandler(_oprocess);
-                oscope.faultHandler.catchBlocks.add(joinFailureCatch);
-                compile((TerminationHandler) null);
-                compile((CompensationHandler)null);
-            }});
-        return oscope;
+            __log.debug("Compiled activity " + compiled);
+        return compiled;
     }
 
     private OCompensate createDefaultCompensateActivity(BpelObject source, 
String desc) {
@@ -782,36 +752,23 @@
         return activity;
     }
 
-    public OScope compileSLC(final ScopeLikeActivity source, final 
OScope.Variable[] variables) {
+    public OScope compileSLC(final ScopeLikeActivity source) {
         final OScope implicitScope = new OScope(_oprocess, getCurrent());
         implicitScope.name = createName(source);
         implicitScope.debugInfo = createDebugInfo(source, "Scope-like 
construct " + source);
         compileScope(implicitScope, source.getScope(), new Runnable() {
             public void run() {
-                for (OScope.Variable  v : variables) {
-                    v.declaringScope = implicitScope;
-                    implicitScope.addLocalVariable(v);
-                }
-                    
                 if (source instanceof ScopeActivity)
                     implicitScope.activity = 
compile(((ScopeActivity)source).getChildActivity());
                 else
-                    implicitScope.activity = compileActivity(true, source);
-
+                    implicitScope.activity = compileActivity(source);
             }
         });
 
         return implicitScope;
     }
     
-    public OActivity compileSLC(final Activity source) {
-        if (source instanceof ScopeLikeActivity) 
-            return compileSLC((ScopeLikeActivity)source, new 
OScope.Variable[0]);
-
-        return compileActivity(true, source);
-    }
-
-    private OActivity compileActivity(final boolean doLinks, final Activity 
source) {
+    private OActivity compileActivity(final Activity source) {
         final ActivityGenerator actgen = findActivityGen(source);
         final OActivity oact = actgen.newInstance(source);
         oact.name = createName(source);
@@ -819,8 +776,7 @@
         _compiledActivities.add(oact);
         compile(oact, source, new Runnable() {
             public void run() {
-                if (doLinks)
-                    compileLinks(source);
+                compileLinks(source);
                 actgen.compile(oact,source);
             }
         });

Modified: 
incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OActivity.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OActivity.java?view=diff&rev=473571&r1=473570&r2=473571
==============================================================================
--- 
incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OActivity.java 
(original)
+++ 
incubator/ode/trunk/bpel-obj/src/main/java/org/apache/ode/bpel/o/OActivity.java 
Fri Nov 10 15:23:07 2006
@@ -31,6 +31,7 @@
     static final long serialVersionUID = -1L  ;
     
     public OExpression joinCondition;
+    public boolean suppressJoinFailure;
     public final Set<OLink>sourceLinks = new HashSet<OLink>();
     public final Set<OLink>targetLinks = new HashSet<OLink>();
     public String name;

Modified: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java?view=diff&rev=473571&r1=473570&r2=473571
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ACTIVITYGUARD.java
 Fri Nov 10 15:23:07 2006
@@ -90,10 +90,15 @@
                 instance(createActivity(activity));
                 instance(new TCONDINTERCEPT(activity.parent));
             } else {
-                FaultData fault = null;
-                // TODO: need to check suppressJoinFailure
-                fault = 
createFault(_oactivity.getOwner().constants.qnJoinFailure,_oactivity);
-                _self.parent.completed(fault, CompensationHandler.emptySet());
+                if (_oactivity.suppressJoinFailure) {
+                    _self.parent.completed(null, 
CompensationHandler.emptySet());
+                    if (__log.isDebugEnabled())
+                        __log.debug("Join condition false, suppress join 
failureon activity " + _self.aId);
+                } else {
+                    FaultData fault = null;
+                    fault = 
createFault(_oactivity.getOwner().constants.qnJoinFailure,_oactivity);
+                    _self.parent.completed(fault, 
CompensationHandler.emptySet());
+                }
 
                 // Dead path activity.
                 dpe(_oactivity);

Modified: 
incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-cancel.bpel
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-cancel.bpel?view=diff&rev=473571&r1=473570&r2=473571
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-cancel.bpel
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/test/resources/recovery/failure-to-cancel.bpel
 Fri Nov 10 15:23:07 2006
@@ -66,9 +66,7 @@
                 partnerLink="instantiatingPartnerLink"
                 portType="tns:ResponsePortType"
                 operation="respond"
-                inputVariable="response"
-                suppressJoinFailure="yes">
-        </invoke>
+                inputVariable="response"/>
       </sequence>
     </flow>
   </sequence>


Reply via email to