[jboss-svn-commits] JBL Code SVN: r22846 - in labs/jbosstm/workspace/adinn/orchestration: src/org/jboss/jbossts/orchestration/agent and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 17 09:24:00 EDT 2008


Author: adinn
Date: 2008-09-17 09:24:00 -0400 (Wed, 17 Sep 2008)
New Revision: 22846

Modified:
   labs/jbosstm/workspace/adinn/orchestration/build.xml
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/agent/Transformer.java
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/Event.java
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/Rule.java
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/binding/Binding.java
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/ComparisonExpression.java
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/ExpressionHelper.java
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/FieldExpression.java
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/Variable.java
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/type/Type.java
   labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/test/HandlerClass.java
Log:
added extra rules to test scenario to trace transaction replay and patched type checker/interpreter to fix errors uncovered by those rules

Modified: labs/jbosstm/workspace/adinn/orchestration/build.xml
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/build.xml	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/build.xml	2008-09-17 13:24:00 UTC (rev 22846)
@@ -58,12 +58,14 @@
     load XTS code -->
 
     <property name="xts.lib.dir"     value="${xts.home}/lib"/>
+    <property name="xts.sar.dir"     value="${xts.home}/sar"/>
     <property name="jboss.lib.dir"     value="${jboss.home}/lib"/>
     <property name="jboss.client.dir"     value="${jboss.home}/client"/>
     <property name="jboss.server.lib.dir"     value="${jboss.home}/server/default/lib"/>
     <property name="jboss.server.deploy.dir"     value="${jboss.home}/server/default/deploy"/>
 
     <property name="xts.lib.jars" value="ws-c10.jar wscf10.jar wscf.jar ws-t10.jar ws-t.jar wstx11.jar wsas.jar ws-c11.jar wscf11.jar ws-c.jar ws-t11.jar wstx10.jar wstx.jar"/>
+    <property name="xts.sar.jars" value="jbossxts.sar"/>
     <property name="jboss.lib.jars" value="stax-api.jar"/>
     <property name="jboss.client.jars" value="jbossall-client.jar"/>
     <property name="jboss.server.lib.jars" value="jbossjta.jar jbossws-common.jar jbossws-framework.jar jbossws-spi.jar jbossws-native-saaj.jar jbossws-native-jaxws.jar jbossws-native-jaxws-ext.jar jbossws-native-jaxrpc.jar jboss-javaee.jar"/>
@@ -172,6 +174,7 @@
                 <fileset dir="${ext.lib.dir}" includes="${ext.antlr.jars}"/>
                 <!-- xts, jta and jboss as jars-->
                 <fileset dir="${xts.lib.dir}" includes="${xts.lib.jars}"/>
+                <fileset dir="${xts.sar.dir}" includes="${xts.sar.jars}"/>
                 <fileset dir="${jboss.lib.dir}" includes="${jboss.lib.jars}"/>
                 <fileset dir="${jboss.client.dir}" includes="${jboss.client.jars}"/>
                 <fileset dir="${jboss.server.lib.dir}" includes="${jboss.server.lib.jars}"/>
@@ -196,6 +199,7 @@
                 <fileset dir="${ext.lib.dir}" includes="${ext.antlr.jars}"/>
                 <!-- xts, jta and jboss as jars-->
                 <fileset dir="${xts.lib.dir}" includes="${xts.lib.jars}"/>
+                <fileset dir="${xts.sar.dir}" includes="${xts.sar.jars}"/>
                 <fileset dir="${jboss.lib.dir}" includes="${jboss.lib.jars}"/>
                 <fileset dir="${jboss.client.dir}" includes="${jboss.client.jars}"/>
                 <fileset dir="${jboss.server.lib.dir}" includes="${jboss.server.lib.jars}"/>
@@ -222,6 +226,7 @@
                 <fileset dir="${ext.lib.dir}" includes="${ext.antlr.jars}"/>
                 <!-- xts, jta and jboss as jars-->
                 <fileset dir="${xts.lib.dir}" includes="${xts.lib.jars}"/>
+                <fileset dir="${xts.sar.dir}" includes="${xts.sar.jars}"/>
                 <fileset dir="${jboss.lib.dir}" includes="${jboss.lib.jars}"/>
                 <fileset dir="${jboss.client.dir}" includes="${jboss.client.jars}"/>
                 <fileset dir="${jboss.server.lib.dir}" includes="${jboss.server.lib.jars}"/>
@@ -244,6 +249,7 @@
                 <fileset dir="${ext.lib.dir}" includes="${ext.antlr.jars}"/>
                 <!-- xts, jta and jboss as jars-->
                 <fileset dir="${xts.lib.dir}" includes="${xts.lib.jars}"/>
+                <fileset dir="${xts.sar.dir}" includes="${xts.sar.jars}"/>
                 <fileset dir="${jboss.lib.dir}" includes="${jboss.lib.jars}"/>
                 <fileset dir="${jboss.client.dir}" includes="${jboss.client.jars}"/>
                 <fileset dir="${jboss.server.lib.dir}" includes="${jboss.server.lib.jars}"/>
@@ -267,6 +273,7 @@
                 <fileset dir="${ext.lib.dir}" includes="${ext.antlr.jars}"/>
                 <!-- xts, jta and jboss as jars-->
                 <fileset dir="${xts.lib.dir}" includes="${xts.lib.jars}"/>
+                <fileset dir="${xts.sar.dir}" includes="${xts.sar.jars}"/>
                 <fileset dir="${jboss.lib.dir}" includes="${jboss.lib.jars}"/>
                 <fileset dir="${jboss.client.dir}" includes="${jboss.client.jars}"/>
                 <fileset dir="${jboss.server.lib.dir}" includes="${jboss.server.lib.jars}"/>
@@ -288,6 +295,7 @@
                 <fileset dir="${ext.lib.dir}" includes="${ext.antlr.jars}"/>
                 <!-- xts, jta and jboss as jars-->
                 <fileset dir="${xts.lib.dir}" includes="${xts.lib.jars}"/>
+                <fileset dir="${xts.sar.dir}" includes="${xts.sar.jars}"/>
                 <fileset dir="${jboss.lib.dir}" includes="${jboss.lib.jars}"/>
                 <fileset dir="${jboss.client.dir}" includes="${jboss.client.jars}"/>
                 <fileset dir="${jboss.server.lib.dir}" includes="${jboss.server.lib.jars}"/>
@@ -322,6 +330,7 @@
                 <fileset dir="${ext.lib.dir}" includes="${ext.antlr.jars}"/>
                 <!-- xts, jta and jboss as jars-->
                 <fileset dir="${xts.lib.dir}" includes="${xts.lib.jars}"/>
+                <fileset dir="${xts.sar.dir}" includes="${xts.sar.jars}"/>
                 <fileset dir="${jboss.lib.dir}" includes="${jboss.lib.jars}"/>
                 <fileset dir="${jboss.client.dir}" includes="${jboss.client.jars}"/>
                 <fileset dir="${jboss.server.lib.dir}" includes="${jboss.server.lib.jars}"/>
@@ -339,6 +348,7 @@
                 <fileset dir="${ext.lib.dir}" includes="${ext.antlr.jars}"/>
                 <!-- xts, jta and jboss as jars-->
                 <fileset dir="${xts.lib.dir}" includes="${xts.lib.jars}"/>
+                <fileset dir="${xts.sar.dir}" includes="${xts.sar.jars}"/>
                 <fileset dir="${jboss.lib.dir}" includes="${jboss.lib.jars}"/>
                 <fileset dir="${jboss.client.dir}" includes="${jboss.client.jars}"/>
                 <fileset dir="${jboss.server.lib.dir}" includes="${jboss.server.lib.jars}"/>

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/agent/Transformer.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/agent/Transformer.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/agent/Transformer.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -48,7 +48,7 @@
                 EventHandler eventHandler = method.getAnnotation(EventHandler.class);
                 if (eventHandler != null) {
                     String target = eventHandler.targetClass();
-                    if (isTransformable(target)) {
+                    if (isTransformable(target) && !isOrchestrationClass(target)) {
                         List<Annotation> clazzes = targetToHandlerClassMap.get(target);
                         if (clazzes == null) {
                             clazzes = new ArrayList<Annotation>();
@@ -282,7 +282,7 @@
      */
     private boolean isTransformable(String className)
     {
-        return (className.startsWith("com.arjuna."));
+        return (className.startsWith("com.arjuna.") || className.startsWith("org.jboss."));
     }
     /**
      * the instrumentation interface to the JVM

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/Event.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/Event.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/Event.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -179,7 +179,11 @@
             String message = "Event.createBindings : rebinding disallowed for variable " + token.getText() + " @ " + token.getLine() + "." + token.getCharPositionInLine();
             throw new TypeException(message);
         }
-
+        // if the binding type is undefined and the expression type is defined propagate the
+        // expression type to the binding
+        if (binding.getType() == Type.UNDEFINED && expr.getType() != Type.UNDEFINED) {
+            binding.setType(expr.getType());
+        }
         binding.setValue(expr);
         bindings.append(binding);
     }

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/Rule.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/Rule.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/Rule.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -418,7 +418,7 @@
          */
         public boolean debug(String text)
         {
-            System.out.println("rule " + rule.getName() + " : " + text);
+            System.out.println("rule.debug{" + rule.getName() + "} : " + text);
             return true;
         }
 
@@ -692,7 +692,7 @@
         protected void execute0()
                 throws ExecuteException
         {
-            System.out.println(rule.getName() + " execute0");
+            // System.out.println(rule.getName() + " execute0");
             executeEvent();
             if (executeCondition()) {
                 executeAction();
@@ -712,21 +712,21 @@
         private void executeEvent()
                 throws ExecuteException
         {
-            System.out.println(rule.getName() + " executeEvent");
+            // System.out.println(rule.getName() + " executeEvent");
             rule.getEvent().interpret(this);
         }
 
         private boolean executeCondition()
                 throws ExecuteException
         {
-            System.out.println(rule.getName() + " executeCondition");
+            // System.out.println(rule.getName() + " executeCondition");
             return rule.getCondition().interpret(this);
         }
         
         private void executeAction()
                 throws ExecuteException
         {
-            System.out.println(rule.getName() + " executeAction");
+            // System.out.println(rule.getName() + " executeAction");
             rule.getAction().interpret(this);
         }
 

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/binding/Binding.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/binding/Binding.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/binding/Binding.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -15,7 +15,7 @@
 
     public Binding(String name)
     {
-        this(name, null, null);
+        this(name, Type.UNDEFINED, null);
     }
 
     public Binding(String name, Type type)
@@ -26,7 +26,7 @@
     public Binding(String name, Type type, Expression value)
     {
         this.name = name;
-        this.type = type;
+        this.type = (type != null ? type : Type.UNDEFINED);
         this.value = value;
         if (name.equals("-1")) {
             index = -1;
@@ -78,6 +78,10 @@
         return type;
     }
 
+    public void setType(Type type)
+    {
+    }
+
     public boolean isHelper()
     {
         return index == -1;

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/ComparisonExpression.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/ComparisonExpression.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/ComparisonExpression.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -16,12 +16,14 @@
     public ComparisonExpression(int oper, Token token, Expression left, Expression right)
     {
         super(oper, token, left, right);
+        comparisonType = Type.UNDEFINED;
     }
 
     public Type typeCheck(Bindings bindings, TypeGroup typegroup, Type expected) throws TypeException {
         // TODO allow comparison of non-numeric values
         Type type1 = getOperand(0).typeCheck(bindings, typegroup, Type.N);
         Type type2 = getOperand(1).typeCheck(bindings, typegroup, Type.N);
+        comparisonType = Type.promote(type1,  type2);
         type = Type.Z;
         if (Type.dereference(expected).isDefined() && !expected.isAssignableFrom(type)) {
             throw new TypeException("ComparisonExpression.typeCheck : invalid expected result type " + expected.getName() + getPos());
@@ -38,7 +40,7 @@
             Number value2 = (Number)getOperand(1).interpret(helper);
             // type is the result of promoting one or other or both of the operands
             // and they should be converted to this type before doing the compare operation
-            if (type == type.B || type == type.S || type == type.I) {
+            if (comparisonType == type.B || comparisonType == type.S || comparisonType == type.I) {
                 int i1 = value1.intValue();
                 int i2 = value2.intValue();
                 boolean result;
@@ -67,7 +69,7 @@
                         break;
                 }
                 return result;
-            }  else if (type == type.J) {
+            }  else if (comparisonType == type.J) {
                 long l1 = value1.longValue();
                 long l2 = value2.longValue();
                 boolean result;
@@ -96,7 +98,7 @@
                         break;
                 }
                 return result;
-            }  else if (type == type.F) {
+            }  else if (comparisonType == type.F) {
                 float f1 = value1.floatValue();
                 float f2 = value2.floatValue();
                 boolean result;
@@ -125,7 +127,7 @@
                         break;
                 }
                 return result;
-            }  else if (type == type.D) {
+            }  else if (comparisonType == type.D) {
                 double d1 = value1.doubleValue();
                 double d2 = value2.doubleValue();
                 boolean result;
@@ -154,7 +156,7 @@
                         break;
                 }
                 return result;
-            }  else { // (type == type.C)
+            }  else { // (comparisonType == type.C)
                 char c1 = (char)value1.intValue();
                 char c2 = (char)value2.intValue();
                 boolean result;
@@ -190,4 +192,5 @@
             throw new ExecuteException("ComparisonExpression.interpret : unexpected exception for operation " + token + getPos() + " in rule " + helper.getName(), e);
         }
     }
+    private Type comparisonType;
 }
\ No newline at end of file

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/ExpressionHelper.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/ExpressionHelper.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/ExpressionHelper.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -324,7 +324,7 @@
                 if (type == Type.STRING) {
                     // must be doing String concatenation
                     operand1 = createExpression(bindings, child1, Type.STRING);
-                    operand2 = createExpression(bindings, child2, Type.STRING);
+                    operand2 = createExpression(bindings, child2, Type.UNDEFINED);
                     expr = new StringPlusExpression(token, operand1,  operand2);
                 } else if (type.isNumeric()) {
                     // must be doing arithmetic
@@ -340,7 +340,7 @@
                         int convertedOper = OperExpression.convertOper(oper);
                         expr = new ArithmeticExpression(convertedOper, token, operand1, operand2);
                     } else if (operand1.getType() == Type.STRING) {
-                        operand2 = createExpression(bindings, child2, Type.STRING);
+                        operand2 = createExpression(bindings, child2, Type.UNDEFINED);
                         expr = new StringPlusExpression(token, operand1,  operand2);
                     } else {
                         operand2 = createExpression(bindings, child2, Type.UNDEFINED);

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/FieldExpression.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/FieldExpression.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/FieldExpression.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -50,13 +50,6 @@
             return false;
         }
 
-        // use the binding type to type ref
-
-        if (ownerType[0].isUndefined()) {
-            Type bindingType = binding.getType();
-            ownerType[0] = bindingType;
-        }
-
         return true;
     }
 
@@ -64,7 +57,10 @@
         // check the owner type is defined and then start searching for
         // the types of each field referenced from it
 
-        ownerType[0] = Type.dereference(ownerType[0]);
+        Binding binding = bindings.lookup(ref);
+        Type bindingType = binding.getType();
+        ownerType[0] = Type.dereference(bindingType);
+        
         if (ownerType[0].isUndefined()) {
             throw new TypeException("FieldExpresssion.typeCheck : unbound instance " + ref + getPos());
         }

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/Variable.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/Variable.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/expression/Variable.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -43,34 +43,23 @@
         Binding binding = bindings.lookup(name);
 
         if (binding == null) {
-            System.err.println("VarExpresssion.bind : unbound variable " + name + getPos());                
+            System.err.println("Variable.bind : unbound variable " + name + getPos());
             return false;
         }
-        // if this type is undefined then adopt the type of the binding so that this
-        // variable gets typed whenever the binding does otherwise ensure the types are
-        // compatible
+        // adopt the binding type
 
-        type = Type.dereference(type);
-        
-        if (type.isUndefined()) {
-            this.type = binding.getType();
-        } else {
-            Type bindingType = binding.getType();
+        this.type = binding.getType();
 
-            if (!bindingType.isAssignableFrom(this.type)) {
-                System.err.println("VarExpresssion.bind : type " + this.type.getName() + " of variable " + name + " conflicts with bound type " + bindingType.getName() + getPos());                
-                return false;
-            }
-        }
-
         return true;
     }
 
     public Type typeCheck(Bindings bindings, TypeGroup typegroup, Type expected) throws TypeException {
         // type must be defined by now or we are in trouble
 
-        type = Type.dereference(type);
+        Binding binding = bindings.lookup(name);
 
+        type = Type.dereference(binding.getType());
+
         if (type.isUndefined()) {
             throw new TypeException("Variable.typeCheck : unable to derive type for variable " + name +  getPos());
         }

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/type/Type.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/type/Type.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/orchestration/rule/type/Type.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -436,7 +436,7 @@
     {
         this.typeName = typeName;
 
-        if (clazz == null && (flags & F_PRIMITIVE) == 0) {
+        if (clazz == null) {
             flags |= F_UNKNOWN;
         }
 
@@ -694,20 +694,20 @@
     // unknown type marker
     final public static int F_UNKNOWN       = 0x1000;
     // primitive type marker
-    final public static int F_PRIMITIVE     = 0x2000;
+    final public static int F_PRIMITIVE     = 0x2000;                
     // string type marker
     final public static int F_STRING        = 0x4000;
 
     // we need to cope with array types
 
-    final public static Type Z = new Type("boolean", null, F_BOOLEAN|F_PRIMITIVE);
-    final public static Type B = new Type("byte", null, F_INTEGRAL|F_PRIMITIVE);
-    final public static Type S = new Type("short", null, F_INTEGRAL|F_PRIMITIVE);
-    final public static Type C = new Type("char", null, F_INTEGRAL|F_PRIMITIVE);
-    final public static Type I = new Type("int", null, F_INTEGRAL|F_PRIMITIVE);
-    final public static Type J = new Type("long", null, F_INTEGRAL|F_PRIMITIVE);
-    final public static Type F = new Type("float", null, F_FLOATING|F_PRIMITIVE);
-    final public static Type D = new Type("double", null, F_FLOATING|F_PRIMITIVE);
+    final public static Type Z = new Type("boolean", boolean.class, F_BOOLEAN|F_PRIMITIVE);
+    final public static Type B = new Type("byte", byte.class, F_INTEGRAL|F_PRIMITIVE);
+    final public static Type S = new Type("short", short.class, F_INTEGRAL|F_PRIMITIVE);
+    final public static Type C = new Type("char", char.class, F_INTEGRAL|F_PRIMITIVE);
+    final public static Type I = new Type("int", int.class, F_INTEGRAL|F_PRIMITIVE);
+    final public static Type J = new Type("long", long.class, F_INTEGRAL|F_PRIMITIVE);
+    final public static Type F = new Type("float", float.class, F_FLOATING|F_PRIMITIVE);
+    final public static Type D = new Type("double", double.class, F_FLOATING|F_PRIMITIVE);
     // pseudo type representing an undefined numeric primitive type
     final public static Type N = new Type("", null, F_UNKNOWN|F_NUMERIC|F_PRIMITIVE);
 

Modified: labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/test/HandlerClass.java
===================================================================
--- labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/test/HandlerClass.java	2008-09-17 11:53:42 UTC (rev 22845)
+++ labs/jbosstm/workspace/adinn/orchestration/src/org/jboss/jbossts/test/HandlerClass.java	2008-09-17 13:24:00 UTC (rev 22846)
@@ -54,7 +54,7 @@
                     "identifier:String = engine.getId()",
             condition = "recovered",
             action = "debug(\"adding countdown for \" + identifier),\n" +
-                    "addCountDown(identifier, 2)"
+                    "addCountDown(identifier, 1)"
     ) public static void handleNewEngine()
     {
         // activates a counter identified by a recovered engine's identifier when the engine is recreated
@@ -80,4 +80,35 @@
         // kills the current thread when a committed message is received for an engine whose identifier identifies
         // an active counter
     }
+    @EventHandler(
+            targetClass="org.jboss.jbossts.xts.recovery.RecoverACCoordinator",
+            targetMethod="replayPhase2",
+            targetLine = 76,
+            event = "coordinator = $0,\n" +
+                    "cid : CoordinatorId = coordinator.identifier(),\n" +
+                    "PREPARED : int = 5,\n" +
+                    "COMMITTING : int = 6,\n" +
+                    "status : int = coordinator.status()",
+            condition = "(status == ActionStatus.PREPARED)\n" +
+                    "OR" +
+                    "(status == ActionStatus.COMMITTING)\n",
+            action = "debug(\"replaying commit for prepared transaction \" + cid)"
+    ) public static void handleReplayPhase2()
+    {
+        // traces replay of a prepared transaction
+    }
+    @EventHandler(
+            targetClass="org.jboss.jbossts.xts.recovery.RecoverACCoordinator",
+            targetMethod="replayPhase2",
+            targetLine = 76,
+            event = "coordinator = $0,\n" +
+                    "cid : CoordinatorId = coordinator.identifier(),\n" +
+                    "COMMITTED : int = 7,\n" +
+                    "status : int = coordinator.status()",
+            condition = "status == ActionStatus.COMMITTED",
+            action = "debug(\"replaying commit for heuristic committed transaction \" + cid)"
+    ) public static void handleHeuristicCommittedReplayPhase2()
+    {
+        // traces replay of a heuristic committed transaction
+    }
 }




More information about the jboss-svn-commits mailing list