Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/RemoteWorkerIdentity.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Tod.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/Tod.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Tod.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Tod.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,14 @@
+package org.apache.uima.ducc.container.jd.dispatch;
+
+public class Tod {
+
+ private long tod = 0;
+
+ public void set() {
+ tod = System.currentTimeMillis();
+ }
+
+ public long get() {
+ return tod;
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Tod.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/WorkItem.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/WorkItem.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/WorkItem.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/WorkItem.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,69 @@
+package org.apache.uima.ducc.container.jd.dispatch;
+
+import org.apache.uima.ducc.container.common.fsm.iface.IFsm;
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+
+public class WorkItem implements IWorkItem {
+
+ private IMetaCas metaCas = null;
+ private IFsm fsm = null;
+
+ private Tod todGet = new Tod();
+ private Tod todAck = new Tod();
+ private Tod todEnd = new Tod();
+
+ public WorkItem(IMetaCas metaCas, IFsm fsm) {
+ setMetaCas(metaCas);
+ setFsm(fsm);
+ }
+
+ @Override
+ public void setMetaCas(IMetaCas value) {
+ metaCas = value;
+ }
+
+ @Override
+ public IMetaCas getMetaCas() {
+ return metaCas;
+ }
+
+ @Override
+ public void setFsm(IFsm value) {
+ fsm = value;
+ }
+
+ @Override
+ public IFsm getFsm() {
+ return fsm;
+ }
+
+ @Override
+ public void setTodGet() {
+ todGet.set();
+ }
+
+ @Override
+ public long getTodGet() {
+ return todGet.get();
+ }
+
+ @Override
+ public void setTodAck() {
+ todAck.set();
+ }
+
+ @Override
+ public long getTodAck() {
+ return todAck.get();
+ }
+
+ @Override
+ public void setTodEnd() {
+ todEnd.set();
+ }
+
+ @Override
+ public long getTodEnd() {
+ return todEnd.get();
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/WorkItem.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckCAS.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/ActionAckCAS.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckCAS.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckCAS.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,54 @@
+package org.apache.uima.ducc.container.jd.fsm.wi;
+
+import org.apache.uima.ducc.container.common.DuccLogger;
+import org.apache.uima.ducc.container.common.IDuccId;
+import org.apache.uima.ducc.container.common.IDuccLogger;
+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.jd.dispatch.IRemoteWorkerIdentity;
+import org.apache.uima.ducc.container.jd.dispatch.IWorkItem;
+import org.apache.uima.ducc.container.jd.dispatch.RemoteWorkerIdentity;
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
+
+public class ActionAckCAS implements IAction {
+
+ private IDuccLogger logger = DuccLogger.getLogger(ActionAckCAS.class,
IDuccLogger.Component.JD.name());
+
+ @Override
+ public String getName() {
+ return ActionAckCAS.class.getName();
+ }
+
+ @Override
+ public void engage(Object objectData) {
+ String location = "engage";
+ logger.debug(location, IDuccId.null_id, "");
+ IActionData actionData = (IActionData) objectData;
+ try {
+ IWorkItem wi = actionData.getWorkItem();
+ IMetaCasTransaction trans =
actionData.getMetaCasTransaction();
+ IRemoteWorkerIdentity rwi = new
RemoteWorkerIdentity(trans);
+ //
+ IMetaCas metaCas = wi.getMetaCas();
+ //
+ if(metaCas != null) {
+ wi.setTodAck();
+ 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, IDuccId.null_id,
mb.toString());
+ }
+ else {MessageBuffer mb = new MessageBuffer();
+ mb.append("No CAS found for processing");
+ logger.info(location, IDuccId.null_id,
mb.toString());
+ }
+ }
+ catch(Exception e) {
+ logger.error(location, IDuccId.null_id, e);
+ }
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckCAS.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionData.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/ActionData.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionData.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionData.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,45 @@
+package org.apache.uima.ducc.container.jd.fsm.wi;
+
+import org.apache.uima.ducc.container.jd.dispatch.IRemoteWorkerIdentity;
+import org.apache.uima.ducc.container.jd.dispatch.IWorkItem;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
+
+public class ActionData implements IActionData {
+
+ private IWorkItem workItem = null;
+ private IRemoteWorkerIdentity remoteWorkerIdentity = null;
+ private IMetaCasTransaction metaCasTransaction = null;
+
+ public ActionData(IWorkItem workItem, IRemoteWorkerIdentity
remoteWorkerIdentity, IMetaCasTransaction metaCasTransaction) {
+ setWorkItem(workItem);
+ setRemoteWorkerIdentity(remoteWorkerIdentity);
+ setMetaCasTransaction(metaCasTransaction);
+ }
+
+ @Override
+ public IWorkItem getWorkItem() {
+ return workItem;
+ }
+
+ private void setWorkItem(IWorkItem value) {
+ workItem = value;
+ }
+
+ @Override
+ public IRemoteWorkerIdentity getRemoteWorkerIdentity() {
+ return remoteWorkerIdentity;
+ }
+
+ private void setRemoteWorkerIdentity(IRemoteWorkerIdentity value) {
+ remoteWorkerIdentity = value;
+ }
+
+ @Override
+ public IMetaCasTransaction getMetaCasTransaction() {
+ return metaCasTransaction;
+ }
+
+ private void setMetaCasTransaction(IMetaCasTransaction value) {
+ metaCasTransaction = value;
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionData.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndCAS.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/ActionEndCAS.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndCAS.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndCAS.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,53 @@
+package org.apache.uima.ducc.container.jd.fsm.wi;
+
+import org.apache.uima.ducc.container.common.DuccLogger;
+import org.apache.uima.ducc.container.common.IDuccId;
+import org.apache.uima.ducc.container.common.IDuccLogger;
+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.jd.dispatch.IRemoteWorkerIdentity;
+import org.apache.uima.ducc.container.jd.dispatch.IWorkItem;
+import org.apache.uima.ducc.container.jd.dispatch.RemoteWorkerIdentity;
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
+
+public class ActionEndCAS implements IAction {
+
+ private IDuccLogger logger = DuccLogger.getLogger(ActionEndCAS.class,
IDuccLogger.Component.JD.name());
+
+ @Override
+ public String getName() {
+ return ActionEndCAS.class.getName();
+ }
+
+ @Override
+ public void engage(Object objectData) {
+ String location = "engage";
+ logger.debug(location, IDuccId.null_id, "");
+ IActionData actionData = (IActionData) objectData;
+ try {
+ IWorkItem wi = actionData.getWorkItem();
+ IMetaCasTransaction trans =
actionData.getMetaCasTransaction();
+ IRemoteWorkerIdentity rwi = new
RemoteWorkerIdentity(trans);
+ IMetaCas metaCas = wi.getMetaCas();
+ //
+ if(metaCas != null) {
+ wi.setTodEnd();
+ 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, IDuccId.null_id,
mb.toString());
+ }
+ else {MessageBuffer mb = new MessageBuffer();
+ mb.append("No CAS found for processing");
+ logger.info(location, IDuccId.null_id,
mb.toString());
+ }
+ }
+ catch(Exception e) {
+ logger.error(location, IDuccId.null_id, e);
+ }
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndCAS.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
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=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGetCAS.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGetCAS.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,60 @@
+package org.apache.uima.ducc.container.jd.fsm.wi;
+
+import org.apache.uima.ducc.container.common.DuccLogger;
+import org.apache.uima.ducc.container.common.IDuccId;
+import org.apache.uima.ducc.container.common.IDuccLogger;
+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.jd.JobDriverCasManager;
+import org.apache.uima.ducc.container.jd.JobDriverCommon;
+import org.apache.uima.ducc.container.jd.dispatch.IRemoteWorkerIdentity;
+import org.apache.uima.ducc.container.jd.dispatch.IWorkItem;
+import org.apache.uima.ducc.container.jd.dispatch.RemoteWorkerIdentity;
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
+
+public class ActionGetCAS implements IAction {
+
+ private IDuccLogger logger = DuccLogger.getLogger(ActionGetCAS.class,
IDuccLogger.Component.JD.name());
+
+ @Override
+ public String getName() {
+ return ActionGetCAS.class.getName();
+ }
+
+ @Override
+ public void engage(Object objectData) {
+ String location = "engage";
+ logger.debug(location, IDuccId.null_id, "");
+ IActionData actionData = (IActionData) objectData;
+ try {
+ IWorkItem wi = actionData.getWorkItem();
+ IMetaCasTransaction trans =
actionData.getMetaCasTransaction();
+ IRemoteWorkerIdentity rwi = new
RemoteWorkerIdentity(trans);
+ //
+ JobDriverCasManager jdcm =
JobDriverCommon.getInstance().getCasManager();
+ IMetaCas metaCas = jdcm.getMetaCas();
+ trans.setMetaCas(metaCas);
+ //
+ if(metaCas != null) {
+ wi.setTodGet();
+ 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, IDuccId.null_id,
mb.toString());
+ }
+ else {MessageBuffer mb = new MessageBuffer();
+ mb.append("No CAS found for processing");
+ logger.info(location, IDuccId.null_id,
mb.toString());
+ }
+
+ }
+ catch(Exception e) {
+ logger.error(location, IDuccId.null_id, e);
+ }
+
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGetCAS.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionIgnore.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/ActionIgnore.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionIgnore.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionIgnore.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,23 @@
+package org.apache.uima.ducc.container.jd.fsm.wi;
+
+import org.apache.uima.ducc.container.common.DuccLogger;
+import org.apache.uima.ducc.container.common.IDuccId;
+import org.apache.uima.ducc.container.common.IDuccLogger;
+import org.apache.uima.ducc.container.common.fsm.iface.IAction;
+
+public class ActionIgnore implements IAction {
+
+ private IDuccLogger logger = DuccLogger.getLogger(ActionIgnore.class,
IDuccLogger.Component.JD.name());
+
+ @Override
+ public String getName() {
+ return ActionIgnore.class.getName();
+ }
+
+ @Override
+ public void engage(Object objectData) {
+ String location = "engage";
+ logger.debug(location, IDuccId.null_id, "");
+ IActionData actionData = (IActionData) objectData;
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionIgnore.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
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=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionSendCAS.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionSendCAS.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,24 @@
+package org.apache.uima.ducc.container.jd.fsm.wi;
+
+import org.apache.uima.ducc.container.common.DuccLogger;
+import org.apache.uima.ducc.container.common.IDuccId;
+import org.apache.uima.ducc.container.common.IDuccLogger;
+import org.apache.uima.ducc.container.common.fsm.iface.IAction;
+
+public class ActionSendCAS implements IAction {
+
+ private IDuccLogger logger = DuccLogger.getLogger(ActionSendCAS.class,
IDuccLogger.Component.JD.name());
+
+ @Override
+ public String getName() {
+ return ActionSendCAS.class.getName();
+ }
+
+ @Override
+ public void engage(Object objectData) {
+ String location = "engage";
+ logger.debug(location, IDuccId.null_id, "");
+ IActionData actionData = (IActionData) objectData;
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionSendCAS.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/IActionData.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/IActionData.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/IActionData.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/IActionData.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,12 @@
+package org.apache.uima.ducc.container.jd.fsm.wi;
+
+import org.apache.uima.ducc.container.jd.dispatch.IRemoteWorkerIdentity;
+import org.apache.uima.ducc.container.jd.dispatch.IWorkItem;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
+
+public interface IActionData {
+
+ public IWorkItem getWorkItem();
+ public IRemoteWorkerIdentity getRemoteWorkerIdentity();
+ public IMetaCasTransaction getMetaCasTransaction();
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/IActionData.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
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=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,53 @@
+package org.apache.uima.ducc.container.jd.fsm.wi;
+
+import org.apache.uima.ducc.container.common.fsm.Event;
+import org.apache.uima.ducc.container.common.fsm.Fsm;
+import org.apache.uima.ducc.container.common.fsm.FsmException;
+import org.apache.uima.ducc.container.common.fsm.State;
+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.IState;
+
+public class WiFsm extends Fsm {
+
+ public static IState Start = new
State("Start");
+ public static IState Get_Pending = new
State("Get_Pending");
+ public static IState CAS_Send = new State("CAS_Send");
+ public static IState CAS_Active = new
State("CAS_Active");
+
+ public static IEvent Get_Request = new
Event("Get_Request");
+ public static IEvent CAS_Available = new
Event("CAS_Available");
+ public static IEvent CAS_Unavailable = new Event("CAS_Unavailable");
+ public static IEvent Ack_Request = new
Event("Ack_Request");
+ public static IEvent Send_Failure = new
Event("Send_Failure");
+ public static IEvent Ack_Timer_Pop = new
Event("Ack_Timer_Pop");
+ public static IEvent End_Request = new
Event("End_Request");
+ public static IEvent End_Timer_Pop = new
Event("End_Timer_Pop");
+ public static IEvent Host_Failure = new
Event("Host_Failure");
+ 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 ActionIgnore = new ActionIgnore();
+
+ public WiFsm() throws FsmException {
+ super();
+ initialize();
+ }
+
+ private void initialize() throws FsmException {
+
+ addInitial(Start, Get_Request, ActionGetCAS, Get_Pending);
+
+ add(Get_Pending, CAS_Available, ActionSendCAS, CAS_Send);
+ add(Get_Pending, CAS_Unavailable, ActionSendCAS, Start);
+
+ add(CAS_Send, Ack_Request, ActionAckCAS, CAS_Active);
+
+ add(CAS_Active, End_Request, ActionEndCAS, Start);
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCas.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCas.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCas.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCas.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,18 @@
+package org.apache.uima.ducc.container.net.iface;
+
+import java.io.Serializable;
+
+public interface IMetaCas extends IMetaCasKeys, Serializable {
+
+ // Performance metrics
+ public IPerformanceMetrics getPerformanceMetrics();
+ public void setPerformanceMetrics(IPerformanceMetrics value);
+
+ // CAS (accessible in user space only)
+ public Object getUserSpaceCas();
+ public void setUserSpaceCas(Object value);
+
+ // Exception (accessible in user space only)
+ public Object getUserSpaceException();
+ public void setUserSpaceException(Object value);
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCas.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasKeys.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasKeys.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasKeys.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasKeys.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,14 @@
+package org.apache.uima.ducc.container.net.iface;
+
+import java.io.Serializable;
+
+public interface IMetaCasKeys extends Serializable {
+
+ // System assigned key, e.g. a CAS sequence number
+ public String getSystemKey();
+ public void setSystemKey(String value);
+
+ // User provided key, e.g. getDocumentText()
+ public String getUserKey();
+ public void setUserKey(String value);
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasKeys.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasProvider.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasProvider.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasProvider.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasProvider.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,15 @@
+package org.apache.uima.ducc.container.net.iface;
+
+import java.io.Serializable;
+
+public interface IMetaCasProvider extends Serializable {
+
+ public String getProviderKey();
+ public void setProviderKey(String value);
+
+ public String getProviderName();
+ public void setProviderName(String value);
+
+ public int getProviderPort();
+ public void setProviderPort(int value);
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasProvider.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasRequester.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasRequester.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasRequester.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasRequester.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,15 @@
+package org.apache.uima.ducc.container.net.iface;
+
+import java.io.Serializable;
+
+public interface IMetaCasRequester extends Serializable {
+
+ public String getRequesterName();
+ public void setRequesterName(String value);
+
+ public int getRequesterProcessId();
+ public void setRequesterProcessId(int value);
+
+ public int getRequesterThreadId();
+ public void setRequesterThreadId(int value);
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasRequester.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasTransaction.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasTransaction.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasTransaction.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasTransaction.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,24 @@
+package org.apache.uima.ducc.container.net.iface;
+
+import java.io.Serializable;
+
+import org.apache.uima.ducc.container.net.impl.TransactionId;
+
+public interface IMetaCasTransaction extends IMetaCasProvider,
IMetaCasRequester, Serializable {
+
+ public enum Type { Get, Ack, End };
+
+ public Type getType();
+ public void setType(Type value);
+
+ public enum Direction { Request, Response };
+
+ public Direction getDirection();
+ public void setDirection(Direction value);
+
+ public TransactionId getTransactionId();
+ public void setTransactionId(TransactionId value);
+
+ public IMetaCas getMetaCas();
+ public void setMetaCas(IMetaCas value);
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasTransaction.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IPerformanceMetrics.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IPerformanceMetrics.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IPerformanceMetrics.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IPerformanceMetrics.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,7 @@
+package org.apache.uima.ducc.container.net.iface;
+
+import java.io.Serializable;
+
+public interface IPerformanceMetrics extends Serializable {
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IPerformanceMetrics.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/ITransport.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/ITransport.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/ITransport.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/ITransport.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,6 @@
+package org.apache.uima.ducc.container.net.iface;
+
+public interface ITransport {
+
+ public void sendAndReceive(IMetaCasTransaction metaCastransaction)
throws TimeoutException;
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/ITransport.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/TimeoutException.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/TimeoutException.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/TimeoutException.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/TimeoutException.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,7 @@
+package org.apache.uima.ducc.container.net.iface;
+
+public class TimeoutException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/TimeoutException.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCas.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCas.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCas.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCas.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,101 @@
+package org.apache.uima.ducc.container.net.impl;
+
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IPerformanceMetrics;
+
+public class MetaCas implements IMetaCas {
+
+ private static final long serialVersionUID = 1L;
+
+ private String systemKey = (new Integer(-1)).toString();
+ private String userKey = null;
+ private IPerformanceMetrics performanceMetrics = null;
+ private Object userSpaceCas = null;
+ private Object userSpaceException = null;
+
+ /////
+
+ public MetaCas(int seqNo, String documentText, Object userSpaceCas) {
+ setSeqNo(seqNo);
+ setDocumentText(documentText);
+ setUserSpaceCas(userSpaceCas);
+ }
+
+ public int getSeqNo() {
+ return Integer.parseInt(getSystemKey());
+ }
+
+ public void setSeqNo(int value) {
+ setSystemKey(Integer.toString(value));
+ }
+
+ public String getDocumentText() {
+ return getUserKey();
+ }
+
+ public void setDocumentText(String value) {
+ setUserKey(value);
+ }
+
+ public String getSerializedCas() {
+ return (String)getUserSpaceCas();
+ }
+
+ public void setSerializedCas(String value) {
+ setUserSpaceCas(value);
+ }
+
+ /////
+
+ @Override
+ public String getSystemKey() {
+ return systemKey;
+ }
+
+ @Override
+ public void setSystemKey(String value) {
+ systemKey = value;
+ }
+
+ @Override
+ public String getUserKey() {
+ return userKey;
+ }
+
+ @Override
+ public void setUserKey(String value) {
+ userKey = value;
+ }
+
+ @Override
+ public IPerformanceMetrics getPerformanceMetrics() {
+ return performanceMetrics;
+ }
+
+ @Override
+ public void setPerformanceMetrics(IPerformanceMetrics value) {
+ performanceMetrics = value;
+ }
+
+ @Override
+ public Object getUserSpaceCas() {
+ return userSpaceCas;
+ }
+
+ @Override
+ public void setUserSpaceCas(Object value) {
+ userSpaceCas = value;
+ }
+
+ @Override
+ public Object getUserSpaceException() {
+ return userSpaceException;
+ }
+
+ @Override
+ public void setUserSpaceException(Object value) {
+ userSpaceException = value;
+ }
+
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCas.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCasTransaction.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCasTransaction.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCasTransaction.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCasTransaction.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,129 @@
+package org.apache.uima.ducc.container.net.impl;
+
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
+
+public class MetaCasTransaction implements IMetaCasTransaction {
+
+ private static final long serialVersionUID = 1L;
+
+ private TransactionId transactionId = null;
+
+ private Type type = null;
+ private Direction direction = null;
+
+ private String providerKey = null;
+ private String providerName = null;
+ private int providerPort = 0;
+
+ private String requesterName = null;
+ private int requesterPid = 0;
+ private int requesterTid = 0;
+
+ private IMetaCas metaCas = null;
+
+ public MetaCasTransaction() {
+ transactionId = new TransactionId(0,0);
+ }
+
+ @Override
+ public String getProviderKey() {
+ return providerKey;
+ }
+
+ @Override
+ public void setProviderKey(String value) {
+ providerKey = value;
+ }
+
+ @Override
+ public String getProviderName() {
+ return providerName;
+ }
+
+ @Override
+ public void setProviderName(String value) {
+ providerName = value;
+ }
+
+ @Override
+ public int getProviderPort() {
+ return providerPort;
+ }
+
+ @Override
+ public void setProviderPort(int value) {
+ providerPort = value;
+ }
+
+ @Override
+ public String getRequesterName() {
+ return requesterName;
+ }
+
+ @Override
+ public void setRequesterName(String value) {
+ requesterName = value;
+ }
+
+ @Override
+ public int getRequesterProcessId() {
+ return requesterPid;
+ }
+
+ @Override
+ public void setRequesterProcessId(int value) {
+ requesterPid = value;
+ }
+
+ @Override
+ public int getRequesterThreadId() {
+ return requesterTid;
+ }
+
+ @Override
+ public void setRequesterThreadId(int value) {
+ requesterTid = value;
+ }
+
+ @Override
+ public Type getType() {
+ return type;
+ }
+
+ @Override
+ public void setType(Type value) {
+ type = value;
+ }
+
+ @Override
+ public Direction getDirection() {
+ return direction;
+ }
+
+ @Override
+ public void setDirection(Direction value) {
+ direction = value;
+ }
+
+ @Override
+ public TransactionId getTransactionId() {
+ return transactionId;
+ }
+
+ @Override
+ public void setTransactionId(TransactionId value) {
+ transactionId = value;
+ }
+
+ @Override
+ public IMetaCas getMetaCas() {
+ return metaCas;
+ }
+
+ @Override
+ public void setMetaCas(IMetaCas value) {
+ metaCas = value;
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCasTransaction.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/TransactionId.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/TransactionId.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/TransactionId.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/TransactionId.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,37 @@
+package org.apache.uima.ducc.container.net.impl;
+
+public class TransactionId {
+
+ private int major = 0;
+ private int minor = 0;
+
+ public TransactionId(int major, int minor) {
+ setMajor(major);
+ setMinor(minor);
+ }
+
+ private int getMajor() {
+ return major;
+ }
+
+ private void setMajor(int value) {
+ major = value;
+ }
+
+ private int getMinor() {
+ return minor;
+ }
+
+ private void setMinor(int value) {
+ minor = value;
+ }
+
+ public void next() {
+ minor++;
+ }
+
+ @Override
+ public String toString() {
+ return getMajor()+"."+getMinor();
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/TransactionId.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestDispatcher.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestDispatcher.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestDispatcher.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestDispatcher.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,154 @@
+package org.apache.uima.ducc.test;
+
+import static org.junit.Assert.*;
+
+import java.io.File;
+import java.net.URL;
+
+import org.apache.uima.ducc.container.jd.JobDriverCommon;
+import org.apache.uima.ducc.container.jd.dispatch.Dispatcher;
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.Type;
+import org.apache.uima.ducc.container.net.impl.MetaCasTransaction;
+import org.apache.uima.ducc.container.net.impl.TransactionId;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class TestDispatcher {
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ private boolean debug = true;
+ private boolean asExpected = true;
+
+ private void out_println(String message) {
+ System.out.println(message);
+ }
+
+ private void debug(String message) {
+ if(debug) {
+ out_println(message);
+ }
+ }
+
+ private void asExpected(String text) {
+ if(asExpected) {
+ String message = "as expected: "+text;
+ out_println(message);
+ }
+ }
+
+ /*
+ private void asExpected(Exception e) {
+ if(asExpected) {
+ String message = "as expected: "+e.getMessage();
+ out_println(message);
+ }
+ }
+ */
+
+ private MetaCasTransaction create(String node, int pid, int tid, Type
type) {
+ MetaCasTransaction mct = new MetaCasTransaction();
+ mct.setRequesterName(node);
+ mct.setRequesterProcessId(pid);
+ mct.setRequesterThreadId(tid);
+ mct.setType(type);
+ return mct;
+ }
+
+ private IMetaCas transCommon(Dispatcher dispatcher, MetaCasTransaction
trans, int reqNo) {
+ dispatcher.handleMetaCasTransation(trans);
+ IMetaCas metaCas = trans.getMetaCas();
+ if(metaCas != null) {
+ String seqNo = ""+reqNo;
+ debug("system key:"+metaCas.getSystemKey());
+ assertTrue(metaCas.getSystemKey().equals(seqNo));
+ asExpected("system key == "+seqNo);
+ debug("user key:"+metaCas.getUserKey());
+ assertTrue(metaCas.getUserKey().equals(seqNo));
+ asExpected("user key == "+seqNo);
+ }
+ else {
+ debug("metaCas is null");
+ }
+ return metaCas;
+ }
+
+ private IMetaCas transGet(Dispatcher dispatcher, String node, int pid,
int tid, int reqNo) {
+ debug("Get");
+ MetaCasTransaction trans = create(node, pid, tid, Type.Get);
+ trans.setTransactionId(new TransactionId(reqNo,0));
+ return transCommon(dispatcher, trans, reqNo);
+ }
+
+ private IMetaCas transAck(Dispatcher dispatcher, String node, int pid,
int tid, int reqNo) {
+ debug("Ack");
+ MetaCasTransaction trans = create(node, pid, tid, Type.Ack);
+ trans.setTransactionId(new TransactionId(reqNo,1));
+ return transCommon(dispatcher, trans, reqNo);
+ }
+
+ private IMetaCas transEnd(Dispatcher dispatcher, String node, int pid,
int tid, int reqNo) {
+ debug("End");
+ MetaCasTransaction trans = create(node, pid, tid, Type.End);
+ trans.setTransactionId(new TransactionId(reqNo,2));
+ return transCommon(dispatcher, trans, reqNo);
+ }
+
+ @Test
+ public void test_01() {
+ try {
+ String[] jarList260 = {
+ "/ducc-user.jar",
+ "/uimaj-as-core-2.6.0.jar",
+ "/uimaj-core-2.6.0.jar",
+ "/xstream-1.3.1.jar"
+ };
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ new JobDriverCommon(jarList260, crXml, crCfg);
+ int size =
JobDriverCommon.getInstance().getMap().size();
+ debug("map size:"+size);
+ Dispatcher dispatcher = new Dispatcher();
+ String node = "node01";
+ int pid = 23;
+ int tid = 45;
+ int casNo = 1;
+ IMetaCas metaCasPrevious = null;
+ IMetaCas metaCas =
transGet(dispatcher,node,pid,tid,casNo);
+ while(metaCas != null) {
+ transAck(dispatcher,node,pid,tid,casNo);
+ transEnd(dispatcher,node,pid,tid,casNo);
+ casNo++;
+ metaCasPrevious = metaCas;
+ metaCas =
transGet(dispatcher,node,pid,tid,casNo);
+ }
+
assertTrue(metaCasPrevious.getSystemKey().equals("100"));
+ asExpected("CASes processed count == 100");
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestDispatcher.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestJson.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestJson.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestJson.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestJson.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,129 @@
+package org.apache.uima.ducc.test;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+import org.apache.uima.ducc.container.common.files.json.JsonConverter;
+import org.apache.uima.ducc.container.common.files.json.JsonWorkItemState;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class TestJson {
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ private boolean debug = true;
+ private boolean asExpected = true;
+
+ private void out_println(String message) {
+ System.out.println(message);
+ }
+
+ private void debug(String message) {
+ if(debug) {
+ out_println(message);
+ }
+ }
+
+ private void asExpected(String text) {
+ if(asExpected) {
+ String message = "as expected: "+text;
+ out_println(message);
+ }
+ }
+
+ private void asExpected(Exception e) {
+ if(asExpected) {
+ String message = "as expected: "+e.getMessage();
+ out_println(message);
+ }
+ }
+
+ private void compare(JsonWorkItemState jwisA, JsonWorkItemState jwisB) {
+ assertTrue(jwisA.getNode().equals(jwisB.getNode()));
+ assertTrue(jwisA.getPid() == jwisB.getPid());
+ assertTrue(jwisA.getTid() == jwisB.getTid());
+ assertTrue(jwisA.getProcessingTime() ==
jwisB.getProcessingTime());
+ assertTrue(jwisA.getTransferTime() == jwisB.getTransferTime());
+ assertTrue(jwisA.getSystemKey().equals(jwisB.getSystemKey()));
+ assertTrue(jwisA.getUserKey().equals(jwisB.getUserKey()));
+ assertTrue(jwisA.getStatus().equals(jwisB.getStatus()));
+ }
+
+ @Test
+ public void test_01() {
+ try {
+ JsonWorkItemState jwis1 = new JsonWorkItemState();
+ jwis1.setNode("node01");
+ jwis1.setPid(23);
+ jwis1.setTid(45);
+ jwis1.setProcessingTime(5000);
+ jwis1.setTransferTime(1000);
+ jwis1.setSystemKey("sys0001");
+ jwis1.setUserKey("usr0001");
+ jwis1.setStatus("running");
+ JsonWorkItemState jwis2 = new JsonWorkItemState();
+ jwis2.setNode("node01");
+ jwis2.setPid(23);
+ jwis2.setTid(46);
+ jwis2.setProcessingTime(0000);
+ jwis2.setTransferTime(0500);
+ jwis2.setSystemKey("sys0002");
+ jwis2.setUserKey("usr0002");
+ jwis2.setStatus("transfer");
+ ConcurrentHashMap<String,JsonWorkItemState> map1 = new
ConcurrentHashMap<String,JsonWorkItemState>();
+ map1.put(jwis1.getSystemKey(),jwis1);
+ map1.put(jwis2.getSystemKey(),jwis2);
+ String json =
JsonConverter.workItemStateMapToJson(map1);
+ asExpected(json);
+ ConcurrentHashMap<String,JsonWorkItemState> map2 =
JsonConverter.workItemStateMapFromJson(json);
+ compare(jwis1, map2.get(jwis1.getSystemKey()));
+ compare(jwis2, map2.get(jwis2.getSystemKey()));
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void test_02() {
+ try {
+ JsonWorkItemState jwis1 = new JsonWorkItemState();
+ jwis1.setNode("node01");
+ jwis1.setPid(23);
+ jwis1.setTid(45);
+ jwis1.setProcessingTime(5000);
+ jwis1.setTransferTime(1000);
+ jwis1.setSystemKey("sys0001");
+ jwis1.setUserKey("usr0001");
+ jwis1.setStatus("running");
+ JsonWorkItemState jwis2 = null;
+ compare(jwis1, jwis2);
+ debug(jwis1.getSystemKey());
+ fail("No Exception?");
+ }
+ catch(Exception e) {
+ asExpected(e);
+ }
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestJson.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestSuite.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestSuite.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestSuite.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestSuite.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,397 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.test;
+
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.File;
+import java.net.URL;
+
+import org.apache.uima.ducc.container.jd.JobDriverCasManager;
+import org.apache.uima.ducc.container.jd.JobDriverException;
+import org.apache.uima.ducc.container.jd.classload.JobDriverCollectionReader;
+import org.apache.uima.ducc.container.jd.dispatch.RemoteWorkerIdentity;
+import org.apache.uima.ducc.container.net.impl.MetaCas;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class TestSuite {
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ private boolean debug = true;
+ private boolean asExpected = true;
+
+ private void out_println(String message) {
+ System.out.println(message);
+ }
+
+ private void debug(String message) {
+ if(debug) {
+ out_println(message);
+ }
+ }
+
+ private void asExpected(String text) {
+ if(asExpected) {
+ String message = "as expected: "+text;
+ out_println(message);
+ }
+ }
+
+ private void asExpected(Exception e) {
+ if(asExpected) {
+ String message = "as expected: "+e.getMessage();
+ out_println(message);
+ }
+ }
+
+ private String[] jarList242 = {
+ "/ducc-user.jar",
+ "/uimaj-as-core-2.4.2.jar",
+ "/uimaj-core-2.4.2.jar",
+ "/xstream-1.3.1.jar"
+ };
+
+ private String[] jarList260 = {
+ "/ducc-user.jar",
+ "/uimaj-as-core-2.6.0.jar",
+ "/uimaj-core-2.6.0.jar",
+ "/xstream-1.3.1.jar"
+ };
+
+ private void testIncludeAll(String[] jarList, String crXml, String
crCfg) {
+ try {
+ URL[] classLoaderUrls = new URL[jarList.length];
+ int i = 0;
+ for(String jar : jarList) {
+ classLoaderUrls[i] =
this.getClass().getResource(jar);
+ i++;
+ }
+ new JobDriverCollectionReader(classLoaderUrls, crXml,
crCfg);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void test_01() {
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ testIncludeAll(jarList242, crXml, crCfg);
+ }
+
+ @Test
+ public void test_02() {
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ testIncludeAll(jarList260, crXml, crCfg);
+ }
+
+ private void testExcludeOne(String[] jarList, String crXml, String
crCfg, int skip) {
+ try {
+ URL[] classLoaderUrls = new URL[jarList.length-1];
+ int index = 0;
+ for(int i=0; i<jarList.length; i++) {
+ String jar = jarList[i];
+ if(i == skip) {
+ debug(i+" skip: "+jar);
+ }
+ else {
+ debug(i+" use: "+jar);
+ classLoaderUrls[index] =
this.getClass().getResource(jar);
+ index++;
+ }
+ }
+ try {
+ new JobDriverCollectionReader(classLoaderUrls,
crXml, crCfg);
+ fail("Exception missing...?");
+ }
+ catch(JobDriverException e) {
+ asExpected(e);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ //@Test
+ public void test_03() {
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ testExcludeOne(jarList242, crXml, crCfg, 2);
+ for(int i=0; i<jarList242.length; i++) {
+ testExcludeOne(jarList242, crXml, crCfg, i);
+ }
+ }
+
+ //@Test
+ public void test_04() {
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ for(int i=0; i<jarList260.length; i++) {
+ testExcludeOne(jarList260, crXml, crCfg, i);
+ }
+ }
+
+ private void testNoXml(String[] jarList, String crXml, String crCfg) {
+ try {
+ URL[] classLoaderUrls = new URL[jarList.length];
+ int i = 0;
+ for(String jar : jarList) {
+ classLoaderUrls[i] =
this.getClass().getResource(jar);
+ i++;
+ }
+ new JobDriverCollectionReader(classLoaderUrls, crXml,
crCfg);
+ fail("Exception missing...?");
+ }
+ catch(JobDriverException e) {
+ asExpected(e);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void test_05() {
+ String crXml = null;
+ String crCfg = null;
+ testNoXml(jarList242, crXml, crCfg);
+ testNoXml(jarList260, crXml, crCfg);
+ }
+
+ private void getTotal(String[] jarList, String crXml, String crCfg) {
+ try {
+ URL[] classLoaderUrls = new URL[jarList.length];
+ int i = 0;
+ for(String jar : jarList) {
+ classLoaderUrls[i] =
this.getClass().getResource(jar);
+ i++;
+ }
+ JobDriverCollectionReader jdui = new
JobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
+ int total = jdui.getTotal();
+ assertTrue(total == 100);
+ debug("total: "+total);
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void test_06() {
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ getTotal(jarList242, crXml, crCfg);
+ getTotal(jarList260, crXml, crCfg);
+ }
+
+ private void getMetaCas(String[] jarList, String crXml, String crCfg) {
+ try {
+ URL[] classLoaderUrls = new URL[jarList.length];
+ int i = 0;
+ for(String jar : jarList) {
+ classLoaderUrls[i] =
this.getClass().getResource(jar);
+ i++;
+ }
+ JobDriverCollectionReader jdui = new
JobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
+ MetaCas mc = jdui.getMetaCas();
+ int seqNo = mc.getSeqNo();
+ asExpected("seqNo = "+seqNo);
+ assertTrue(seqNo == 1);
+ String serializedCas = (String)mc.getSerializedCas();
+ asExpected("cas = "+serializedCas);
+ String prefix = "<?xml version=\"1.0\"
encoding=\"UTF-8\"?><xmi:XMI xmlns:cas=\"http:///uima/cas.ecore\"";
+ assertTrue(serializedCas.startsWith(prefix));
+ String documentText = mc.getDocumentText();
+ asExpected("documentText = "+documentText);
+ assertTrue(documentText.equals("1"));
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ //@Test
+ public void test_07() {
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ getMetaCas(jarList242, crXml, crCfg);
+ getMetaCas(jarList260, crXml, crCfg);
+ }
+
+ private void getMetaCases(JobDriverCollectionReader jdui, int total)
throws JobDriverException {
+ for(int c=1; c <= total; c++) {
+ MetaCas mc = jdui.getMetaCas();
+ int seqNo = mc.getSeqNo();
+ asExpected("seqNo = "+seqNo);
+ assertTrue(seqNo == c);
+ String serializedCas = (String)mc.getSerializedCas();
+ asExpected("cas = "+serializedCas);
+ String prefix = "<?xml version=\"1.0\"
encoding=\"UTF-8\"?><xmi:XMI xmlns:cas=\"http:///uima/cas.ecore\"";
+ assertTrue(serializedCas.startsWith(prefix));
+ String documentText = mc.getDocumentText();
+ asExpected("documentText = "+documentText);
+ assertTrue(documentText.equals(""+c));
+ }
+ }
+
+ private void getMetaCases(String[] jarList, String crXml, String crCfg,
int extra) {
+ try {
+ URL[] classLoaderUrls = new URL[jarList.length];
+ int i = 0;
+ for(String jar : jarList) {
+ classLoaderUrls[i] =
this.getClass().getResource(jar);
+ i++;
+ }
+ JobDriverCollectionReader jdui = new
JobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
+ int total = jdui.getTotal();
+ getMetaCases(jdui, total);
+ if(extra > 0) {
+ for(int j=0; j<extra; j++) {
+ MetaCas mc = jdui.getMetaCas();
+ assertTrue(mc == null);
+ }
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ //@Test
+ public void test_08() {
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ getMetaCases(jarList242, crXml, crCfg, 0);
+ getMetaCases(jarList260, crXml, crCfg, 0);
+ }
+
+ //@Test
+ public void test_09() {
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ getMetaCases(jarList242, crXml, crCfg, 10);
+ getMetaCases(jarList260, crXml, crCfg, 10);
+ }
+
+ @Test
+ public void test_10() {
+ try {
+ URL urlXml = this.getClass().getResource("/CR100.xml");
+ File file = new File(urlXml.getFile());
+ String crXml = file.getAbsolutePath();
+ String crCfg = null;
+ String[] jarList = jarList260;
+ JobDriverCasManager jdcm = new
JobDriverCasManager(jarList, crXml, crCfg);
+ int total = jdcm.getTotal();
+ assertTrue(total == 100);
+ MetaCas metaCas = jdcm.getMetaCas();
+ int puts = 3;
+ while(metaCas != null) {
+ if(jdcm.getPuts() < puts) {
+ jdcm.putMetaCas(metaCas);
+ }
+ metaCas = jdcm.getMetaCas();
+ }
+ assertTrue(jdcm.getGetsCr() == total);
+ assertTrue(jdcm.getGets() == (puts+total));
+ assertTrue(jdcm.getPuts() == puts);
+ asExpected("puts == "+puts);
+ asExpected("gets == "+(puts+total));
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void test_20() {
+ String n01 = "node01";
+ int p10 = 10;
+ int t20 = 20;
+ RemoteWorkerIdentity rwi01A = new
RemoteWorkerIdentity(n01,p10,t20);
+ RemoteWorkerIdentity rwi01B = new
RemoteWorkerIdentity(n01,p10,t20);
+ assertTrue(rwi01A.equals(rwi01A));
+ assertTrue(rwi01B.equals(rwi01B));
+ assertTrue(rwi01A.equals(rwi01B));
+ assertTrue(rwi01A.compareTo(rwi01A) == 0);
+ assertTrue(rwi01B.compareTo(rwi01B) == 0);
+ assertTrue(rwi01A.compareTo(rwi01B) == 0);
+ String n02 = "node02";
+ int p30 = 30;
+ int t40 = 40;
+ RemoteWorkerIdentity rwi02A = new
RemoteWorkerIdentity(n02,p10,t20);
+ RemoteWorkerIdentity rwi01C = new
RemoteWorkerIdentity(n01,p30,t20);
+ RemoteWorkerIdentity rwi01D = new
RemoteWorkerIdentity(n01,p10,t40);
+ assertTrue(!rwi01A.equals(rwi02A));
+ assertTrue(!rwi01A.equals(rwi01C));
+ assertTrue(!rwi01A.equals(rwi01D));
+ assertTrue(rwi01A.compareTo(rwi02A) != 0);
+ assertTrue(rwi01A.compareTo(rwi01C) != 0);
+ assertTrue(rwi01A.compareTo(rwi01D) != 0);
+ assertTrue(rwi01A.getNode().equals(n01));
+ assertTrue(rwi01A.getPid() == p10);
+ assertTrue(rwi01A.getTid() == t20);
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestSuite.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestWiFsm.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestWiFsm.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestWiFsm.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestWiFsm.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,210 @@
+package org.apache.uima.ducc.test;
+
+import static org.junit.Assert.*;
+
+import org.apache.uima.ducc.container.common.fsm.Action;
+import org.apache.uima.ducc.container.common.fsm.Event;
+import org.apache.uima.ducc.container.common.fsm.Fsm;
+import org.apache.uima.ducc.container.common.fsm.State;
+import org.apache.uima.ducc.container.common.fsm.StateEventKey;
+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.common.fsm.iface.IFsmBuilder;
+import org.apache.uima.ducc.container.common.fsm.iface.IState;
+import org.apache.uima.ducc.container.jd.fsm.wi.WiFsm;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+public class TestWiFsm {
+
+ @BeforeClass
+ public static void setUpBeforeClass() throws Exception {
+ }
+
+ @AfterClass
+ public static void tearDownAfterClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ }
+
+ private boolean debug = false;
+ private boolean asExpected = true;
+
+ private void out_println(String message) {
+ System.out.println(message);
+ }
+
+ private void debug(String message) {
+ if(debug) {
+ out_println(message);
+ }
+ }
+
+ private void asExpected(String text) {
+ if(asExpected) {
+ String message = "as expected: "+text;
+ out_println(message);
+ }
+ }
+
+ private void asExpected(Exception e) {
+ if(asExpected) {
+ String message = "as expected: "+e.getMessage();
+ out_println(message);
+ }
+ }
+
+ @Test
+ public void test_01() {
+ try {
+ IState s0 = new State("a");
+ IState s1 = new State("a");
+ IState s2 = new State("b");
+ assertTrue(s0.equals(s1));
+ asExpected("State "+s0.getName()+" == "+s1.getName());
+ assertTrue(!s0.equals(s2));
+ asExpected("State "+s0.getName()+" != "+s2.getName());
+ assertTrue(!s1.equals(s2));
+ asExpected("State "+s1.getName()+" != "+s2.getName());
+ try {
+ new State(null);
+ fail("expected Exception");
+ }
+ catch(Exception e) {
+ asExpected(e);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void test_02() {
+ try {
+ IEvent e0 = new Event("c");
+ IEvent e1 = new Event("c");
+ IEvent e2 = new Event("d");
+ assertTrue(e0.equals(e1));
+ asExpected("Event "+e0.getName()+" == "+e1.getName());
+ assertTrue(!e0.equals(e2));
+ asExpected("Event "+e0.getName()+" != "+e2.getName());
+ assertTrue(!e1.equals(e2));
+ asExpected("Event "+e1.getName()+" != "+e2.getName());
+ try {
+ new Event(null);
+ fail("expected Exception");
+ }
+ catch(Exception e) {
+ asExpected(e);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void test_03() {
+ try {
+ IState s0 = new State("a");
+ IState s1 = new State("b");
+ IEvent e0 = new Event("c");
+ IEvent e1 = new Event("d");
+ StateEventKey se00A = new StateEventKey(s0, e0);
+ StateEventKey se00B = new StateEventKey(s0, e0);
+ assertTrue(se00A.equals(se00B));
+ StateEventKey se00 = new StateEventKey(s0, e0);
+ StateEventKey se01 = new StateEventKey(s0, e1);
+ StateEventKey se10 = new StateEventKey(s1, e0);
+ StateEventKey se11 = new StateEventKey(s1, e1);
+ assertTrue(!se00.equals(se01));
+ assertTrue(!se00.equals(se10));
+ assertTrue(!se00.equals(se11));
+ assertTrue(!se01.equals(se10));
+ assertTrue(!se01.equals(se11));
+ assertTrue(!se10.equals(se11));
+ try {
+ new StateEventKey(null, e0);;
+ fail("expected Exception");
+ }
+ catch(Exception e) {
+ asExpected(e);
+ }
+ try {
+ new StateEventKey(s0, null);;
+ fail("expected Exception");
+ }
+ catch(Exception e) {
+ asExpected(e);
+ }
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void test_04() {
+ try {
+ IState s1 = new State("s1");
+ IState s2 = new State("s2");
+ IEvent e1 = new Event("e1");
+ IEvent e2 = new Event("e2");
+ IAction a0 = new Action();
+ IFsmBuilder fsmBuilder = new Fsm();
+ IFsm fsm = fsmBuilder;
+ debug("s1:"+s1.getName());
+ debug("s2:"+s2.getName());
+ debug("e1:"+e1.getName());
+ debug("e2:"+e2.getName());
+ fsmBuilder.addInitial(s1, e1, a0, s1);
+ fsmBuilder.add(s1, e2, a0, s2);
+
assertTrue(fsm.getStateCurrent().getName().equals(s1.getName()));
+ asExpected("state == "+s1.getName());
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+
+ @Test
+ public void test_05() {
+ try {
+ WiFsm wiFsm = new WiFsm();
+ Object actionData = null;
+
assertTrue(wiFsm.getStateCurrent().getName().equals(WiFsm.Start.getName()));
+ asExpected("state == "+WiFsm.Start.getName());
+ wiFsm.transition(WiFsm.Get_Request, actionData);
+
assertTrue(wiFsm.getStateCurrent().getName().equals(WiFsm.Get_Pending.getName()));
+ asExpected("state == "+WiFsm.Get_Pending.getName());
+ wiFsm.transition(WiFsm.CAS_Available, actionData);
+
assertTrue(wiFsm.getStateCurrent().getName().equals(WiFsm.CAS_Send.getName()));
+ asExpected("state == "+WiFsm.CAS_Send.getName());
+ wiFsm.transition(WiFsm.Ack_Request, actionData);
+
assertTrue(wiFsm.getStateCurrent().getName().equals(WiFsm.CAS_Active.getName()));
+ asExpected("state == "+WiFsm.CAS_Active.getName());
+ wiFsm.transition(WiFsm.End_Request, actionData);
+
assertTrue(wiFsm.getStateCurrent().getName().equals(WiFsm.Start.getName()));
+ asExpected("state == "+WiFsm.Start.getName());
+ }
+ catch(Exception e) {
+ e.printStackTrace();
+ fail("Exception");
+ }
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestWiFsm.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/CR100.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/CR100.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/CR100.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/CR100.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,46 @@
+package org.apache.uima.ducc.user.jd.test.helper;
+
+import java.io.IOException;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.apache.uima.cas.CAS;
+import org.apache.uima.collection.CollectionException;
+import org.apache.uima.collection.CollectionReader_ImplBase;
+import org.apache.uima.util.Progress;
+import org.apache.uima.util.ProgressImpl;
+
+public class CR100 extends CollectionReader_ImplBase {
+
+ private int casLimit = 100;
+ private AtomicInteger casCounter = new AtomicInteger(0);
+
+ @Override
+ public void getNext(CAS aCAS) throws IOException, CollectionException {
+ aCAS.reset();
+ int item = casCounter.incrementAndGet();
+ if(item <= casLimit) {
+ aCAS.setSofaDataString(""+item, "text");
+ }
+ }
+
+ @Override
+ public boolean hasNext() throws IOException, CollectionException {
+ boolean retVal = false;
+ if(casCounter.get() < casLimit) {
+ retVal = true;
+ }
+ return retVal;
+ }
+
+ @Override
+ public Progress[] getProgress() {
+ ProgressImpl[] retVal = new ProgressImpl[1];
+ retVal[0] = new ProgressImpl(casCounter.get(), casLimit,
"CASes");
+ return retVal;
+ }
+
+ @Override
+ public void close() throws IOException {
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/CR100.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/CR100.xml
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/CR100.xml?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/CR100.xml
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/CR100.xml
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+ <!--
+ ***************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ***************************************************************
+ -->
+
+<!-- A simple collection reader that reads text files from a directory in the
+ filesystem. The Java class for this collection reader is in
uima_core.jar. -->
+
+<collectionReaderDescription xmlns="http://uima.apache.org/resourceSpecifier">
+ <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+
<implementationName>org.apache.uima.ducc.user.jd.test.helper.CR100</implementationName>
+ <processingResourceMetaData>
+ <name>Driver Collection Reader</name>
+ <description>Generates CASes comprising indices.</description>
+ <version>1.0</version>
+ <vendor>The Apache Software Foundation</vendor>
+
+ <configurationParameters>
+
+ <configurationParameter>
+ <name>compression</name>
+ <description>Compression</description>
+ <type>String</type>
+ <multiValued>false</multiValued>
+ <mandatory>false</mandatory>
+ </configurationParameter>
+
+ <configurationParameter>
+ <name>jobfile</name>
+ <description>JobFile</description>
+ <type>String</type>
+ <multiValued>false</multiValued>
+ <mandatory>false</mandatory>
+ </configurationParameter>
+
+ <configurationParameter>
+ <name>error_rate</name>
+ <description>ErrorRate</description>
+ <type>String</type>
+ <multiValued>false</multiValued>
+ <mandatory>false</mandatory>
+ </configurationParameter>
+
+ </configurationParameters>
+
+ <configurationParameterSettings>
+
+ <nameValuePair>
+ <name>compression</name>
+ <value>
+ <string>10</string>
+ </value>
+ </nameValuePair>
+
+ <nameValuePair>
+ <name>error_rate</name>
+ <value>
+ <string>0</string>
+ </value>
+ </nameValuePair>
+
+ <nameValuePair>
+ <name>jobfile</name>
+ <value>
+ <string>../ducc_test/jobs/1.job</string>
+ </value>
+ </nameValuePair>
+
+ </configurationParameterSettings>
+
+ <!-- Type System of CASes returned by this Collection Reader -->
+
+ <typeSystemDescription>
+ <imports>
+ <import name="org.apache.uima.examples.SourceDocumentInformation"/>
+ </imports>
+ </typeSystemDescription>
+
+ <capabilities>
+ <capability>
+ <inputs/>
+ <outputs>
+ <type
allAnnotatorFeatures="true">org.apache.uima.examples.SourceDocumentInformation</type>
+ </outputs>
+ </capability>
+ </capabilities>
+ <operationalProperties>
+ <modifiesCas>false</modifiesCas>
+
<multipleDeploymentAllowed>false</multipleDeploymentAllowed>
+ <outputsNewCASes>true</outputsNewCASes>
+ </operationalProperties>
+ </processingResourceMetaData>
+</collectionReaderDescription>
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/CR100.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/ducc-user.jar
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/ducc-user.jar?rev=1634998&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/ducc-user.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-as-core-2.4.2.jar
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-as-core-2.4.2.jar?rev=1634998&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-as-core-2.4.2.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-as-core-2.6.0.jar
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-as-core-2.6.0.jar?rev=1634998&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-as-core-2.6.0.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-core-2.4.2.jar
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-core-2.4.2.jar?rev=1634998&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-core-2.4.2.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-core-2.6.0.jar
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-core-2.6.0.jar?rev=1634998&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-core-2.6.0.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/xstream-1.3.1.jar
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/xstream-1.3.1.jar?rev=1634998&view=auto
==============================================================================
Binary file - no diff available.
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/xstream-1.3.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream