Author: degenaro
Date: Sun Nov  2 12:28:54 2014
New Revision: 1636116

URL: http://svn.apache.org/r1636116
Log:
UIMA-4069 Redesign of JD toward the main goal of classpath separation for 
container (system) code.

Update FSM to handle preemption events.

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java?rev=1636116&r1=1636115&r2=1636116&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java
 Sun Nov  2 12:28:54 2014
@@ -45,12 +45,16 @@ public class WiFsm extends Fsm {
        public static IEvent Process_Failure    = new Event("Process_Failure");
        public static IEvent Process_Preempt    = new Event("Process_Premept");
        
-       public IAction ActionGetCAS             = new ActionGetCAS();
-       public IAction ActionSendCAS    = new ActionSendCAS();
-       public IAction ActionAckCAS             = new ActionAckCAS();
-       public IAction ActionEndCAS             = new ActionEndCAS();
+       public IAction ActionGet                                = new 
ActionGet();
+       public IAction ActionSend                               = new 
ActionSend();
+       public IAction ActionAck                                = new 
ActionAck();
+       public IAction ActionEnd                                = new 
ActionEnd();
        
-       public IAction ActionIgnore     = new ActionIgnore();
+       public IAction ActionInProgress                 = new 
ActionInProgress();
+       public IAction ActionPreempt                    = new ActionPreempt();
+       
+       public IAction ActionIgnore                     = new ActionIgnore();
+       public IAction ActionError                              = new 
ActionError();
        
        public WiFsm() throws FsmException {
                super();
@@ -61,13 +65,31 @@ public class WiFsm extends Fsm {
                
                // current state // event // action // next state //
                
-               addInitial(Start, Get_Request, ActionGetCAS, Get_Pending);
+               initial(Start);
+               
+               add(Start, Get_Request, ActionGet, Get_Pending);
+               add(Start, CAS_Available, ActionIgnore, Start);
+               add(Start, CAS_Unavailable, ActionIgnore, Start);
+               add(Start, Ack_Request, ActionError, Start);
+               add(Start, Process_Preempt, ActionIgnore, Start);
                
-               add(Get_Pending, CAS_Available, ActionSendCAS, CAS_Send);
-               add(Get_Pending, CAS_Unavailable, ActionSendCAS, Start);
+               add(Get_Pending, Get_Request, ActionInProgress, Get_Pending);
+               add(Get_Pending, CAS_Available, ActionSend, CAS_Send);
+               add(Get_Pending, CAS_Unavailable, ActionSend, Start);
+               add(Get_Pending, Ack_Request, ActionError, Get_Pending);
+               add(Get_Pending, Process_Preempt, ActionPreempt, Start);
                
-               add(CAS_Send, Ack_Request, ActionAckCAS, CAS_Active);
+               add(CAS_Send, Get_Request, ActionInProgress, CAS_Send);
+               add(CAS_Send, CAS_Available, ActionIgnore, CAS_Send);
+               add(CAS_Send, CAS_Unavailable, ActionIgnore, CAS_Send);
+               add(CAS_Send, Ack_Request, ActionAck, CAS_Active);
+               add(CAS_Send, Process_Preempt, ActionPreempt, Start);
                
-               add(CAS_Active, End_Request, ActionEndCAS, Start);
+               add(CAS_Active, Get_Request, ActionError, CAS_Active);
+               add(CAS_Active, CAS_Available, ActionIgnore, CAS_Active);
+               add(CAS_Active, CAS_Unavailable, ActionIgnore, CAS_Active);
+               add(CAS_Active, Ack_Request, ActionError, CAS_Active);
+               add(CAS_Active, End_Request, ActionEnd, Start);
+               add(CAS_Active, Process_Preempt, ActionPreempt, Start);
        }
 }


Reply via email to