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);