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);