Author: degenaro
Date: Thu Oct 30 10:09:07 2014
New Revision: 1635448

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

Perform FSM action at end of transition processing.

Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Dispatcher.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGetCAS.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionSendCAS.java
    
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/common/fsm/Fsm.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java?rev=1635448&r1=1635447&r2=1635448&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java
 Thu Oct 30 10:09:07 2014
@@ -120,8 +120,6 @@ public class Fsm implements IFsmBuilder 
                                        
mb.append(Standardize.Label.event.get()+event.getName());
                                        throw new FsmException(mb.toString());
                                }
-                               IAction action = value.getAction();
-                               action.engage(actionData);
                                IState _statePrevious = _stateCurrent;
                                _stateCurrent = value.getState();
                                setStateCurrent(_stateCurrent);
@@ -130,6 +128,8 @@ public class Fsm implements IFsmBuilder 
                                
mb.append(Standardize.Label.curr.get()+_stateCurrent.getName());
                                
mb.append(Standardize.Label.prev.get()+_statePrevious.getName());
                                logger.info(location, IEntityId.null_id, 
mb.toString());
+                               IAction action = value.getAction();
+                               action.engage(actionData);
                        }
                }
                catch(Exception e) {

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Dispatcher.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Dispatcher.java?rev=1635448&r1=1635447&r2=1635448&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Dispatcher.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Dispatcher.java
 Thu Oct 30 10:09:07 2014
@@ -122,15 +122,6 @@ public class Dispatcher {
                IEvent event = WiFsm.Get_Request;
                Object actionData = new ActionData(wi, rwi, trans);
                fsm.transition(event, actionData);
-               IMetaCas metaCas = trans.getMetaCas();
-               if(metaCas != null) {
-                       wi.setMetaCas(metaCas);
-                       event = WiFsm.CAS_Available;
-               }
-               else {
-                       event = WiFsm.CAS_Unavailable;
-               }
-               fsm.transition(event, actionData);
        }
        
        public void handleMetaCasTransationAck(IMetaCasTransaction trans, 
IRemoteWorkerIdentity rwi) {

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGetCAS.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/ActionGetCAS.java?rev=1635448&r1=1635447&r2=1635448&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGetCAS.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGetCAS.java
 Thu Oct 30 10:09:07 2014
@@ -24,6 +24,8 @@ import org.apache.uima.ducc.container.co
 import org.apache.uima.ducc.container.common.MessageBuffer;
 import org.apache.uima.ducc.container.common.Standardize;
 import org.apache.uima.ducc.container.common.fsm.iface.IAction;
+import org.apache.uima.ducc.container.common.fsm.iface.IEvent;
+import org.apache.uima.ducc.container.common.fsm.iface.IFsm;
 import org.apache.uima.ducc.container.jd.JobDriverCasManager;
 import org.apache.uima.ducc.container.jd.JobDriverCommon;
 import org.apache.uima.ducc.container.jd.dispatch.IRemoteWorkerIdentity;
@@ -48,6 +50,7 @@ public class ActionGetCAS implements IAc
                IActionData actionData = (IActionData) objectData;
                try {
                        IWorkItem wi = actionData.getWorkItem();
+                       IFsm fsm = wi.getFsm();
                        IMetaCasTransaction trans = 
actionData.getMetaCasTransaction();
                        IRemoteWorkerIdentity rwi = new 
RemoteWorkerIdentity(trans);
                        //
@@ -55,19 +58,25 @@ public class ActionGetCAS implements IAc
                        IMetaCas metaCas = jdcm.getMetaCas();
                        trans.setMetaCas(metaCas);
                        //
+                       IEvent event = null;
+                       //
                        if(metaCas != null) {
                                wi.setTodGet();
+                               event = WiFsm.CAS_Available;
                                MessageBuffer mb = new MessageBuffer();
                                
mb.append(Standardize.Label.transNo.get()+trans.getTransactionId().toString());
                                
mb.append(Standardize.Label.seqNo.get()+metaCas.getSystemKey());
                                
mb.append(Standardize.Label.remote.get()+rwi.toString());
                                logger.info(location, IEntityId.null_id, 
mb.toString());
                        }
-                       else {MessageBuffer mb = new MessageBuffer();
+                       else {
+                               event = WiFsm.CAS_Unavailable;
+                               MessageBuffer mb = new MessageBuffer();
                                mb.append("No CAS found for processing");
                                logger.info(location, IEntityId.null_id, 
mb.toString());
                        }
-                       
+                       //
+                       fsm.transition(event, actionData);
                }
                catch(Exception e) {
                        logger.error(location, IEntityId.null_id, e);

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionSendCAS.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/ActionSendCAS.java?rev=1635448&r1=1635447&r2=1635448&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionSendCAS.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionSendCAS.java
 Thu Oct 30 10:09:07 2014
@@ -22,6 +22,9 @@ import org.apache.uima.ducc.container.co
 import org.apache.uima.ducc.container.common.IEntityId;
 import org.apache.uima.ducc.container.common.IContainerLogger;
 import org.apache.uima.ducc.container.common.fsm.iface.IAction;
+import org.apache.uima.ducc.container.jd.dispatch.IWorkItem;
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
 
 public class ActionSendCAS implements IAction {
        
@@ -37,6 +40,15 @@ public class ActionSendCAS implements IA
                String location = "engage";
                logger.debug(location, IEntityId.null_id, "");
                IActionData actionData = (IActionData) objectData;
+               try {
+                       IWorkItem wi = actionData.getWorkItem();
+                       IMetaCasTransaction trans = 
actionData.getMetaCasTransaction();
+                       IMetaCas metaCas = trans.getMetaCas();
+                       wi.setMetaCas(metaCas);
+               }
+               catch(Exception e) {
+                       logger.error(location, IEntityId.null_id, e);
+               }
        }
 
 }

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=1635448&r1=1635447&r2=1635448&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
 Thu Oct 30 10:09:07 2014
@@ -59,6 +59,8 @@ public class WiFsm extends Fsm {
        
        private void initialize() throws FsmException {
                
+               // current state // event // action // next state //
+               
                addInitial(Start, Get_Request, ActionGetCAS, Get_Pending);
                
                add(Get_Pending, CAS_Available, ActionSendCAS, CAS_Send);


Reply via email to