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 2016/07/06 21:49:04 UTC

svn commit: r1751736 - in /uima/uima-ducc/trunk: uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-services.tex uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java

Author: burn
Date: Wed Jul  6 21:49:03 2016
New Revision: 1751736

URL: http://svn.apache.org/viewvc?rev=1751736&view=rev
Log:
UIMA-5002 Run external pingers with the jdk in the JAVA_HOME env var if present

Modified:
    uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-services.tex
    uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java

Modified: uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-services.tex
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-services.tex?rev=1751736&r1=1751735&r2=1751736&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-services.tex (original)
+++ uima/uima-ducc/trunk/uima-ducc-duccdocs/src/site/tex/duccbook/part2/cli/ducc-services.tex Wed Jul  6 21:49:03 2016
@@ -302,11 +302,9 @@ ducc.submit.environment.propagated
         This parameter may be specified for UIMA-AS services; however, DUCC supplies a default
         pinger for UIMA-AS services.
 
-      \begin{sloppypar}  
       \item[$--$service\_ping\_classpath {[classpath]}] If {\em service\_ping\_class} is specified,
         this is the classpath containing service\_custom\_ping class and dependencies.  If not
         specified, the Agent's classpath is used (which will generally be incorrect.)
-      \end{sloppypar}
       
       \item[$--$service\_ping\_dolog {[true or false]}] If specified, write pinger stdout and stderr
         messages to a log, else suppress the log. See \hyperref[sec:service.pingers]{Service Pingers}

Modified: uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java?rev=1751736&r1=1751735&r2=1751736&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java Wed Jul  6 21:49:03 2016
@@ -665,9 +665,28 @@ class PingDriver
             arglist.add("--");
         }
 
-        arglist.add(System.getProperty("ducc.jvm"));
+        // Jira 4805 - run the pinger with the same environment as the service
+        // Tokenize & unquote the assignments, and convert to a map of environment settings after any substitutions
+        // Suntax errors usually caught when registered, but --modify does not check
+        ArrayList<String> envVarList = QuotedOptions.tokenizeList(environment, true);
+        Map<String, String> envMap;
+        try {
+        	envMap = QuotedOptions.parseAssignments(envVarList, +1);
+        } catch (IllegalArgumentException e) {
+            logger.error(methodName, sset.getId(), "Invalid environment:", e);
+            pingState = ServiceState.Stopped;
+            return;
+        }
+        
+        // Jira 5002 - check for user-specified JVM
+        String javaHome = envMap.get("JAVA_HOME");
+        if (javaHome != null) {
+        	arglist.add(javaHome + "/bin/java");
+        } else {
+        	arglist.add(System.getProperty("ducc.jvm"));
+        }
+        
         arglist.add("-DSM_MONITOR=T");
-
         if ( jvm_args != null ) {
             for ( String s : jvm_args) {
                 arglist.add(s);
@@ -704,11 +723,6 @@ class PingDriver
         InputStream stdout = null;
         InputStream stderr = null;
         try {
-            // Jira 4805 - run the pinger with the same environment as the service
-            // Tokenize & unquote the assignments, and convert to a map of environment settings after any substitutions
-            // Could throw IllegalArgumentException which will be caught below
-            ArrayList<String> envVarList = QuotedOptions.tokenizeList(environment, true);
-            Map<String, String> envMap = QuotedOptions.parseAssignments(envVarList, +1);
             Map<String, String> env = pb.environment();
             env.clear();
             env.putAll(envMap);