You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oozie.apache.org by vi...@apache.org on 2012/12/14 01:07:22 UTC

svn commit: r1421622 - in /oozie/trunk: ./ core/src/main/java/org/apache/oozie/workflow/lite/

Author: virag
Date: Fri Dec 14 00:07:20 2012
New Revision: 1421622

URL: http://svn.apache.org/viewvc?rev=1421622&view=rev
Log:
OOZIE-1130 Upgrade from 3.2 to 3.3 failing due to change in WorkflowInstance structure (virag)

Modified:
    oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/EndNodeDef.java
    oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/ForkNodeDef.java
    oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/JoinNodeDef.java
    oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/KillNodeDef.java
    oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/StartNodeDef.java
    oozie/trunk/release-log.txt

Modified: oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/EndNodeDef.java
URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/EndNodeDef.java?rev=1421622&r1=1421621&r2=1421622&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/EndNodeDef.java (original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/EndNodeDef.java Fri Dec 14 00:07:20 2012
@@ -32,4 +32,23 @@ public class EndNodeDef extends ControlN
         super(name, "", klass, Collections.EMPTY_LIST);
     }
 
+    public static class EndNodeHandler extends NodeHandler {
+
+        public boolean enter(Context context) {
+            return true;
+        }
+
+        public String exit(Context context) {
+            context.completeJob();
+            return null;
+        }
+
+        public void kill(Context context) {
+        }
+
+        public void fail(Context context) {
+        }
+
+    }
+
 }

Modified: oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/ForkNodeDef.java
URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/ForkNodeDef.java?rev=1421622&r1=1421621&r2=1421622&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/ForkNodeDef.java (original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/ForkNodeDef.java Fri Dec 14 00:07:20 2012
@@ -17,6 +17,7 @@
  */
 package org.apache.oozie.workflow.lite;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -32,4 +33,37 @@ public class ForkNodeDef extends Control
         super(name, "", klass, transitions);
     }
 
+    public static class ForkNodeHandler extends NodeHandler {
+
+        public boolean enter(Context context) {
+            return true;
+        }
+
+        // the return list contains (parentExecutionPath/transition#transition)+
+        public List<String> multiExit(Context context) {
+            List<String> transitions = context.getNodeDef().getTransitions();
+            context.setVar(ControlNodeHandler.FORK_COUNT_PREFIX + context.getExecutionPath(), "" + transitions.size());
+
+            List<String> fullTransitions = new ArrayList<String>(transitions.size());
+
+            for (String transition : transitions) {
+                String childExecutionPath = context.createExecutionPath(transition);
+                String fullTransition = context.createFullTransition(childExecutionPath, transition);
+                fullTransitions.add(fullTransition);
+            }
+            return fullTransitions;
+        }
+
+        public String exit(Context context) {
+            throw new UnsupportedOperationException();
+        }
+
+        public void kill(Context context) {
+        }
+
+        public void fail(Context context) {
+        }
+
+    }
+
 }

Modified: oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/JoinNodeDef.java
URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/JoinNodeDef.java?rev=1421622&r1=1421621&r2=1421622&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/JoinNodeDef.java (original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/JoinNodeDef.java Fri Dec 14 00:07:20 2012
@@ -17,7 +17,12 @@
  */
 package org.apache.oozie.workflow.lite;
 
+import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.List;
+
+import org.apache.oozie.ErrorCode;
+import org.apache.oozie.workflow.WorkflowException;
 
 /**
  * Node definition for JOIN control node.
@@ -31,4 +36,61 @@ public class JoinNodeDef extends Control
         super(name, "", klass, Arrays.asList(transition));
     }
 
+    public static class JoinNodeHandler extends NodeHandler {
+
+        public void loopDetection(Context context) throws WorkflowException {
+            String flag = getLoopFlag(context.getNodeDef().getName());
+            if (context.getVar(flag) != null) {
+                throw new WorkflowException(ErrorCode.E0709, context.getNodeDef().getName());
+            }
+            String parentExecutionPath = context.getParentExecutionPath(context.getExecutionPath());
+            String forkCount = context.getVar(ControlNodeHandler.FORK_COUNT_PREFIX + parentExecutionPath);
+            if (forkCount == null) {
+                throw new WorkflowException(ErrorCode.E0720, context.getNodeDef().getName());
+            }
+            int count = Integer.parseInt(forkCount) - 1;
+            if (count == 0) {
+                context.setVar(flag, "true");
+            }
+        }
+
+        public boolean enter(Context context) throws WorkflowException {
+            String parentExecutionPath = context.getParentExecutionPath(context.getExecutionPath());
+            String forkCount = context.getVar(ControlNodeHandler.FORK_COUNT_PREFIX + parentExecutionPath);
+            if (forkCount == null) {
+                throw new WorkflowException(ErrorCode.E0720, context.getNodeDef().getName());
+            }
+            int count = Integer.parseInt(forkCount) - 1;
+            if (count > 0) {
+                context.setVar(ControlNodeHandler.FORK_COUNT_PREFIX + parentExecutionPath, "" + count);
+                context.deleteExecutionPath();
+            }
+            else {
+                context.setVar(ControlNodeHandler.FORK_COUNT_PREFIX + parentExecutionPath, null);
+            }
+            return (count == 0);
+        }
+
+        public List<String> multiExit(Context context) {
+            String parentExecutionPath = context.getParentExecutionPath(context.getExecutionPath());
+            // NOW we delete..
+            context.deleteExecutionPath();
+
+            String transition = context.getNodeDef().getTransitions().get(0);
+            String fullTransition = context.createFullTransition(parentExecutionPath, transition);
+            List<String> transitions = new ArrayList<String>(1);
+            transitions.add(fullTransition);
+            return transitions;
+        }
+
+        public String exit(Context context) {
+            throw new UnsupportedOperationException();
+        }
+
+        public void kill(Context context) {
+        }
+
+        public void fail(Context context) {
+        }
+    }
 }

Modified: oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/KillNodeDef.java
URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/KillNodeDef.java?rev=1421622&r1=1421621&r2=1421622&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/KillNodeDef.java (original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/KillNodeDef.java Fri Dec 14 00:07:20 2012
@@ -32,4 +32,22 @@ public class KillNodeDef extends Control
         super(name, message, klass, Collections.EMPTY_LIST);
     }
 
+    public static class KillNodeHandler extends NodeHandler {
+
+        public boolean enter(Context context) {
+            return true;
+        }
+
+        public String exit(Context context) {
+            context.killJob();
+            return null;
+        }
+
+        public void kill(Context context) {
+        }
+
+        public void fail(Context context) {
+        }
+    }
+
 }

Modified: oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/StartNodeDef.java
URL: http://svn.apache.org/viewvc/oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/StartNodeDef.java?rev=1421622&r1=1421621&r2=1421622&view=diff
==============================================================================
--- oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/StartNodeDef.java (original)
+++ oozie/trunk/core/src/main/java/org/apache/oozie/workflow/lite/StartNodeDef.java Fri Dec 14 00:07:20 2012
@@ -18,7 +18,9 @@
 package org.apache.oozie.workflow.lite;
 
 
+import org.apache.oozie.ErrorCode;
 import org.apache.oozie.util.ParamChecker;
+import org.apache.oozie.workflow.WorkflowException;
 
 import java.util.Arrays;
 
@@ -48,4 +50,27 @@ public class StartNodeDef extends Contro
         super(START, "", klass, Arrays.asList(ParamChecker.notEmpty(transitionTo, "transitionTo")));
     }
 
+    /**
+     * Start node handler. <p/> It does an immediate transition to the transitionTo node.
+     */
+    public static class StartNodeHandler extends NodeHandler {
+
+        public boolean enter(Context context) throws WorkflowException {
+            if (!context.getSignalValue().equals(StartNodeDef.START)) {
+                throw new WorkflowException(ErrorCode.E0715, context.getSignalValue());
+            }
+            return true;
+        }
+
+        public String exit(Context context) {
+            return context.getNodeDef().getTransitions().get(0);
+        }
+
+        public void kill(Context context) {
+        }
+
+        public void fail(Context context) {
+        }
+    }
+
 }

Modified: oozie/trunk/release-log.txt
URL: http://svn.apache.org/viewvc/oozie/trunk/release-log.txt?rev=1421622&r1=1421621&r2=1421622&view=diff
==============================================================================
--- oozie/trunk/release-log.txt (original)
+++ oozie/trunk/release-log.txt Fri Dec 14 00:07:20 2012
@@ -63,6 +63,7 @@ OOZIE-944 Implement Workflow Generator U
 
 -- Oozie 3.3.1 (unreleased)
 
+OOZIE-1130 Upgrade from 3.2 to 3.3 failing due to change in WorkflowInstance structure (virag)
 OOZIE-1128 When a user submitting a job is not UNDEF in the request, it should use that user as the submitter (tucu)
 OOZIE-1091 workflow functional spec, fs action related issues (virag)
 OOZIE-1116 Create hbaselibs module (virag)