Author: degenaro
Date: Tue Apr 26 14:38:02 2016
New Revision: 1741043
URL: http://svn.apache.org/viewvc?rev=1741043&view=rev
Log:
UIMA-4902 DUCC Job Driver (JD) add programmability feature to built-in error
handler
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverErrorHandler.java
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=1741043&r1=1741042&r2=1741043&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
Tue Apr 26 14:38:02 2016
@@ -23,6 +23,7 @@ import java.lang.reflect.Type;
import java.net.URLClassLoader;
import org.apache.uima.ducc.common.container.FlagsHelper;
+import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
import org.apache.uima.ducc.container.common.classloader.ContextSwitch;
import org.apache.uima.ducc.container.common.classloader.PrivateClassLoader;
import org.apache.uima.ducc.container.common.classloader.ProxyHelper;
@@ -60,6 +61,73 @@ public class ProxyJobDriverErrorHandler
}
}
+ private String getErrorHandlerClassname() {
+ String location = "getErrorHandlerClassname";
+ String retVal = null;
+ try {
+ FlagsHelper fh = FlagsHelper.getInstance();
+ retVal = fh.getUserErrorHandlerClassname();
+ String type = null;;
+ if(retVal != null) {
+ type = "user";
+ }
+ else {
+ DuccPropertiesResolver dpr =
DuccPropertiesResolver.getInstance();
+ String key =
DuccPropertiesResolver.ducc_jd_error_handler_class;
+ retVal = dpr.getProperty(key);
+ if(retVal != null) {
+ type = "system";
+ }
+ else {
+ type = "default";
+ retVal = defaultClassName;
+ }
+ }
+ logger.info(location, ILogger.null_id, "type="+type+"
"+"value="+retVal);
+ }
+ catch(Exception e) {
+ logger.error(location, ILogger.null_id, e);
+ }
+ return retVal;
+ }
+
+ private String getErrorHandlerInitArgs() {
+ String location = "getErrorHandlerInitArgs";
+ String retVal = null;
+ try {
+ FlagsHelper fh = FlagsHelper.getInstance();
+ StringBuffer sb = new StringBuffer();
+ DuccPropertiesResolver dpr =
DuccPropertiesResolver.getInstance();
+ String key =
DuccPropertiesResolver.ducc_jd_error_handler_args;
+ //
+ String valueSystem = dpr.getFileProperty(key);
+ if(valueSystem != null) {
+ sb.append(valueSystem);
+ sb.append(" ");
+ String type = "system";
+ logger.debug(location, ILogger.null_id,
"type="+type+" "+"value="+valueSystem);
+ }
+ //
+ String valueUser = fh.getUserErrorHandlerCfg();
+ if(valueUser != null) {
+ sb.append(valueUser);
+ sb.append(" ");
+ String type = "user";
+ logger.debug(location, ILogger.null_id,
"type="+type+" "+"value="+valueUser);
+ }
+ //
+ String value = sb.toString().trim();
+ if(sb.length() > 0) {
+ retVal = value;
+ logger.trace(location, ILogger.null_id,
"retVal="+retVal);
+ }
+ }
+ catch(Exception e) {
+ logger.error(location, ILogger.null_id, e);
+ }
+ return retVal;
+ }
+
private void initialize() throws Exception {
String location = "initialize";
FlagsHelper fh = FlagsHelper.getInstance();
@@ -70,11 +138,11 @@ public class ProxyJobDriverErrorHandler
logger.trace(location, ILogger.null_id, item);
}
}
- String className = fh.getUserErrorHandlerClassname();
- if(className == null) {
- className = defaultClassName;
- }
- String initializationData = fh.getUserErrorHandlerCfg();
+ //
+ String className = getErrorHandlerClassname();
+ //
+ String initializationData = getErrorHandlerInitArgs();
+ //
classLoader = createClassLoader(userClasspath);
Class<?> classAnchor = classLoader.loadClass(className);
objectInstance = classAnchor.newInstance();