Author: degenaro
Date: Sat Nov  8 15:19:08 2014
New Revision: 1637572

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

ProxyJobDriverErrorHandler and ProxyJobDriverCollectionReader with test cases.  
IJdUserErrorHandler change CAS to String type.

Added:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverCollectionReader.java
      - copied, changed from r1637477, 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandler.java
   (with props)
    
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdUserErrorHandler.java
   (with props)
Removed:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java
Modified:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/IJdUserErrorHandler.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/JdUserErrorHandler.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java?rev=1637572&r1=1637571&r2=1637572&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/cas/CasManager.java
 Sat Nov  8 15:19:08 2014
@@ -26,14 +26,14 @@ import org.apache.uima.ducc.container.co
 import org.apache.uima.ducc.container.common.IEntityId;
 import org.apache.uima.ducc.container.jd.JobDriverException;
 import org.apache.uima.ducc.container.jd.cas.CasManagerStats.RetryReason;
-import org.apache.uima.ducc.container.jd.classload.JobDriverCollectionReader;
+import 
org.apache.uima.ducc.container.jd.classload.ProxyJobDriverCollectionReader;
 import org.apache.uima.ducc.container.net.iface.IMetaCas;
 
 public class CasManager {
 
        private IContainerLogger logger = 
ContainerLogger.getLogger(CasManager.class, 
IContainerLogger.Component.JD.name());
        
-       private JobDriverCollectionReader jdcr = null;
+       private ProxyJobDriverCollectionReader pjdcr = null;
        
        private LinkedBlockingQueue<IMetaCas> cacheQueue = new 
LinkedBlockingQueue<IMetaCas>();
        
@@ -52,8 +52,8 @@ public class CasManager {
                                classLoaderUrls[i] = 
this.getClass().getResource(item);
                                i++;
                        }
-                       jdcr = new JobDriverCollectionReader(classLoaderUrls, 
crXml, crCfg);
-                       casManagerStats.setCrTotal(jdcr.getTotal());
+                       pjdcr = new 
ProxyJobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
+                       casManagerStats.setCrTotal(pjdcr.getTotal());
                }
                catch(JobDriverException e) {
                        logger.error(location, IEntityId.null_id, e);
@@ -67,7 +67,7 @@ public class CasManager {
                        casManagerStats.incRetryQueueGets();
                }
                else {
-                       retVal = jdcr.getMetaCas();
+                       retVal = pjdcr.getMetaCas();
                        if(retVal != null) {
                                casManagerStats.incCrGets();
                        }

Copied: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverCollectionReader.java
 (from r1637477, 
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/ProxyJobDriverCollectionReader.java?p2=uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverCollectionReader.java&p1=uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java&r1=1637477&r2=1637572&rev=1637572&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/JobDriverCollectionReader.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverCollectionReader.java
 Sat Nov  8 15:19:08 2014
@@ -19,24 +19,25 @@
 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.lang.reflect.Type;
 import java.net.URL;
 import java.net.URLClassLoader;
 
 import org.apache.uima.ducc.container.common.ContainerLogger;
-import org.apache.uima.ducc.container.common.IEntityId;
 import org.apache.uima.ducc.container.common.IContainerLogger;
+import org.apache.uima.ducc.container.common.IEntityId;
 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 {
+public class ProxyJobDriverCollectionReader {
 
-       private IContainerLogger logger = 
ContainerLogger.getLogger(JobDriverCollectionReader.class, 
IContainerLogger.Component.JD.name());
+       private IContainerLogger logger = 
ContainerLogger.getLogger(ProxyJobDriverCollectionReader.class, 
IContainerLogger.Component.JD.name());
        
        private URLClassLoader urlClassLoader = null;
+       
        private String crXml = null;
        private String crCfg = null;
        
@@ -58,6 +59,8 @@ public class JobDriverCollectionReader {
        private String name_getDocumentText = "getDocumentText";
        private String name_getSerializedCas = "getSerializedCas";
        
+       private Method method_deserialize = null;
+       
        private String[] requiredClasses = { 
                        "org.apache.uima.ducc.user.jd.JdUserCollectionReader", 
                        "org.apache.uima.aae.UimaSerializer",
@@ -65,63 +68,64 @@ public class JobDriverCollectionReader {
                        "com.thoughtworks.xstream.XStream",
                        };
        
-       public JobDriverCollectionReader(URLClassLoader classLoader, String 
crXml, String cfCfg) throws JobDriverException {
+       public ProxyJobDriverCollectionReader(URLClassLoader classLoader, 
String crXml, String cfCfg) throws JobDriverException {
                construct(classLoader, crXml, cfCfg);
        }
        
-       public JobDriverCollectionReader(URL[] classLoaderUrls, String crXml, 
String cfCfg) throws JobDriverException {
+       public ProxyJobDriverCollectionReader(URL[] classLoaderUrls, String 
crXml, String cfCfg) throws JobDriverException {
                URLClassLoader classLoader = new 
URLClassLoader(classLoaderUrls, ClassLoader.getSystemClassLoader().getParent());
                construct(classLoader, crXml, cfCfg);
        }
        
        public int getTotal() throws JobDriverException {
+               String location = "getTotal";
                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;
+               } 
+               catch (Exception e) {
+                       logger.error(location, IEntityId.null_id, e);
+                       throw new JobDriverException(e);
                }
                return retVal;
        }
        
        public MetaCas getMetaCas() throws JobDriverException {
+               String location = "getMetaCas";
                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();
+                               Integer integer = 
(Integer)method_getSeqNo.invoke(instance_metaCas, nullObjectArray);
+                               int seqNo = integer.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;
-               }       
+               } 
+               catch (Exception e) {
+                       logger.error(location, IEntityId.null_id, e);
+                       throw new JobDriverException(e);
+               }
+               return retVal;
+       }
+       
+       public Object deserialize(String serializedCas) throws 
JobDriverException {
+               String location = "deserialize";
+               Object retVal = null;
+               try {
+                       Object[] parms = new Object[1];
+                       parms[0] = serializedCas;
+                       retVal = 
method_deserialize.invoke(instance_JdUserCollectionReader, parms);
+               } 
+               catch (Exception e) {
+                       logger.error(location, IEntityId.null_id, e);
+                       throw new JobDriverException(e);
+               }
                return retVal;
        }
        
@@ -132,12 +136,17 @@ public class JobDriverCollectionReader {
        }
        
        private void prepare(URLClassLoader urlClassLoader, String crXml, 
String crCfg) throws JobDriverException {
+               String location = "prepare";
                if(urlClassLoader == null) {
-                       throw new JobDriverException("missing URLClassLoader");
+                       JobDriverException e = new JobDriverException("missing 
URLClassLoader");
+                       logger.error(location, IEntityId.null_id, e);
+                       throw e;
                }
                setURLClassLoader(urlClassLoader);
                if(crXml == null) {
-                       throw new JobDriverException("missing CollectionReader 
xml");
+                       JobDriverException e = new JobDriverException("missing 
CollectionReader xml");
+                       logger.error(location, IEntityId.null_id, e);
+                       throw e;
                }
                setCrXml(crXml);
                setCrCfg(crCfg);
@@ -150,6 +159,7 @@ public class JobDriverCollectionReader {
        }
        
        private void initialize() throws JobDriverException {
+               String location = "initialize";
                try {
                        class_JdUserCollectionReader = 
urlClassLoader.loadClass("org.apache.uima.ducc.user.jd.JdUserCollectionReader");
                        Constructor<?> constructor_JdUserCollectionReader = 
class_JdUserCollectionReader.getConstructor(String.class,String.class);
@@ -157,27 +167,23 @@ public class JobDriverCollectionReader {
                        method_getTotal = 
class_JdUserCollectionReader.getMethod(name_getTotal, nullClassArray);
                        class_JdUserMetaCas = 
urlClassLoader.loadClass("org.apache.uima.ducc.user.jd.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;
+                       //
+                       Method[] classMethods = 
class_JdUserCollectionReader.getMethods();
+                       for(Method method : classMethods) {
+                               if(method.getName().equals("deserialize")) {
+                                       Type[] types = 
method.getParameterTypes();
+                                       if(types.length == 1) {
+                                               
if(types[0].toString().contains(".String")) {
+                                                       method_deserialize = 
method;
+                                                       break;
+                                               }
+                                       }
+                               }
+                       }
+               } 
+               catch (Exception e) {
+                       logger.error(location, IEntityId.null_id, e);
+                       throw new JobDriverException(e);
                }
        }
        
@@ -203,7 +209,9 @@ public class JobDriverCollectionReader {
                        MessageBuffer mb = new MessageBuffer();
                        
mb.append(Standardize.Label.loaded.get()+loadedClass.getName());
                        logger.debug(location, IEntityId.null_id, 
mb.toString());
-               } catch (ClassNotFoundException e) {
+               } 
+               catch (Exception e) {
+                       logger.error(location, IEntityId.null_id, e);
                        throw new JobDriverException(e);
                }
        }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.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/ProxyJobDriverErrorHandler.java?rev=1637572&r1=1637571&r2=1637572&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.java
 Sat Nov  8 15:19:08 2014
@@ -51,12 +51,10 @@ public class ProxyJobDriverErrorHandler 
                initialize(classPath, className, initializationData);
        }
        
-       public ProxyJobDriverErrorHandler(String[] classPath, String 
initializationData) throws JobDriverException {
-               String className = defaultClassName;
-               initialize(classPath, className, initializationData);
-       }
-       
-       public ProxyJobDriverErrorHandler(String[] classPath, String 
initializationData, String className) throws JobDriverException {
+       public ProxyJobDriverErrorHandler(String[] classPath, String className, 
String initializationData) throws JobDriverException {
+               if(className == null) {
+                       className = defaultClassName;
+               }
                initialize(classPath, className, initializationData);
        }
        
@@ -82,7 +80,7 @@ public class ProxyJobDriverErrorHandler 
                                if(method.getName().equals("handle")) {
                                        Type[] types = 
method.getParameterTypes();
                                        if(types.length == 2) {
-                                               
if(types[0].toString().contains("CAS")) {
+                                               
if(types[0].toString().contains("String")) {
                                                        
if(types[1].toString().contains("Exception")) {
                                                                
methodInstanceHandle = method;
                                                                break;
@@ -108,28 +106,27 @@ public class ProxyJobDriverErrorHandler 
                                        }
                                }
                        }
-               } catch (Exception e) {
+               } 
+               catch (Exception e) {
                        logger.error(location, IEntityId.null_id, e);
                        throw new JobDriverException(e);
                }
        }
        
-       public ProxyJobDriverDirective handle(Object cas, Object exception) 
throws JobDriverException {
+       public ProxyJobDriverDirective handle(Object serializedCAS, Object 
exception) throws JobDriverException {
                String location = "handle";
                ProxyJobDriverDirective retVal = null;
                try {
-                       if(cas != null) {
-                               System.out.println("cas: 
"+cas.getClass().getName());
-                       }
-                       if(exception != null) {
-                               System.out.println("exception: 
"+exception.getClass().getName());
-                       }
-                       Object directive = 
methodInstanceHandle.invoke(objectInstance, cas, exception);
+                       Object[] plist = new Object[2];
+                       plist[0] = serializedCAS;
+                       plist[1] = exception;
+                       Object directive = 
methodInstanceHandle.invoke(objectInstance, plist);
                        boolean isKillJob = (Boolean) 
methodInstanceIsKillJob.invoke(directive);
                        boolean isKillProcess = (Boolean) 
methodInstanceIsKillProcess.invoke(directive);
                        boolean isKillWorkItem = (Boolean) 
methodInstanceIsKillWorkItem.invoke(directive);
                        retVal = new ProxyJobDriverDirective(isKillJob, 
isKillProcess, isKillWorkItem);
-               } catch (Exception e) {
+               } 
+               catch (Exception e) {
                        logger.error(location, IEntityId.null_id, e);
                        throw new JobDriverException(e);
                }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java?rev=1637572&r1=1637571&r2=1637572&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java
 Sat Nov  8 15:19:08 2014
@@ -18,10 +18,17 @@
 */
 package org.apache.uima.ducc.container.jd.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.classload.ProxyJobDriverCollectionReader;
+import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverDirective;
 import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverErrorHandler;
 import org.apache.uima.ducc.container.jd.test.helper.Utilities;
+import org.apache.uima.ducc.container.net.impl.MetaCas;
 import org.junit.Test;
 
 public class TestClassLoading extends ATest {
@@ -33,9 +40,9 @@ public class TestClassLoading extends AT
                }
                try {
                        ProxyJobDriverErrorHandler pjdeh = new 
ProxyJobDriverErrorHandler(Utilities.userCP);
-                       Object cas = null;
+                       Object serializedCAS = null;
                        Object exception = null;
-                       pjdeh.handle(cas, exception);
+                       pjdeh.handle(serializedCAS, exception);
                }
                catch(Exception e) {
                        e.printStackTrace();
@@ -43,4 +50,68 @@ public class TestClassLoading extends AT
                }
        }
 
+       @Test
+       public void test_02() {
+               if(isDisabled(this.getClass().getName())) {
+                       return;
+               }
+               try {
+                       String[] userCP = Utilities.userCP;
+                       URL urlXml = this.getClass().getResource("/CR100.xml");
+                       File file = new File(urlXml.getFile());
+                       String crXml = file.getAbsolutePath();
+                       String crCfg = null;
+                       URL[] classLoaderUrls = new URL[userCP.length];
+                       int i = 0;
+                       for(String jar : userCP) {
+                               classLoaderUrls[i] = 
this.getClass().getResource(jar);
+                               i++;
+                       }
+                       ProxyJobDriverCollectionReader pjdcr = new 
ProxyJobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
+                       MetaCas mc = pjdcr.getMetaCas();
+                       Object serializedCAS = mc.getSerializedCas();
+                       Object exception = null;
+                       ProxyJobDriverErrorHandler pjdeh = new 
ProxyJobDriverErrorHandler(Utilities.userCP);
+                       pjdeh.handle(serializedCAS, exception);
+               }
+               catch(Exception e) {
+                       e.printStackTrace();
+                       fail("Exception");
+               }
+       }
+       
+
+       @Test
+       public void test_03() {
+               if(isDisabled(this.getClass().getName())) {
+                       return;
+               }
+               try {
+                       String[] userCP = Utilities.userCP;
+                       URL urlXml = this.getClass().getResource("/CR100.xml");
+                       File file = new File(urlXml.getFile());
+                       String crXml = file.getAbsolutePath();
+                       String crCfg = null;
+                       URL[] classLoaderUrls = new URL[userCP.length];
+                       int i = 0;
+                       for(String jar : userCP) {
+                               classLoaderUrls[i] = 
this.getClass().getResource(jar);
+                               i++;
+                       }
+                       ProxyJobDriverCollectionReader pjdcr = new 
ProxyJobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
+                       MetaCas mc = pjdcr.getMetaCas();
+                       Object serializedCAS = mc.getSerializedCas();
+                       Object exception = null;
+                       String className = 
"org.apache.uima.ducc.user.jd.test.helper.TestJdContainerErrorHandler";
+                       ProxyJobDriverErrorHandler pjdeh = new 
ProxyJobDriverErrorHandler(Utilities.userCP, className, null);
+                       ProxyJobDriverDirective directive = 
pjdeh.handle(serializedCAS, exception);
+                       assertTrue(directive.isKillJob() == true);
+                       assertTrue(directive.isKillProcess() == true);
+                       assertTrue(directive.isKillWorkItem() == false);
+               }
+               catch(Exception e) {
+                       e.printStackTrace();
+                       fail("Exception");
+               }
+       }
 }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java?rev=1637572&r1=1637571&r2=1637572&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestSuite.java
 Sat Nov  8 15:19:08 2014
@@ -27,7 +27,7 @@ import java.net.URL;
 import org.apache.uima.ducc.container.jd.JobDriverException;
 import org.apache.uima.ducc.container.jd.cas.CasManager;
 import org.apache.uima.ducc.container.jd.cas.CasManagerStats.RetryReason;
-import org.apache.uima.ducc.container.jd.classload.JobDriverCollectionReader;
+import 
org.apache.uima.ducc.container.jd.classload.ProxyJobDriverCollectionReader;
 import org.apache.uima.ducc.container.jd.mh.RemoteWorkerIdentity;
 import org.apache.uima.ducc.container.jd.mh.impl.OperatingInfo;
 import org.apache.uima.ducc.container.jd.test.helper.Utilities;
@@ -52,7 +52,7 @@ public class TestSuite extends ATest {
                                classLoaderUrls[i] = 
this.getClass().getResource(jar);
                                i++;
                        }
-                       new JobDriverCollectionReader(classLoaderUrls, crXml, 
crCfg);
+                       new ProxyJobDriverCollectionReader(classLoaderUrls, 
crXml, crCfg);
                }
                catch(Exception e) {
                        e.printStackTrace();
@@ -88,7 +88,7 @@ public class TestSuite extends ATest {
                                }
                        }
                        try {
-                               new JobDriverCollectionReader(classLoaderUrls, 
crXml, crCfg);
+                               new 
ProxyJobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
                                fail("Exception missing...?");
                        }
                        catch(JobDriverException e) {
@@ -124,7 +124,7 @@ public class TestSuite extends ATest {
                                classLoaderUrls[i] = 
this.getClass().getResource(jar);
                                i++;
                        }
-                       new JobDriverCollectionReader(classLoaderUrls, crXml, 
crCfg);
+                       new ProxyJobDriverCollectionReader(classLoaderUrls, 
crXml, crCfg);
                        fail("Exception missing...?");
                }
                catch(JobDriverException e) {
@@ -154,8 +154,8 @@ public class TestSuite extends ATest {
                                classLoaderUrls[i] = 
this.getClass().getResource(jar);
                                i++;
                        }
-                       JobDriverCollectionReader jdcr = new 
JobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
-                       int total = jdcr.getTotal();
+                       ProxyJobDriverCollectionReader pjdcr = new 
ProxyJobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
+                       int total = pjdcr.getTotal();
                        assertTrue(total == 100);
                        debug("total: "+total);
                }
@@ -185,8 +185,8 @@ public class TestSuite extends ATest {
                                classLoaderUrls[i] = 
this.getClass().getResource(jar);
                                i++;
                        }
-                       JobDriverCollectionReader jdcr = new 
JobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
-                       MetaCas mc = jdcr.getMetaCas();
+                       ProxyJobDriverCollectionReader pjdcr = new 
ProxyJobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
+                       MetaCas mc = pjdcr.getMetaCas();
                        int seqNo = mc.getSeqNo();
                        asExpected("seqNo = "+seqNo);
                        assertTrue(seqNo == 1);
@@ -215,9 +215,9 @@ public class TestSuite extends ATest {
                getMetaCas(Utilities.userCP, crXml, crCfg);
        }
        
-       private void getMetaCases(JobDriverCollectionReader jdcr, int total) 
throws JobDriverException {
+       private void getMetaCases(ProxyJobDriverCollectionReader pjdcr, int 
total) throws JobDriverException {
                for(int c=1; c <= total; c++) {
-                       MetaCas mc = jdcr.getMetaCas();
+                       MetaCas mc = pjdcr.getMetaCas();
                        int seqNo = mc.getSeqNo();
                        asExpected("seqNo = "+seqNo);
                        assertTrue(seqNo == c);
@@ -238,12 +238,12 @@ public class TestSuite extends ATest {
                                classLoaderUrls[i] = 
this.getClass().getResource(jar);
                                i++;
                        }
-                       JobDriverCollectionReader jdcr = new 
JobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
-                       int total = jdcr.getTotal();
-                       getMetaCases(jdcr, total);
+                       ProxyJobDriverCollectionReader pjdcr = new 
ProxyJobDriverCollectionReader(classLoaderUrls, crXml, crCfg);
+                       int total = pjdcr.getTotal();
+                       getMetaCases(pjdcr, total);
                        if(extra > 0) {
                                for(int j=0; j<extra; j++) {
-                                       MetaCas mc = jdcr.getMetaCas();
+                                       MetaCas mc = pjdcr.getMetaCas();
                                        assertTrue(mc == null);
                                }
                        }

Added: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandler.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/TestJdContainerErrorHandler.java?rev=1637572&view=auto
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandler.java
 (added)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandler.java
 Sat Nov  8 15:19:08 2014
@@ -0,0 +1,36 @@
+/*
+ * 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.user.jd.test.helper;
+
+import org.apache.uima.ducc.user.jd.iface.IJdUserDirective;
+import org.apache.uima.ducc.user.jd.iface.JdUserDirective;
+import org.apache.uima.ducc.user.jd.iface.JdUserErrorHandler;
+
+public class TestJdContainerErrorHandler extends JdUserErrorHandler {
+
+       @Override
+       public IJdUserDirective handle(String serializedCAS, Exception e) {
+               JdUserDirective jdUserDirective = new JdUserDirective();
+               jdUserDirective.setKillJob();
+               jdUserDirective.setKillProcess();
+               jdUserDirective.resetKillWorkItem();
+               return jdUserDirective;
+       }
+
+}

Propchange: 
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdContainerErrorHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/IJdUserErrorHandler.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/IJdUserErrorHandler.java?rev=1637572&r1=1637571&r2=1637572&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/IJdUserErrorHandler.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/IJdUserErrorHandler.java
 Sat Nov  8 15:19:08 2014
@@ -18,9 +18,7 @@
 */
 package org.apache.uima.ducc.user.jd.iface;
 
-import org.apache.uima.cas.CAS;
-
 public interface IJdUserErrorHandler {
        public void initialize(String initializationData);
-       public IJdUserDirective handle(CAS cas, Exception e);
+       public IJdUserDirective handle(String serializedCAS, Exception 
exception);
 }
\ No newline at end of file

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/JdUserErrorHandler.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/JdUserErrorHandler.java?rev=1637572&r1=1637571&r2=1637572&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/JdUserErrorHandler.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/jd/iface/JdUserErrorHandler.java
 Sat Nov  8 15:19:08 2014
@@ -23,7 +23,6 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.atomic.AtomicInteger;
 
-import org.apache.uima.cas.CAS;
 import org.apache.uima.ducc.user.common.QuotedOptions;
 import org.apache.uima.ducc.user.jd.JdUser;
 
@@ -87,11 +86,22 @@ public class JdUserErrorHandler implemen
        }
        
        @Override
-       public IJdUserDirective handle(CAS cas, Exception e) {
+       public IJdUserDirective handle(String serializedCAS, Exception 
exception) {
                JdUserDirective jdUserDirective = new JdUserDirective();
-               jobErrorCount.incrementAndGet();
-               if(jobErrorCount.get() > jobErrorLimit.get()) {
-                       jdUserDirective.setKillJob();
+               try {
+                       if(serializedCAS != null) {
+                               // CAS is provided
+                       }
+                       if(exception != null) {
+                               // Exception is provided
+                       }
+                       jobErrorCount.incrementAndGet();
+                       if(jobErrorCount.get() > jobErrorLimit.get()) {
+                               jdUserDirective.setKillJob();
+                       }
+               }
+               catch(Exception e) {
+                       e.printStackTrace();
                }
                return jdUserDirective;
        }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java?rev=1637572&r1=1637571&r2=1637572&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/TestSuite.java
 Sat Nov  8 15:19:08 2014
@@ -24,7 +24,6 @@ import static org.junit.Assert.fail;
 import java.io.File;
 import java.net.URL;
 
-import org.apache.uima.cas.CAS;
 import org.apache.uima.ducc.user.jd.JdUserCollectionReader;
 import org.apache.uima.ducc.user.jd.JdUserException;
 import org.apache.uima.ducc.user.jd.JdUserMetaCas;
@@ -32,6 +31,7 @@ import org.apache.uima.ducc.user.jd.ifac
 import org.apache.uima.ducc.user.jd.iface.IJdUserErrorHandler;
 import org.apache.uima.ducc.user.jd.iface.JdUserErrorHandler;
 import 
org.apache.uima.ducc.user.jd.iface.JdUserErrorHandler.InitializationDataKey;
+import org.apache.uima.ducc.user.jd.test.helper.TestJdUserErrorHandler;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -179,9 +179,9 @@ public class TestSuite {
        public void test06() {
                try {
                        IJdUserErrorHandler eh = new JdUserErrorHandler();
-                       CAS cas = null;
+                       String serializedCAS = null;
                        Exception exception = null;
-                       IJdUserDirective directive = eh.handle(cas, exception);
+                       IJdUserDirective directive = eh.handle(serializedCAS, 
exception);
                        assertTrue(directive.isKillJob() == false);
                        assertTrue(directive.isKillProcess() == false);
                        assertTrue(directive.isKillWorkItem() == true);
@@ -206,10 +206,9 @@ public class TestSuite {
                        JdUserMetaCas jdUserMetaCas = null;
                        jdUserMetaCas = jdcr.getJdUserMetaCas();
                        assertTrue(jdUserMetaCas != null);
-                       String serializedCas = jdUserMetaCas.getSerializedCas();
-                       assertTrue(serializedCas != null);
+                       String serializedCAS = jdUserMetaCas.getSerializedCas();
+                       assertTrue(serializedCAS != null);
                        //
-                       CAS cas = jdcr.deserialize(serializedCas);
                        Exception exception = null;
                        JdUserErrorHandler eh = null;
                        IJdUserDirective directive = null;
@@ -218,14 +217,14 @@ public class TestSuite {
                        //
                        exception = null;
                        eh = new JdUserErrorHandler();
-                       directive = eh.handle(cas, exception);
+                       directive = eh.handle(serializedCAS, exception);
                        assertTrue(directive.isKillJob() == false);
                        assertTrue(directive.isKillProcess() == false);
                        assertTrue(directive.isKillWorkItem() == true);
                        //
                        exception = new RuntimeException();
                        eh = new JdUserErrorHandler();
-                       directive = eh.handle(cas, exception);
+                       directive = eh.handle(serializedCAS, exception);
                        assertTrue(directive.isKillJob() == false);
                        assertTrue(directive.isKillProcess() == false);
                        assertTrue(directive.isKillWorkItem() == true);
@@ -233,14 +232,14 @@ public class TestSuite {
                        limit = 15;
                        exception = new RuntimeException();
                        eh = new JdUserErrorHandler();
-                       directive = eh.handle(cas, exception);
+                       directive = eh.handle(serializedCAS, exception);
                        for(int i=1; i<limit; i++) {
-                               directive = eh.handle(cas, exception);
+                               directive = eh.handle(serializedCAS, exception);
                                assertTrue(directive.isKillJob() == false);
                                assertTrue(directive.isKillProcess() == false);
                                assertTrue(directive.isKillWorkItem() == true);
                        }
-                       directive = eh.handle(cas, exception);
+                       directive = eh.handle(serializedCAS, exception);
                        assertTrue(directive.isKillJob() == true);
                        assertTrue(directive.isKillProcess() == false);
                        assertTrue(directive.isKillWorkItem() == true);
@@ -249,14 +248,14 @@ public class TestSuite {
                        exception = new RuntimeException();
                        plist = 
InitializationDataKey.KillJobLimit.name()+"="+limit;
                        eh = new JdUserErrorHandler(plist);
-                       directive = eh.handle(cas, exception);
+                       directive = eh.handle(serializedCAS, exception);
                        for(int i=1; i<limit; i++) {
-                               directive = eh.handle(cas, exception);
+                               directive = eh.handle(serializedCAS, exception);
                                assertTrue(directive.isKillJob() == false);
                                assertTrue(directive.isKillProcess() == false);
                                assertTrue(directive.isKillWorkItem() == true);
                        }
-                       directive = eh.handle(cas, exception);
+                       directive = eh.handle(serializedCAS, exception);
                        assertTrue(directive.isKillJob() == true);
                        assertTrue(directive.isKillProcess() == false);
                        assertTrue(directive.isKillWorkItem() == true);
@@ -265,19 +264,17 @@ public class TestSuite {
                        exception = new RuntimeException();
                        plist = 
InitializationDataKey.KillJobLimit.name()+"="+limit;
                        eh = new JdUserErrorHandler(plist);
-                       directive = eh.handle(cas, exception);
+                       directive = eh.handle(serializedCAS, exception);
                        for(int i=1; i<limit; i++) {
-                               directive = eh.handle(cas, exception);
+                               directive = eh.handle(serializedCAS, exception);
                                assertTrue(directive.isKillJob() == false);
                                assertTrue(directive.isKillProcess() == false);
                                assertTrue(directive.isKillWorkItem() == true);
                        }
-                       directive = eh.handle(cas, exception);
+                       directive = eh.handle(serializedCAS, exception);
                        assertTrue(directive.isKillJob() == true);
                        assertTrue(directive.isKillProcess() == false);
                        assertTrue(directive.isKillWorkItem() == true);
-                       //
-                       jdcr.recycle(cas);
                }
                catch(Exception e) {
                        e.printStackTrace();
@@ -288,6 +285,28 @@ public class TestSuite {
        @Test
        public void test08() {
                try {
+                       //
+                       String serializedCAS = null;
+                       Exception exception = null;
+                       TestJdUserErrorHandler eh = null;
+                       IJdUserDirective directive = null;
+                       //
+                       exception = null;
+                       eh = new TestJdUserErrorHandler();
+                       directive = eh.handle(serializedCAS, exception);
+                       assertTrue(directive.isKillJob() == true);
+                       assertTrue(directive.isKillProcess() == true);
+                       assertTrue(directive.isKillWorkItem() == false);
+               }
+               catch(Exception e) {
+                       e.printStackTrace();
+                       fail("Exception");
+               }
+       }
+       
+       @Test
+       public void test09() {
+               try {
                        int seqNo = 1;
                        String serializedCas = "ABC";
                        String documentText = "123";

Added: 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdUserErrorHandler.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdUserErrorHandler.java?rev=1637572&view=auto
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdUserErrorHandler.java
 (added)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdUserErrorHandler.java
 Sat Nov  8 15:19:08 2014
@@ -0,0 +1,36 @@
+/*
+ * 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.user.jd.test.helper;
+
+import org.apache.uima.ducc.user.jd.iface.IJdUserDirective;
+import org.apache.uima.ducc.user.jd.iface.JdUserDirective;
+import org.apache.uima.ducc.user.jd.iface.JdUserErrorHandler;
+
+public class TestJdUserErrorHandler extends JdUserErrorHandler {
+
+       @Override
+       public IJdUserDirective handle(String serializedCAS, Exception e) {
+               JdUserDirective jdUserDirective = new JdUserDirective();
+               jdUserDirective.setKillJob();
+               jdUserDirective.setKillProcess();
+               jdUserDirective.resetKillWorkItem();
+               return jdUserDirective;
+       }
+
+}

Propchange: 
uima/sandbox/uima-ducc/trunk/uima-ducc-user/src/test/java/org/apache/uima/ducc/user/jd/test/helper/TestJdUserErrorHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to