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/12/04 20:41:11 UTC
svn commit: r1547885 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli:
CliBase.java DuccJobSubmit.java DuccServiceApi.java DuccServiceSubmit.java
Author: burn
Date: Wed Dec 4 19:41:11 2013
New Revision: 1547885
URL: http://svn.apache.org/r1547885
Log:
UIMA-3452 Don't remove examples jar from classpath. Fail if classpath becomes empty
Modified:
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java?rev=1547885&r1=1547884&r2=1547885&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/CliBase.java Wed Dec 4 19:41:11 2013
@@ -793,9 +793,9 @@ public abstract class CliBase
}
/*
- * Get specified class path (or the default) and remove any DUCC jars used to submit a request
+ * Get specified class path (or the default) and remove any DUCC jars (except examples)
* so they cannot accidentally replace any in the user's class path.
- * But if it has only DUCC jars leave it unmodified rather than empty.
+ * But if it has only DUCC jars return null as this must be an error.
*/
protected String fixupClasspath(String key_cp) {
String classpath = cli_props.getStringProperty(key_cp,
@@ -803,15 +803,17 @@ public abstract class CliBase
StringBuilder sb = new StringBuilder();
String duccPrefix = ducc_home + "/lib";
for (String jar : classpath.split(":")) {
- if (!jar.startsWith(duccPrefix)) {
+ if (!jar.startsWith(duccPrefix) || jar.contains("examples")) {
sb.append(":").append(jar);
}
}
if (sb.length() > 0) {
classpath = sb.substring(1);
cli_props.setProperty(key_cp, classpath);
+ return classpath;
+ } else {
+ return null;
}
- return classpath;
}
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java?rev=1547885&r1=1547884&r2=1547885&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java Wed Dec 4 19:41:11 2013
@@ -280,7 +280,10 @@ public class DuccJobSubmit
/*
* Set default classpath if not specified & remove DUCC jars
*/
- fixupClasspath(UiOption.Classpath.pname());
+ if (fixupClasspath(UiOption.Classpath.pname()) == null){
+ message("Classpath contains only DUCC jars");
+ return false;
+ }
if (jobRequestProperties.containsKey(UiOption.Debug.pname())) {
jobRequestProperties.dump();
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java?rev=1547885&r1=1547884&r2=1547885&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceApi.java Wed Dec 4 19:41:11 2013
@@ -256,7 +256,9 @@ public class DuccServiceApi
}
// Infer the classpath (DuccProperties will return the default if the value isn't found.)
// Note: only used for UIMA-AS services
- fixupClasspath(UiOption.Classpath.pname());
+ if (fixupClasspath(UiOption.Classpath.pname()) == null) {
+ throw new IllegalArgumentException("Specified classpath contains only DUCC jars");
+ }
// Given ep must match inferred ep. Use case: an application is wrapping DuccServiceApi and has to construct
// the endpoint as well. The app passes it in and we insure that the constructed endpoint matches the one
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java?rev=1547885&r1=1547884&r2=1547885&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java Wed Dec 4 19:41:11 2013
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.Properties;
import org.apache.uima.ducc.cli.IServiceApi.RegistrationOption;
+import org.apache.uima.ducc.cli.IUiOptions.UiOption;
import org.apache.uima.ducc.transport.event.SubmitServiceDuccEvent;
import org.apache.uima.ducc.transport.event.SubmitServiceReplyDuccEvent;
import org.apache.uima.ducc.transport.event.cli.ServiceRequestProperties;
@@ -129,7 +130,10 @@ public class DuccServiceSubmit
}
// This should have already been done when registered, but perhaps not in old services.
- fixupClasspath(UiOption.Classpath.pname());
+ if (fixupClasspath(UiOption.Classpath.pname()) == null){
+ message("Classpath contains only DUCC jars");
+ return false;
+ }
//
// Always extract the endpoint from the DD since when it is explicitly specified it must match.