You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2013/11/14 17:57:14 UTC

svn commit: r1541976 - in /uima/sandbox/uima-ducc/trunk: src/main/resources/ uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/

Author: burn
Date: Thu Nov 14 16:57:13 2013
New Revision: 1541976

URL: http://svn.apache.org/r1541976
Log:
UIMA-3428 Use wildcards everywhere in JD/JP classpaths; update docs

Modified:
    uima/sandbox/uima-ducc/trunk/src/main/resources/jobclasspath.properties
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-submit.tex
    uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java

Modified: uima/sandbox/uima-ducc/trunk/src/main/resources/jobclasspath.properties
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/src/main/resources/jobclasspath.properties?rev=1541976&r1=1541975&r2=1541976&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/src/main/resources/jobclasspath.properties (original)
+++ uima/sandbox/uima-ducc/trunk/src/main/resources/jobclasspath.properties Thu Nov 14 16:57:13 2013
@@ -23,6 +23,8 @@
 # May have to be modified if any of the jars in DUCC_HOME/lib are changed.
 # ========================================================================
  
+#ducc.reload.file = if set file is reloaded on every job
+
 ducc.jobdriver.classpath = \
   ${DUCC_HOME}/lib/uima-ducc-jd.jar:\
   ${DUCC_HOME}/lib/uima-ducc-common.jar:\
@@ -30,22 +32,11 @@ ducc.jobdriver.classpath = \
   ${DUCC_HOME}/lib/uima/*:\
   ${DUCC_HOME}/lib/apache-log4j/*:\
   ${DUCC_HOME}/lib/slf4j/*:\
-  ${DUCC_HOME}/lib/apache-activemq/activemq-all-5.6.0.jar:\
-  ${DUCC_HOME}/lib/apache-activemq/activemq-pool-5.6.0.jar:\
-  ${DUCC_HOME}/lib/apache-activemq/commons-pool-1.5.4.jar:\
-  ${DUCC_HOME}/lib/apache-camel/camel-core-2.10.1.jar:\
-  ${DUCC_HOME}/lib/apache-camel/camel-jms-2.10.1.jar:\
-  ${DUCC_HOME}/lib/apache-camel/camel-xstream-2.10.1.jar:\
+  ${DUCC_HOME}/lib/apache-activemq/*:\
+  ${DUCC_HOME}/lib/apache-camel/*:\
   ${DUCC_HOME}/lib/apache-commons-lang/*:\
   ${DUCC_HOME}/lib/google-gson/*:\
-  ${DUCC_HOME}/lib/springframework/com.springsource.net.sf.cglib-2.2.0.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-asm-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-beans-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-context-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-core-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-expression-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-jms-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-tx-3.0.5.RELEASE.jar:\
+  ${DUCC_HOME}/lib/springframework/*:\
   ${DUCC_HOME}/lib/xmlbeans/*:\
   ${DUCC_HOME}/lib/xstream/*:\
   ${DUCC_HOME}/resources
@@ -57,20 +48,9 @@ ducc.jobprocess.classpath = \
   ${DUCC_HOME}/lib/uima/*:\
   ${DUCC_HOME}/lib/apache-log4j/*:\
   ${DUCC_HOME}/lib/slf4j/*:\
-  ${DUCC_HOME}/lib/apache-activemq/activemq-all-5.6.0.jar:\
-  ${DUCC_HOME}/lib/apache-camel/camel-core-2.10.1.jar:\
-  ${DUCC_HOME}/lib/apache-camel/camel-jms-2.10.1.jar:\
-  ${DUCC_HOME}/lib/apache-camel/camel-mina-2.10.1.jar:\
-  ${DUCC_HOME}/lib/apache-camel/mina-core-1.1.7.jar:\
-  ${DUCC_HOME}/lib/springframework/com.springsource.net.sf.cglib-2.2.0.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-aop-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-asm-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-beans-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-context-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-core-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-expression-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-jms-3.0.5.RELEASE.jar:\
-  ${DUCC_HOME}/lib/springframework/spring-tx-3.0.5.RELEASE.jar:\
+  ${DUCC_HOME}/lib/apache-activemq/*:\
+  ${DUCC_HOME}/lib/apache-camel/*:\
+  ${DUCC_HOME}/lib/springframework/*:\
   ${DUCC_HOME}/lib/xstream/*
 
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java?rev=1541976&r1=1541975&r2=1541976&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/IUiOptions.java Thu Nov 14 16:57:13 2013
@@ -100,7 +100,7 @@ public interface IUiOptions
             public String argname()     { return ClasspathOrderParms.UserBeforeDucc.pname() + " or " + ClasspathOrderParms.DuccBeforeUser.pname(); }
             public String description() { return "Specify user-supplied classpath before DUCC-supplied classpath, or the reverse."; }
             public String example()     { return null; }
-            public String deflt()       { return ClasspathOrderParms.UserBeforeDucc.pname(); }
+            public String deflt()       { return ClasspathOrderParms.DuccBeforeUser.pname(); }
             public String label()       { return name(); }
         },            
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-submit.tex
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-submit.tex?rev=1541976&r1=1541975&r2=1541976&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-submit.tex (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-submit.tex Thu Nov 14 16:57:13 2013
@@ -61,7 +61,7 @@
 
            \item[$--$classpath\_order {[user-before-ducc $|$ ducc-before-user]} ]
              When DUCC deploys a process, set the user-supplied CLASSPATH before DUCC-supplied
-             CLASSPATH, or the reverse. The default is user-before-ducc.
+             CLASSPATH, or the reverse. The default is ducc-before-user.
              
            \item[$--$debug] Enable debugging messages. This is primarily for debugging DUCC itself.
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java?rev=1541976&r1=1541975&r2=1541976&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/JobFactory.java Thu Nov 14 16:57:13 2013
@@ -283,13 +283,7 @@ public class JobFactory {
 		driverCommandLine.addOption(IDuccCommand.arg_ducc_deploy_components);
 		driverCommandLine.addOption(IDuccCommand.arg_ducc_job_id+job.getDuccId().toString());
 		// classpath
-		DuccProperties props = new DuccProperties();
-		try {
-            props.load(IDuccEnv.DUCC_CLASSPATH_FILE);
-        } catch (Exception e) {
-            logger.error(methodName, job.getDuccId(), "Failed to load " + IDuccEnv.DUCC_CLASSPATH_FILE);
-        }
-		String java_classpath = props.getProperty("ducc.jobdriver.classpath");		
+		String java_classpath = getDuccClasspath(0);  // for driver	
 		String driverClasspath = jobRequestProperties.getProperty(JobSpecificationProperties.key_classpath);
 		logger.debug(methodName, job.getDuccId(), "driver CP (spec):"+driverClasspath);
 		logger.debug(methodName, job.getDuccId(), "java CP:"+java_classpath);
@@ -417,13 +411,7 @@ public class JobFactory {
 		// log
 		jobRequestProperties.specification(logger);
 		// classpath
-        DuccProperties props = new DuccProperties();
-        try {
-            props.load(IDuccEnv.DUCC_CLASSPATH_FILE);
-        } catch (Exception e) {
-            logger.error(methodName, job.getDuccId(), "Failed to load " + IDuccEnv.DUCC_CLASSPATH_FILE);
-        }
-        String java_classpath = props.getProperty("ducc.jobprocess.classpath"); 
+        String java_classpath = getDuccClasspath(1);    // for job processes & services 
 		String processClasspath = jobRequestProperties.getProperty(JobSpecificationProperties.key_classpath);
 		logger.debug(methodName, job.getDuccId(), "process CP (spec):"+processClasspath);
 		logger.debug(methodName, job.getDuccId(), "java CP:"+java_classpath);
@@ -637,4 +625,31 @@ public class JobFactory {
 		//TODO be sure to clean-up fpath upon job completion!
 		return job;
 	}
+	
+	/*
+	 * Get minimal subset of the DUCC classpath for job driver & job processes
+	 * Cache the values unless asked to reload when testing
+	 */
+	private String[] cps = null;
+	private String getDuccClasspath(int type) {
+	    if (cps != null) {
+	        return cps[type];
+	    }
+	    DuccProperties props = new DuccProperties();
+	    try {
+	        props.load(IDuccEnv.DUCC_CLASSPATH_FILE);
+	    } catch (Exception e) {
+	        logger.error("getClasspath", null, "Using full classpath as failed to load " + IDuccEnv.DUCC_CLASSPATH_FILE);
+	        return System.getProperty("java.class.path");
+	    }
+	    // If reload specified don't cache the results (for ease of testing changes to the classpaths)
+	    if (props.getProperty("ducc.reload.file") != null) {
+	        return props.getProperty(type==0 ? "ducc.jobdriver.classpath" : "ducc.jobprocess.classpath");
+	    } else {
+	        cps = new String[2];
+	        cps[0] = props.getProperty("ducc.jobdriver.classpath");
+	        cps[1] = props.getProperty("ducc.jobprocess.classpath");
+	        return cps[type];
+	    }
+	}
 }