Author: degenaro
Date: Tue Oct 28 22:00:48 2014
New Revision: 1634998
URL: http://svn.apache.org/r1634998
Log:
UIMA-4069 Redesign of JD toward the main goal of classpath separation for
container (system) code.
Initial code drop.
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/mkresources.xml (with
props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/memo
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/DuccLogger.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccId.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccLogger.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MessageBuffer.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/IOHelper.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/IJsonWorkItemState.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonConverter.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemState.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemStateFile.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Action.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Event.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/FsmException.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/State.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventKey.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventValue.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IAction.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IEvent.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsmBuilder.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IState.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventKey.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventValue.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCasManager.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCommon.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverException.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Dispatcher.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IRemoteWorkerIdentity.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IWorkItem.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/NodeInfo.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/ProcessInfo.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/RemoteWorkerIdentity.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Tod.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/WorkItem.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionAckCAS.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionData.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionEndCAS.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionGetCAS.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionIgnore.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/ActionSendCAS.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/IActionData.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/fsm/wi/WiFsm.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCas.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasKeys.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasProvider.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasRequester.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IMetaCasTransaction.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/IPerformanceMetrics.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/ITransport.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/iface/TimeoutException.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCas.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/MetaCasTransaction.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/net/impl/TransactionId.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestDispatcher.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestJson.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestSuite.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/test/TestWiFsm.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/CR100.java
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/CR100.xml
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/ducc-user.jar
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-as-core-2.4.2.jar
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-as-core-2.6.0.jar
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-core-2.4.2.jar
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/uimaj-core-2.6.0.jar
(with props)
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/xstream-1.3.1.jar
(with props)
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/mkresources.xml
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/mkresources.xml?rev=1634998&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/mkresources.xml (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/mkresources.xml Tue Oct 28
22:00:48 2014
@@ -0,0 +1,32 @@
+<project name="uima-ducc-continer" default="all" basedir=".">
+
+ <property name="resources.dir"
value="${basedir}/src/test/resources" />
+
+ <property name="jar.dir"
value="${basedir}/../uima-ducc-user/target/classes" />
+ <property name="jar.file" value="ducc-user.jar" />
+
+ <property name="xml.dir"
value="${basedir}/../uima-ducc-user/src/test/resources" />
+ <property name="xml.file" value="CR100.xml" />
+
+ <target name="all" depends="jar, xml" />
+
+ <target name="jar" depends="rm.jar, mk.jar" />
+ <target name="xml" depends="rm.xml, mk.xml" />
+
+ <target name="mk.jar">
+ <jar file="${resources.dir}/${jar.file}" basedir="${jar.dir}"/>
+ </target>
+
+ <target name="rm.jar">
+ <delete file="${resources.dir}/${jar.file}"/>
+ </target>
+
+ <target name="mk.xml">
+ <copy file="${xml.dir}/${xml.file}" todir="${resources.dir}"/>
+ </target>
+
+ <target name="rm.xml">
+ <delete file="${resources.dir}/${xml.file}"/>
+ </target>
+
+</project>
\ No newline at end of file
Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/mkresources.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/memo
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/memo?rev=1634998&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/memo (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/memo Tue Oct
28 22:00:48 2014
@@ -0,0 +1 @@
+URLClassLoader jedClassloader = new URLClassLoader(cp_urls,
ClassLoader.getSystemClassLoader().getParent());
\ No newline at end of file
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/DuccLogger.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/DuccLogger.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/DuccLogger.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/DuccLogger.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,101 @@
+package org.apache.uima.ducc.container.common;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+
+public class DuccLogger implements IDuccLogger {
+
+ static public DuccLogger getLogger(@SuppressWarnings("rawtypes") Class
clazz, String component) {
+ return new DuccLogger(clazz, component);
+ }
+
+ private static enum Type {
+ DEBUG(true), INFO(true), WARN(true), ERROR(true);
+ private boolean active = true;
+ private Type(boolean value) {
+ active = value;
+ }
+ public boolean isActive() {
+ return(active);
+ }
+ };
+
+ private static SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd
HH:mm:ss zzz yyyy");
+
+ public DuccLogger(@SuppressWarnings("rawtypes") Class clazz, String
component) {
+ setClazz(clazz);
+ setComponent(component);
+ }
+
+ private String clazz = null;
+ private String component = null;
+
+ private boolean displayComponent = false;
+
+ private void setClazz(Class<?> value) {
+ clazz = value.getSimpleName();
+ }
+
+ private void setComponent(String value) {
+ component = value;
+ }
+
+ private String format(Object...args) {
+ StringBuffer text = new StringBuffer();
+ if(args != null) {
+ for(Object arg : args) {
+ if(arg != null) {
+ if(arg instanceof String) {
+ text.append(arg);
+ }
+ else {
+ text.append(arg.toString());
+ }
+ text.append(" ");
+ }
+ }
+ }
+ return text.toString().trim();
+ }
+
+ private void log(Type type, String location, IDuccId jobid, Object...
args) {
+ StringBuffer text = new StringBuffer();
+ Date date = Calendar.getInstance().getTime();
+ text.append(sdf.format(date));
+ text.append(" ");
+ text.append(type.name());
+ text.append(" ");
+ if(displayComponent) {
+ text.append(component);
+ text.append(":");
+ }
+ text.append(clazz);
+ text.append(".");
+ text.append(location);
+ text.append(" ");
+ text.append(format(args));
+ System.out.println(text);
+ }
+
+ @Override
+ public void debug(String location, IDuccId jobid, Object... args) {
+ if(Type.DEBUG.isActive()) {
+ log(Type.DEBUG, location, jobid, args);
+ }
+ }
+
+ @Override
+ public void error(String location, IDuccId jobid, Object... args) {
+ if(Type.ERROR.isActive()) {
+ log(Type.ERROR, location, jobid, args);
+ }
+ }
+
+ @Override
+ public void info(String location, IDuccId jobid, Object... args) {
+ if(Type.INFO.isActive()) {
+ log(Type.INFO, location, jobid, args);
+ }
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/DuccLogger.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccId.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccId.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccId.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccId.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,6 @@
+package org.apache.uima.ducc.container.common;
+
+public interface IDuccId {
+
+ public static IDuccId null_id = null;
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccId.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccLogger.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccLogger.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccLogger.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccLogger.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,11 @@
+package org.apache.uima.ducc.container.common;
+
+
+public interface IDuccLogger {
+
+ public enum Component { JD, OR, WS };
+
+ public void debug(String location, IDuccId jobid, Object ... args);
+ public void error(String location, IDuccId jobid, Object ... args);
+ public void info(String location, IDuccId jobid, Object ... args);
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/IDuccLogger.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MessageBuffer.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MessageBuffer.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MessageBuffer.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MessageBuffer.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,18 @@
+package org.apache.uima.ducc.container.common;
+
+public class MessageBuffer {
+
+ private StringBuffer sb = new StringBuffer();
+
+ public void append(String text) {
+ if(sb.length() > 0) {
+ sb.append(" ");
+ }
+ sb.append(text);
+ }
+
+ @Override
+ public String toString() {
+ return sb.toString();
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/MessageBuffer.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,28 @@
+package org.apache.uima.ducc.container.common;
+
+public class Standardize {
+
+ public enum Label {
+ state,
+ event,
+ curr,
+ prev,
+ hash,
+ loaded,
+ seqNo,
+ transNo,
+ remote,
+ action,
+ type,
+ AckMsecs,
+ EndMsecs,
+ ;
+
+ Label() {
+ }
+
+ public String get() {
+ return this+"=";
+ }
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/Standardize.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/IOHelper.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/IOHelper.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/IOHelper.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/IOHelper.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,60 @@
+/*
+ * 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.container.common.files;
+
+import java.io.File;
+
+public class IOHelper {
+
+ public static String marryDir2File(String dirname, String filename) {
+ StringBuffer sb = new StringBuffer();
+ String dname = "";
+ String fname = "";
+ if(dirname != null) {
+ dname = dirname;
+ }
+ if(filename != null) {
+ fname = filename;
+ }
+ if(dname.endsWith(File.separator)) {
+ sb.append(dirname);
+ }
+ else {
+ sb.append(dirname);
+ sb.append(File.separator);
+ }
+ if(fname.startsWith(File.separator)) {
+ sb.append(fname.substring(1));
+ }
+ else {
+ sb.append(fname);
+ }
+ return sb.toString();
+ }
+
+ public static boolean mkdirs(String directory) {
+ boolean created = false;
+ File file = new File(directory);
+ if(!file.exists()) {
+ file.mkdirs();
+ created = true;
+ }
+ return created;
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/IOHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/IJsonWorkItemState.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/IJsonWorkItemState.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/IJsonWorkItemState.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/IJsonWorkItemState.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,16 @@
+package org.apache.uima.ducc.container.common.files.json;
+
+import org.apache.uima.ducc.container.jd.dispatch.IRemoteWorkerIdentity;
+import org.apache.uima.ducc.container.net.iface.IMetaCasKeys;
+
+public interface IJsonWorkItemState extends IMetaCasKeys,
IRemoteWorkerIdentity {
+
+ public String getStatus();
+ public void setStatus(String value);
+
+ public long getTransferTime();
+ public void setTransferTime(long value);
+
+ public long getProcessingTime();
+ public void setProcessingTime(long value);
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/IJsonWorkItemState.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonConverter.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonConverter.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonConverter.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonConverter.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,36 @@
+package org.apache.uima.ducc.container.common.files.json;
+
+import java.lang.reflect.Type;
+import java.util.concurrent.ConcurrentHashMap;
+
+import com.google.gson.Gson;
+import com.google.gson.reflect.TypeToken;
+
+public class JsonConverter {
+
+ private static Gson gson = new Gson();
+
+ private static String linend = "\n";
+
+ public static String workItemStateToJson(IJsonWorkItemState jsonObject)
{
+ String json = gson.toJson(jsonObject)+linend;
+ return json;
+ }
+
+ public static IJsonWorkItemState workItemStateFromJson(String
jsonString) {
+ Type typeOfMap = new TypeToken<JsonWorkItemState>() {
}.getType();
+ IJsonWorkItemState retVal = gson.fromJson(jsonString,
typeOfMap);
+ return retVal;
+ }
+
+ public static String
workItemStateMapToJson(ConcurrentHashMap<String,JsonWorkItemState> jsonObject) {
+ String json = gson.toJson(jsonObject);
+ return json;
+ }
+
+ public static ConcurrentHashMap<String,JsonWorkItemState>
workItemStateMapFromJson(String jsonString) {
+ Type typeOfMap = new
TypeToken<ConcurrentHashMap<String,JsonWorkItemState>>() { }.getType();
+ ConcurrentHashMap<String,JsonWorkItemState> retVal =
gson.fromJson(jsonString, typeOfMap);
+ return retVal;
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonConverter.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemState.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemState.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemState.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemState.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,99 @@
+package org.apache.uima.ducc.container.common.files.json;
+
+public class JsonWorkItemState implements IJsonWorkItemState {
+
+ private static final long serialVersionUID = 1L;
+
+ private String systemKey = null;
+ private String userKey = null;
+
+ private String node = null;
+ private int pid = 0;
+ private int tid = 0;
+
+ private String status = null;
+
+ private long transferTime = 0;
+ private long processingTime = 0;
+
+ @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 String getNode() {
+ return node;
+ }
+
+ @Override
+ public void setNode(String value) {
+ node = value;
+ }
+
+ @Override
+ public int getPid() {
+ return pid;
+ }
+
+ @Override
+ public void setPid(int value) {
+ pid = value;
+ }
+
+ @Override
+ public int getTid() {
+ return tid;
+ }
+
+ @Override
+ public void setTid(int value) {
+ tid = value;
+ }
+
+ @Override
+ public String getStatus() {
+ return status;
+ }
+
+ @Override
+ public void setStatus(String value) {
+ status = value;
+ }
+
+ @Override
+ public long getTransferTime() {
+ return transferTime;
+ }
+
+ @Override
+ public void setTransferTime(long value) {
+ transferTime = value;
+ }
+
+ @Override
+ public long getProcessingTime() {
+ return processingTime;
+ }
+
+ @Override
+ public void setProcessingTime(long value) {
+ processingTime = value;
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemState.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemStateFile.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemStateFile.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemStateFile.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemStateFile.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,5 @@
+package org.apache.uima.ducc.container.common.files.json;
+
+public class JsonWorkItemStateFile {
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/files/json/JsonWorkItemStateFile.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Action.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/Action.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Action.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Action.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,27 @@
+package org.apache.uima.ducc.container.common.fsm;
+
+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;
+
+public class Action implements IAction {
+
+ private IDuccLogger logger = DuccLogger.getLogger(Action.class,
IDuccLogger.Component.JD.name());
+
+ @Override
+ public String getName() {
+ return "default";
+ }
+
+ @Override
+ public void engage(Object actionData) {
+ String location = "engage";
+ MessageBuffer mb = new MessageBuffer();
+ mb.append(Standardize.Label.action.get()+getName());
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Action.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Event.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/Event.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Event.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Event.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,62 @@
+package org.apache.uima.ducc.container.common.fsm;
+
+import org.apache.uima.ducc.container.common.fsm.iface.IEvent;
+
+public class Event implements IEvent {
+
+ private String name = null;
+
+ public Event(String name) throws FsmException {
+ if(name == null) {
+ throw new FsmException("event name is null");
+ }
+ setName(name);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 :
name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ boolean retVal = false;
+ if(o != null) {
+ if(o instanceof IEvent) {
+ IEvent that = (IEvent)o;
+ String thisName = this.getName();
+ String thatName = that.getName();
+ retVal = thisName.compareTo(thatName) == 0;
+ }
+ }
+ return retVal;
+ }
+
+ @Override
+ public int compareTo(Object o) {
+ int retVal = 0;
+ if(name != null) {
+ if(o != null) {
+ if(o instanceof IEvent) {
+ IEvent that = (IEvent)o;
+ String thisName = this.getName();
+ String thatName = that.getName();
+ retVal = thisName.compareTo(thatName);
+ }
+ }
+ }
+ return retVal;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ private void setName(String value) {
+ name = value;
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Event.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
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=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,122 @@
+package org.apache.uima.ducc.container.common.fsm;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+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.common.fsm.iface.IEvent;
+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.common.fsm.iface.IStateEventKey;
+import org.apache.uima.ducc.container.common.fsm.iface.IStateEventValue;
+
+public class Fsm implements IFsmBuilder {
+
+ private static IDuccLogger logger = DuccLogger.getLogger(Fsm.class,
IDuccLogger.Component.JD.name());
+
+ private ConcurrentHashMap<IStateEventKey, IStateEventValue> map = new
ConcurrentHashMap<IStateEventKey, IStateEventValue>();
+
+ private IState stateCurrent = null;
+ private IState statePrevious = null;
+
+ @Override
+ public void add(IState current, IEvent event, IAction action, IState
next) throws FsmException {
+ String location = "add";
+ IStateEventKey key = new StateEventKey(current, event);
+ IStateEventValue value = new StateEventValue(action, next);
+ IStateEventValue result = putIfAbsent(key, value);
+ if(result != null) {
+ MessageBuffer mb = new MessageBuffer();
+ mb.append("duplicate");
+
mb.append(Standardize.Label.state.get()+current.getName());
+
mb.append(Standardize.Label.event.get()+event.getName());
+ throw new FsmException(mb.toString());
+ }
+ MessageBuffer mb = new MessageBuffer();
+ mb.append(Standardize.Label.state.get()+current.getName());
+ mb.append(Standardize.Label.event.get()+event.getName());
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ }
+
+ @Override
+ public void addInitial(IState current, IEvent event, IAction action,
IState next) throws FsmException {
+ add(current, event, action, next);
+ setStateCurrent(current);
+ }
+
+ private void setStateCurrent(IState value) {
+ stateCurrent = value;
+ }
+
+ @Override
+ public IState getStateCurrent() {
+ return stateCurrent;
+ }
+
+ private void setStatePrevious(IState value) {
+ statePrevious = value;
+ }
+
+ @Override
+ public IState getStatePrevious() {
+ return statePrevious;
+ }
+
+ private IStateEventValue putIfAbsent(IStateEventKey key,
IStateEventValue value) {
+ String location = "putIfAbsent";
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.state.get()+key.getState().getName());
+
mb.append(Standardize.Label.event.get()+key.getEvent().getName());
+ mb.append(Standardize.Label.hash.get()+key.hashCode());
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ return map.putIfAbsent(key, value);
+ }
+
+ private IStateEventValue get(IStateEventKey key) {
+ String location = "get";
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.state.get()+key.getState().getName());
+
mb.append(Standardize.Label.event.get()+key.getEvent().getName());
+ mb.append(Standardize.Label.hash.get()+key.hashCode());
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ IStateEventValue value = map.get(key);
+ return value;
+ }
+
+ @Override
+ public void transition(IEvent event, Object actionData) throws
FsmException {
+ String location = "transition";
+ try {
+ synchronized(map) {
+ IState _stateCurrent = getStateCurrent();
+ IStateEventKey key = new
StateEventKey(_stateCurrent, event);
+ IStateEventValue value = get(key);
+ if(value == null) {
+ MessageBuffer mb = new MessageBuffer();
+ mb.append("undefined");
+
mb.append(Standardize.Label.state.get()+_stateCurrent.getName());
+
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);
+ setStatePrevious(_statePrevious);
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.curr.get()+_stateCurrent.getName());
+
mb.append(Standardize.Label.prev.get()+_statePrevious.getName());
+ logger.info(location, IDuccId.null_id,
mb.toString());
+ }
+ }
+ catch(Exception e) {
+ throw new FsmException(e);
+ }
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/Fsm.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/FsmException.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/FsmException.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/FsmException.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/FsmException.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,14 @@
+package org.apache.uima.ducc.container.common.fsm;
+
+public class FsmException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ public FsmException(String text) {
+ super(text);
+ }
+
+ public FsmException(Exception e) {
+ super(e);
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/FsmException.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/State.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/State.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/State.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/State.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,62 @@
+package org.apache.uima.ducc.container.common.fsm;
+
+import org.apache.uima.ducc.container.common.fsm.iface.IState;
+
+public class State implements IState {
+
+ private String name = null;
+
+ public State(String name) throws FsmException {
+ if(name == null) {
+ throw new FsmException("state name is null");
+ }
+ setName(name);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((name == null) ? 0 :
name.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ boolean retVal = false;
+ if(o != null) {
+ if(o instanceof IState) {
+ IState that = (IState)o;
+ String thisName = this.getName();
+ String thatName = that.getName();
+ retVal = thisName.compareTo(thatName) == 0;
+ }
+ }
+ return retVal;
+ }
+
+ @Override
+ public int compareTo(Object o) {
+ int retVal = 0;
+ if(name != null) {
+ if(o != null) {
+ if(o instanceof IState) {
+ IState that = (IState)o;
+ String thisName = this.getName();
+ String thatName = that.getName();
+ retVal = thisName.compareTo(thatName);
+ }
+ }
+ }
+ return retVal;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ private void setName(String value) {
+ name = value;
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/State.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventKey.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/StateEventKey.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventKey.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventKey.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,89 @@
+package org.apache.uima.ducc.container.common.fsm;
+
+import org.apache.uima.ducc.container.common.fsm.iface.IEvent;
+import org.apache.uima.ducc.container.common.fsm.iface.IState;
+import org.apache.uima.ducc.container.common.fsm.iface.IStateEventKey;
+
+public class StateEventKey implements IStateEventKey {
+
+ private IState state = null;
+ private IEvent event = null;
+
+ public StateEventKey(IState state, IEvent event) throws FsmException {
+ if(state == null) {
+ throw new FsmException("state object is null");
+ }
+ if(event == null) {
+ throw new FsmException("event object is null");
+ }
+ setState(state);
+ setEvent(event);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((state == null) ? 0 :
state.hashCode());
+ result = prime * result + ((event == null) ? 0 :
event.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ boolean retVal = false;
+ if(o != null) {
+ if(o instanceof IStateEventKey) {
+ IStateEventKey that = (IStateEventKey) o;
+ IState thatState = that.getState();
+ IEvent thatEvent = that.getEvent();
+ if(thatState != null) {
+ if(thatEvent != null) {
+ if(thatState.equals(state)) {
+
if(thatEvent.equals(event)) {
+ retVal = true;
+ }
+ }
+ }
+ }
+ }
+ }
+ return retVal;
+ }
+
+ @Override
+ public int compareTo(Object o) {
+ int retVal = 0;
+ if(state != null) {
+ if(event != null) {
+ if(o != null) {
+ StateEventKey that = (StateEventKey)o;
+ retVal =
this.state.compareTo(that.state);
+ if(retVal == 0) {
+ retVal =
this.event.compareTo(that.event);
+ }
+ }
+ }
+ }
+ return retVal;
+ }
+
+ private void setState(IState value) {
+ state = value;
+ }
+
+ @Override
+ public IState getState() {
+ return state;
+ }
+
+ private void setEvent(IEvent value) {
+ event = value;
+ }
+
+ @Override
+ public IEvent getEvent() {
+ return event;
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventKey.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventValue.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/StateEventValue.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventValue.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventValue.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,41 @@
+package org.apache.uima.ducc.container.common.fsm;
+
+import org.apache.uima.ducc.container.common.fsm.iface.IAction;
+import org.apache.uima.ducc.container.common.fsm.iface.IState;
+import org.apache.uima.ducc.container.common.fsm.iface.IStateEventValue;
+
+public class StateEventValue implements IStateEventValue {
+
+ private IAction action = null;
+ private IState state = null;
+
+ public StateEventValue(IAction action, IState state) throws
FsmException {
+ if(action == null) {
+ throw new FsmException("action object is null");
+ }
+ if(state == null) {
+ throw new FsmException("state object is null");
+ }
+ setAction(action);
+ setState(state);
+ }
+
+ @Override
+ public IAction getAction() {
+ return action;
+ }
+
+ private void setAction(IAction value) {
+ action = value;
+ }
+
+ @Override
+ public IState getState() {
+ return state;
+ }
+
+ private void setState(IState value) {
+ state = value;
+ }
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/StateEventValue.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IAction.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/iface/IAction.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IAction.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IAction.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,7 @@
+package org.apache.uima.ducc.container.common.fsm.iface;
+
+public interface IAction {
+
+ public String getName();
+ public void engage(Object actionData);
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IAction.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IEvent.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/iface/IEvent.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IEvent.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IEvent.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,6 @@
+package org.apache.uima.ducc.container.common.fsm.iface;
+
+public interface IEvent extends Comparable<Object> {
+
+ public String getName();
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IEvent.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.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/iface/IFsm.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,10 @@
+package org.apache.uima.ducc.container.common.fsm.iface;
+
+import org.apache.uima.ducc.container.common.fsm.FsmException;
+
+public interface IFsm {
+
+ public void transition(IEvent event, Object actionData) throws
FsmException;
+ public IState getStateCurrent();
+ public IState getStatePrevious();
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsm.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsmBuilder.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/iface/IFsmBuilder.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsmBuilder.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsmBuilder.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,9 @@
+package org.apache.uima.ducc.container.common.fsm.iface;
+
+import org.apache.uima.ducc.container.common.fsm.FsmException;
+
+public interface IFsmBuilder extends IFsm {
+
+ public void add(IState current, IEvent event, IAction action, IState
next) throws FsmException;
+ public void addInitial(IState current, IEvent event, IAction action,
IState next) throws FsmException;
+}
\ No newline at end of file
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IFsmBuilder.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IState.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/iface/IState.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IState.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IState.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,6 @@
+package org.apache.uima.ducc.container.common.fsm.iface;
+
+public interface IState extends Comparable<Object> {
+
+ public String getName();
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IState.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventKey.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/iface/IStateEventKey.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventKey.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventKey.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,7 @@
+package org.apache.uima.ducc.container.common.fsm.iface;
+
+public interface IStateEventKey extends Comparable<Object> {
+
+ public IState getState();
+ public IEvent getEvent();
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventKey.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventValue.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/iface/IStateEventValue.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventValue.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventValue.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,7 @@
+package org.apache.uima.ducc.container.common.fsm.iface;
+
+public interface IStateEventValue {
+
+ public IAction getAction();
+ public IState getState();
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/common/fsm/iface/IStateEventValue.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCasManager.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCasManager.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCasManager.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCasManager.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,81 @@
+package org.apache.uima.ducc.container.jd;
+
+import java.net.URL;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.atomic.AtomicInteger;
+
+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.jd.classload.JobDriverCollectionReader;
+import org.apache.uima.ducc.container.net.impl.MetaCas;
+
+public class JobDriverCasManager {
+
+ private IDuccLogger logger =
DuccLogger.getLogger(JobDriverCasManager.class,
IDuccLogger.Component.JD.name());
+
+ private JobDriverCollectionReader jdcr = null;
+
+ private LinkedBlockingQueue<MetaCas> cacheQueue = new
LinkedBlockingQueue<MetaCas>();
+
+ private AtomicInteger countGet = new AtomicInteger(0);
+ private AtomicInteger countPut = new AtomicInteger(0);
+ private AtomicInteger countGetCr = new AtomicInteger(0);
+
+ public JobDriverCasManager(String[] classpath, String crXml, String
crCfg) throws JobDriverException {
+ initialize(classpath, crXml, crCfg);
+ }
+
+ public void initialize(String[] classpath, String crXml, String crCfg)
throws JobDriverException {
+ String location = "initialize";
+ try {
+ URL[] classLoaderUrls = new URL[classpath.length];
+ int i = 0;
+ for(String item : classpath) {
+ classLoaderUrls[i] =
this.getClass().getResource(item);
+ i++;
+ }
+ jdcr = new JobDriverCollectionReader(classLoaderUrls,
crXml, crCfg);
+ }
+ catch(JobDriverException e) {
+ logger.error(location, IDuccId.null_id, e);
+ throw e;
+ }
+ }
+
+ public MetaCas getMetaCas() throws JobDriverException {
+ MetaCas retVal = cacheQueue.poll();
+ if(retVal != null) {
+ countGet.incrementAndGet();
+ }
+ else {
+ retVal = jdcr.getMetaCas();
+ if(retVal != null) {
+ countGetCr.incrementAndGet();
+ countGet.incrementAndGet();
+ }
+ }
+ return retVal;
+ }
+
+ public void putMetaCas(MetaCas metaCas) {
+ cacheQueue.add(metaCas);
+ countPut.incrementAndGet();
+ }
+
+ public int getTotal() throws JobDriverException {
+ return jdcr.getTotal();
+ }
+
+ public int getGets() {
+ return countGet.intValue();
+ }
+
+ public int getPuts() {
+ return countPut.intValue();
+ }
+
+ public int getGetsCr() {
+ return countGetCr.intValue();
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCasManager.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCommon.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCommon.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCommon.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCommon.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,50 @@
+package org.apache.uima.ducc.container.jd;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+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.jd.dispatch.IRemoteWorkerIdentity;
+import org.apache.uima.ducc.container.jd.dispatch.IWorkItem;
+
+public class JobDriverCommon {
+
+ private static IDuccLogger logger =
DuccLogger.getLogger(JobDriverCommon.class, IDuccLogger.Component.JD.name());
+
+ private static JobDriverCommon instance = null;
+
+ public static JobDriverCommon getInstance() {
+ return instance;
+ }
+
+ private ConcurrentHashMap<IRemoteWorkerIdentity, IWorkItem> map = null;
+ private JobDriverCasManager jdcm = null;
+
+ public JobDriverCommon(String[] classpath, String crXml, String crCfg) {
+ initialize(classpath, crXml, crCfg);
+ if(instance == null) {
+ instance = this;
+ }
+ }
+
+ public void initialize(String[] classpath, String crXml, String crCfg) {
+ String location = "initialize";
+ try {
+ map = new ConcurrentHashMap<IRemoteWorkerIdentity,
IWorkItem>();
+ jdcm = new JobDriverCasManager(classpath, crXml, crCfg);
+ }
+ catch(Exception e) {
+ logger.error(location, IDuccId.null_id, e);
+ }
+
+ }
+
+ public ConcurrentHashMap<IRemoteWorkerIdentity, IWorkItem> getMap() {
+ return map;
+ }
+
+ public JobDriverCasManager getCasManager() {
+ return jdcm;
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverCommon.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverException.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverException.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverException.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverException.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,14 @@
+package org.apache.uima.ducc.container.jd;
+
+public class JobDriverException extends Exception {
+
+ private static final long serialVersionUID = 1L;
+
+ public JobDriverException(String text) {
+ super(text);
+ }
+
+ public JobDriverException(Exception e) {
+ super(e);
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriverException.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java
URL:
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,192 @@
+package org.apache.uima.ducc.container.jd.classload;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+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.jd.JobDriverException;
+import org.apache.uima.ducc.container.net.impl.MetaCas;
+
+public class JobDriverCollectionReader {
+
+ private IDuccLogger logger =
DuccLogger.getLogger(JobDriverCollectionReader.class,
IDuccLogger.Component.JD.name());
+
+ private URLClassLoader urlClassLoader = null;
+ private String crXml = null;
+ private String crCfg = null;
+
+ private Class<?>[] nullClassArray = null;
+ private Object[] nullObjectArray = null;
+
+ private Class<?> class_JdUserCollectionReader = null;
+ private Object instance_JdUserCollectionReader = null;
+
+ private String name_getTotal = "getTotal";
+ private Method method_getTotal = null;
+
+ private Class<?> class_JdUserMetaCas = null;
+
+ private String name_getJdUserMetaCas = "getJdUserMetaCas";
+ private Method method_getJdUserMetaCas = null;
+
+ private String name_getSeqNo = "getSeqNo";
+ private String name_getDocumentText = "getDocumentText";
+ private String name_getSerializedCas = "getSerializedCas";
+
+ private String[] requiredClasses = {
+
"org.apache.uima.ducc.user.jd.iface.JdUserCollectionReader",
+ "org.apache.uima.aae.UimaSerializer",
+ "org.apache.uima.cas.CAS",
+ "com.thoughtworks.xstream.XStream",
+ };
+
+ public JobDriverCollectionReader(URLClassLoader classLoader, String
crXml, String cfCfg) throws JobDriverException {
+ construct(classLoader, crXml, cfCfg);
+ }
+
+ public JobDriverCollectionReader(URL[] classLoaderUrls, String crXml,
String cfCfg) throws JobDriverException {
+ URLClassLoader classLoader = new
URLClassLoader(classLoaderUrls);
+ construct(classLoader, crXml, cfCfg);
+ }
+
+ public int getTotal() throws JobDriverException {
+ int retVal = -1;
+ try {
+ retVal =
(Integer)method_getTotal.invoke(instance_JdUserCollectionReader,
nullObjectArray);
+ } catch (IllegalAccessException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (IllegalArgumentException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (InvocationTargetException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ }
+ return retVal;
+ }
+
+ public MetaCas getMetaCas() throws JobDriverException {
+ MetaCas retVal = null;
+ try {
+ method_getJdUserMetaCas =
class_JdUserCollectionReader.getMethod(name_getJdUserMetaCas, nullClassArray);
+ Object instance_metaCas =
method_getJdUserMetaCas.invoke(instance_JdUserCollectionReader,
nullObjectArray);
+ if(instance_metaCas != null) {
+ Method method_getSeqNo =
class_JdUserMetaCas.getMethod(name_getSeqNo, nullClassArray);
+ Integer x =
(Integer)method_getSeqNo.invoke(instance_metaCas, nullObjectArray);
+ int seqNo = x.intValue();
+ Method method_getSerializedCas =
class_JdUserMetaCas.getMethod(name_getSerializedCas, nullClassArray);
+ Object serializedCas =
method_getSerializedCas.invoke(instance_metaCas, nullObjectArray);
+ Method method_getDocumentText =
class_JdUserMetaCas.getMethod(name_getDocumentText, nullClassArray);
+ String docId =
(String)method_getDocumentText.invoke(instance_metaCas, nullObjectArray);
+ retVal = new MetaCas(seqNo, docId,
serializedCas);
+ }
+ } catch (NoSuchMethodException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (SecurityException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (IllegalAccessException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (IllegalArgumentException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (InvocationTargetException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ }
+ return retVal;
+ }
+
+ private void construct(URLClassLoader classLoader, String crXml, String
cfCfg) throws JobDriverException {
+ prepare(classLoader, crXml, cfCfg);
+ validate();
+ initialize();
+ }
+
+ private void prepare(URLClassLoader urlClassLoader, String crXml,
String crCfg) throws JobDriverException {
+ if(urlClassLoader == null) {
+ throw new JobDriverException("missing URLClassLoader");
+ }
+ setURLClassLoader(urlClassLoader);
+ if(crXml == null) {
+ throw new JobDriverException("missing CollectionReader
xml");
+ }
+ setCrXml(crXml);
+ setCrCfg(crCfg);
+ }
+
+ private void validate() throws JobDriverException {
+ for(String className : requiredClasses) {
+ loadClass(className);
+ }
+ }
+
+ private void initialize() throws JobDriverException {
+ try {
+ class_JdUserCollectionReader =
urlClassLoader.loadClass("org.apache.uima.ducc.user.jd.iface.JdUserCollectionReader");
+ Constructor<?> constructor_JdUserCollectionReader =
class_JdUserCollectionReader.getConstructor(String.class,String.class);
+ instance_JdUserCollectionReader =
constructor_JdUserCollectionReader.newInstance(new Object[] { crXml, crCfg });
+ method_getTotal =
class_JdUserCollectionReader.getMethod(name_getTotal, nullClassArray);
+ class_JdUserMetaCas =
urlClassLoader.loadClass("org.apache.uima.ducc.user.jd.iface.JdUserMetaCas");
+ method_getJdUserMetaCas =
class_JdUserCollectionReader.getMethod(name_getJdUserMetaCas, nullClassArray);
+ } catch (ClassNotFoundException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (NoSuchMethodException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (SecurityException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (InstantiationException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (IllegalAccessException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (IllegalArgumentException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ } catch (InvocationTargetException e) {
+ JobDriverException jobDriverException = new
JobDriverException(e);
+ throw jobDriverException;
+ }
+ }
+
+ private void setURLClassLoader(URLClassLoader value) {
+ String location = "setURLClassLoader";
+ logger.debug(location, IDuccId.null_id, value);
+ urlClassLoader = value;
+ }
+
+ private void setCrXml(String value) {
+ crXml = value;
+ }
+
+ private void setCrCfg(String value) {
+ crCfg = value;
+ }
+
+ private void loadClass(String className) throws JobDriverException {
+ String location = "loadClass";
+ try {
+ logger.info(location, IDuccId.null_id, "loading
"+className);
+ Class<?> loadedClass =
urlClassLoader.loadClass(className);
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.loaded.get()+loadedClass.getName());
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ } catch (ClassNotFoundException e) {
+ throw new JobDriverException(e);
+ }
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
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=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Dispatcher.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Dispatcher.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,157 @@
+package org.apache.uima.ducc.container.jd.dispatch;
+
+import java.util.concurrent.ConcurrentHashMap;
+
+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.IEvent;
+import org.apache.uima.ducc.container.common.fsm.iface.IFsm;
+import org.apache.uima.ducc.container.jd.JobDriverCommon;
+import org.apache.uima.ducc.container.jd.fsm.wi.ActionData;
+import org.apache.uima.ducc.container.jd.fsm.wi.WiFsm;
+import org.apache.uima.ducc.container.net.iface.IMetaCas;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
+import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.Type;
+
+public class Dispatcher {
+
+ private static IDuccLogger logger =
DuccLogger.getLogger(Dispatcher.class, IDuccLogger.Component.JD.name());
+
+ public Dispatcher() {
+ }
+
+ public void downNode(NodeInfo nodeInfo) {
+
+ }
+
+ public void downProcess(ProcessInfo processInfo) {
+
+ }
+
+ public void preemptProcess(ProcessInfo processInfo) {
+
+ }
+
+ public void handleMetaCasTransation(IMetaCasTransaction trans) {
+ String location = "handleMetaCasTransation";
+ try {
+ RemoteWorkerIdentity rwi = new
RemoteWorkerIdentity(trans);
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.remote.get()+rwi.toString());
+ mb.append(Standardize.Label.type.get()+trans.getType());
+ logger.info(location, IDuccId.null_id, mb.toString());
+ Type type = trans.getType();
+ switch(type) {
+ case Get:
+ handleMetaCasTransationGet(trans, rwi);
+ break;
+ case Ack:
+ handleMetaCasTransationAck(trans, rwi);
+ break;
+ case End:
+ handleMetaCasTransationEnd(trans, rwi);
+ break;
+ default:
+ break;
+ }
+ }
+ catch(Exception e) {
+ logger.error(location, IDuccId.null_id, e);
+ }
+ }
+
+ private IWorkItem register(IRemoteWorkerIdentity rwi) {
+ String location = "register";
+ ConcurrentHashMap<IRemoteWorkerIdentity, IWorkItem> map =
JobDriverCommon.getInstance().getMap();
+ IWorkItem wi = map.get(rwi);
+ while(wi == null) {
+ IMetaCas metaCas = null;
+ IFsm fsm = new WiFsm();
+ map.putIfAbsent(rwi, new WorkItem(metaCas, fsm));
+ wi = map.get(rwi);
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.remote.get()+rwi.toString());
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ }
+ return wi;
+ }
+
+ private IWorkItem find(IRemoteWorkerIdentity rwi) {
+ String location = "find";
+ ConcurrentHashMap<IRemoteWorkerIdentity, IWorkItem> map =
JobDriverCommon.getInstance().getMap();
+ IWorkItem wi = map.get(rwi);
+ if(wi != null) {
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.remote.get()+rwi.toString());
+
mb.append(Standardize.Label.seqNo.get()+wi.getMetaCas().getSystemKey());
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ }
+ else {
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.remote.get()+rwi.toString());
+ mb.append("has no work assigned presently");
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ }
+ return wi;
+ }
+
+ public void handleMetaCasTransationGet(IMetaCasTransaction trans,
IRemoteWorkerIdentity rwi) {
+ IWorkItem wi = register(rwi);
+ IFsm fsm = wi.getFsm();
+ 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) {
+ String location = "handleMetaCasTransationAck";
+ IWorkItem wi = find(rwi);
+ if(wi == null) {
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.remote.get()+rwi.toString());
+ mb.append("has no work assigned presently");
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ }
+ else {
+ trans.setMetaCas(wi.getMetaCas());
+ IFsm fsm = wi.getFsm();
+ IEvent event = WiFsm.Ack_Request;
+ Object actionData = new ActionData(wi, rwi, trans);
+ fsm.transition(event, actionData);
+ }
+ }
+
+ public void handleMetaCasTransationEnd(IMetaCasTransaction trans,
IRemoteWorkerIdentity rwi) {
+ String location = "handleMetaCasTransationEnd";
+ IWorkItem wi = find(rwi);
+ if(wi == null) {
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.remote.get()+rwi.toString());
+ mb.append("has no work assigned presently");
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ }
+ else {
+ trans.setMetaCas(wi.getMetaCas());
+ IFsm fsm = wi.getFsm();
+ IEvent event = WiFsm.End_Request;
+ Object actionData = new ActionData(wi, rwi, trans);
+ fsm.transition(event, actionData);
+ MessageBuffer mb = new MessageBuffer();
+
mb.append(Standardize.Label.AckMsecs.get()+(wi.getTodAck()-wi.getTodGet()));
+
mb.append(Standardize.Label.EndMsecs.get()+(wi.getTodEnd()-wi.getTodAck()));
+ logger.debug(location, IDuccId.null_id, mb.toString());
+ }
+ }
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/Dispatcher.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IRemoteWorkerIdentity.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/IRemoteWorkerIdentity.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IRemoteWorkerIdentity.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IRemoteWorkerIdentity.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,13 @@
+package org.apache.uima.ducc.container.jd.dispatch;
+
+public interface IRemoteWorkerIdentity {
+
+ public String getNode();
+ public void setNode(String value);
+
+ public int getPid();
+ public void setPid(int value);
+
+ public int getTid();
+ public void setTid(int value);
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IRemoteWorkerIdentity.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IWorkItem.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/IWorkItem.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IWorkItem.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IWorkItem.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,22 @@
+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 interface IWorkItem {
+
+ public void setMetaCas(IMetaCas value);
+ public IMetaCas getMetaCas();
+
+ public void setFsm(IFsm value);
+ public IFsm getFsm();
+
+ public void setTodGet();
+ public long getTodGet();
+
+ public void setTodAck();
+ public long getTodAck();
+
+ public void setTodEnd();
+ public long getTodEnd();
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/IWorkItem.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/NodeInfo.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/NodeInfo.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/NodeInfo.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/NodeInfo.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,5 @@
+package org.apache.uima.ducc.container.jd.dispatch;
+
+public class NodeInfo {
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/NodeInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/ProcessInfo.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/ProcessInfo.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/ProcessInfo.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/ProcessInfo.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,5 @@
+package org.apache.uima.ducc.container.jd.dispatch;
+
+public class ProcessInfo {
+
+}
Propchange:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/ProcessInfo.java
------------------------------------------------------------------------------
svn:eol-style = native
Added:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/RemoteWorkerIdentity.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/RemoteWorkerIdentity.java?rev=1634998&view=auto
==============================================================================
---
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/RemoteWorkerIdentity.java
(added)
+++
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/dispatch/RemoteWorkerIdentity.java
Tue Oct 28 22:00:48 2014
@@ -0,0 +1,158 @@
+package org.apache.uima.ducc.container.jd.dispatch;
+
+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.net.iface.IMetaCasRequester;
+
+public class RemoteWorkerIdentity implements IRemoteWorkerIdentity,
Comparable<Object> {
+
+ private IDuccLogger logger =
DuccLogger.getLogger(RemoteWorkerIdentity.class,
IDuccLogger.Component.JD.name());
+
+ private String node = null;
+ private int pid = 0;
+ private int tid = 0;
+
+ public RemoteWorkerIdentity(IMetaCasRequester metaCasRequester) {
+ setNode(metaCasRequester.getRequesterName());
+ setPid(metaCasRequester.getRequesterProcessId());
+ setTid(metaCasRequester.getRequesterThreadId());
+ }
+
+ public RemoteWorkerIdentity(String node, int pid, int tid) {
+ setNode(node);
+ setPid(pid);
+ setTid(tid);
+ }
+
+ @Override
+ public String toString() {
+ StringBuffer sb = new StringBuffer();
+ if(node != null) {
+ sb.append(node);
+ sb.append(".");
+ }
+ sb.append(pid);
+ sb.append(".");
+ sb.append(tid);
+ return sb.toString();
+ }
+
+ @Override
+ public String getNode() {
+ return node;
+ }
+
+ @Override
+ public void setNode(String value) {
+ node = value;
+ }
+
+ @Override
+ public int getPid() {
+ return pid;
+ }
+
+ @Override
+ public void setPid(int value) {
+ pid = value;
+ }
+
+ @Override
+ public int getTid() {
+ return tid;
+ }
+
+ @Override
+ public void setTid(int value) {
+ tid = value;
+ }
+
+ private int compareNode(RemoteWorkerIdentity that) {
+ int retVal = 0;
+ String thisNode = this.getNode();
+ String thatNode = that.getNode();
+ if(thisNode != null) {
+ if(thatNode != null) {
+ retVal = thisNode.compareTo(thatNode);
+ }
+ }
+ return retVal;
+ }
+
+ private int comparePid(RemoteWorkerIdentity that) {
+ int retVal = 0;
+ Integer thisPid = new Integer(this.pid);
+ Integer thatPid = new Integer(that.pid);
+ retVal = thisPid.compareTo(thatPid);
+ return retVal;
+ }
+
+ private int compareTid(RemoteWorkerIdentity that) {
+ int retVal = 0;
+ Integer thisTid = new Integer(this.tid);
+ Integer thatTid = new Integer(that.tid);
+ retVal = thisTid.compareTo(thatTid);
+ return retVal;
+ }
+
+ @Override
+ public int compareTo(Object o) {
+ String location = "compareTo";
+ int retVal = 0;
+ try {
+ if(o != null) {
+ RemoteWorkerIdentity that =
(RemoteWorkerIdentity) o;
+ if(retVal == 0) {
+ retVal = compareNode(that);
+ }
+ if(retVal == 0) {
+ retVal = comparePid(that);
+ }
+ if(retVal == 0) {
+ retVal = compareTid(that);
+ }
+ }
+ }
+ catch(Exception e) {
+ logger.error(location, IDuccId.null_id, e);
+ }
+ return retVal;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ String thisNode = this.getNode();
+ Integer thisPid = new Integer(this.pid);
+ Integer thisTid = new Integer(this.tid);
+ result = prime * result + ((thisNode == null) ? 0 :
thisNode.hashCode());
+ result = prime * result + ((thisPid == null) ? 0 :
thisPid.hashCode());
+ result = prime * result + ((thisTid == null) ? 0 :
thisTid.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ String location = "equals";
+ boolean retVal = false;
+ try {
+ if(obj != null) {
+ if(this == obj) {
+ retVal = true;
+ }
+ else {
+ RemoteWorkerIdentity that =
(RemoteWorkerIdentity) obj;
+ if(this.compareTo(that) == 0) {
+ retVal = true;
+ }
+ }
+ }
+ }
+ catch(Exception e) {
+ logger.error(location, IDuccId.null_id, e);
+ }
+ return retVal;
+ }
+}