You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2013/05/03 14:57:00 UTC
svn commit: r1478762 - in
/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli:
CliBase.java DuccJobSubmit.java aio/AllInOneLauncher.java
aio/MessageHandler.java
Author: degenaro
Date: Fri May 3 12:56:59 2013
New Revision: 1478762
URL: http://svn.apache.org/r1478762
Log:
UIMA-2863 DUCC --all_in_one API should handle IDuccCallback
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/aio/AllInOneLauncher.java
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/MessageHandler.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=1478762&r1=1478761&r2=1478762&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 Fri May 3 12:56:59 2013
@@ -217,6 +217,21 @@ public abstract class CliBase
return opts;
}
+ protected String[] mkArgs(Properties props)
+ {
+ List<String> arglist = new ArrayList<String>();
+ for ( Object o : props.keySet() ) {
+ String k = (String) o;
+ String v = props.getProperty(k, "");
+ arglist.add("--" + k);
+ // Assume an empty value indicates a boolean option
+ if (v.length() > 0) {
+ arglist.add(v);
+ }
+ }
+ return arglist.toArray(new String[arglist.size()]);
+ }
+
private String[] mkArgs(DuccProperties props)
{
List<String> arglist = new ArrayList<String>();
@@ -538,7 +553,7 @@ public abstract class CliBase
return (String) cli_props.getProperty(key);
}
- IDuccCallback getCallback()
+ protected IDuccCallback getCallback()
{
return consoleCb;
}
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=1478762&r1=1478761&r2=1478762&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 Fri May 3 12:56:59 2013
@@ -155,22 +155,36 @@ public class DuccJobSubmit
public static UiOption[] opts = opts_release;
+ private AllInOneLauncher allInOneLauncher = null;
+
public DuccJobSubmit(ArrayList<String> args)
throws Exception
{
this(args, null);
+ if(isAllInOne()) {
+ String[] aioArgs = args.toArray(new String[0]);
+ allInOneLauncher = new AllInOneLauncher(aioArgs);
+ }
}
public DuccJobSubmit(String[] args)
throws Exception
{
this(args, null);
+ if(isAllInOne()) {
+ String[] aioArgs = args;
+ allInOneLauncher = new AllInOneLauncher(aioArgs);
+ }
}
public DuccJobSubmit(Properties props)
throws Exception
{
this(props, null);
+ if(isAllInOne()) {
+ String[] aioArgs = mkArgs(props);
+ allInOneLauncher = new AllInOneLauncher(aioArgs);
+ }
}
public DuccJobSubmit(ArrayList<String> args, IDuccCallback consoleCb)
@@ -182,6 +196,10 @@ public class DuccJobSubmit
opts = opts_beta;
}
init(this.getClass().getName(), opts, arg_array, jobRequestProperties, or_host, or_port, "or", consoleCb, null);
+ if(isAllInOne()) {
+ String[] aioArgs = args.toArray(new String[0]);
+ allInOneLauncher = new AllInOneLauncher(aioArgs, consoleCb);
+ }
}
public DuccJobSubmit(String[] args, IDuccCallback consoleCb)
@@ -192,6 +210,10 @@ public class DuccJobSubmit
opts = opts_beta;
}
init(this.getClass().getName(), opts, args, jobRequestProperties, or_host, or_port, "or", consoleCb, null);
+ if(isAllInOne()) {
+ String[] aioArgs = args;
+ allInOneLauncher = new AllInOneLauncher(aioArgs, consoleCb);
+ }
}
public DuccJobSubmit(Properties props, IDuccCallback consoleCb)
@@ -206,6 +228,10 @@ public class DuccJobSubmit
opts = opts_beta;
}
init(this.getClass().getName(), opts, null, jobRequestProperties, or_host, or_port, "or", consoleCb, null);
+ if(isAllInOne()) {
+ String[] aioArgs = mkArgs(props);
+ allInOneLauncher = new AllInOneLauncher(aioArgs, consoleCb);
+ }
}
private void set_debug_parms(Properties props, String key, int port)
@@ -383,7 +409,18 @@ public class DuccJobSubmit
//**********
- public boolean execute()
+ public boolean execute() throws Exception {
+ if(isAllInOne()) {
+ return execute_aio();
+ }
+ return execute_job();
+ }
+
+ private boolean execute_aio() throws Exception {
+ return allInOneLauncher.execute();
+ }
+
+ private boolean execute_job()
throws Exception
{
@@ -561,8 +598,8 @@ public class DuccJobSubmit
}
private static void main_aio(String[] args) throws Exception {
- AllInOneLauncher allInOneLauncher = new AllInOneLauncher(args);
- allInOneLauncher.go();
+ AllInOneLauncher main_allInOneLauncher = new AllInOneLauncher(args);
+ main_allInOneLauncher.execute();
}
public static void main(String[] args) {
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOneLauncher.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOneLauncher.java?rev=1478762&r1=1478761&r2=1478762&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOneLauncher.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOneLauncher.java Fri May 3 12:56:59 2013
@@ -32,6 +32,7 @@ import org.apache.commons.cli.MissingArg
import org.apache.uima.ducc.cli.CliBase;
import org.apache.uima.ducc.cli.DuccJobSubmit;
import org.apache.uima.ducc.cli.DuccManagedReservationSubmit;
+import org.apache.uima.ducc.cli.IDuccCallback;
import org.apache.uima.ducc.cli.aio.IMessageHandler.Level;
import org.apache.uima.ducc.cli.aio.IMessageHandler.Toggle;
import org.apache.uima.ducc.common.utils.DuccSchedulerClasses;
@@ -106,6 +107,12 @@ public class AllInOneLauncher extends Cl
init(this.getClass().getName(), opts, args, jobRequestProperties, or_host, or_port, "or", consoleCb, null);
}
+ public AllInOneLauncher(String[] args, IDuccCallback consoleCb) throws Exception {
+ this.args = args;
+ mh = new MessageHandler(consoleCb);
+ init(this.getClass().getName(), opts, args, jobRequestProperties, or_host, or_port, "or", consoleCb, null);
+ }
+
private boolean isLocal() {
return allInOneType.equalsIgnoreCase(local);
}
@@ -1016,14 +1023,24 @@ public class AllInOneLauncher extends Cl
InputStreamReader isr = new InputStreamReader(is);
BufferedReader ibr = new BufferedReader(isr);
while ((line = ibr.readLine()) != null) {
- System.out.println(line);
+ if(consoleCb != null) {
+ consoleCb.status(line);
+ }
+ else {
+ System.out.println(line);
+ }
}
InputStream es = process.getErrorStream();
InputStreamReader esr = new InputStreamReader(es);
BufferedReader ebr = new BufferedReader(esr);
while ((line = ebr.readLine()) != null) {
- System.err.println(line);
+ if(consoleCb != null) {
+ consoleCb.status(line);
+ }
+ else {
+ System.err.println(line);
+ }
}
mh.frameworkTrace(cid, mid, "exit");
@@ -1142,18 +1159,38 @@ public class AllInOneLauncher extends Cl
addArg(cmdLine, "true");
}
String[] argList = cmdLine.toArray(new String[0]);
- DuccManagedReservationSubmit ds = new DuccManagedReservationSubmit(argList);
- boolean rc = ds.execute();
+ DuccManagedReservationSubmit mr = null;
+ if(consoleCb != null) {
+ mr = new DuccManagedReservationSubmit(argList, consoleCb);
+ }
+ else {
+ mr = new DuccManagedReservationSubmit(argList, consoleCb);
+ }
+ boolean rc = mr.execute();
String dt = "Managed Reservation";
- if (rc) {
- System.out.println(dt + " " + ds.getDuccId() + " submitted.");
- int code = ds.getReturnCode();
- System.exit(code);
- } else {
- System.out.println("Could not submit " + dt);
- System.exit(1);
- }
+
+ if (rc) {
+ String line = dt + " " + mr.getDuccId() + " submitted.";
+ if(consoleCb != null) {
+ consoleCb.status(line);
+ }
+ else {
+ System.out.println(line);
+ }
+ int code = mr.getReturnCode();
+ System.exit(code);
+ }
+ else {
+ String line = "Could not submit " + dt;
+ if(consoleCb != null) {
+ consoleCb.status(line);
+ }
+ else {
+ System.out.println(line);
+ }
+ System.exit(1);
+ }
mh.frameworkDebug(cid, mid, "rc="+rc);
mh.frameworkTrace(cid, mid, "exit");
@@ -1175,7 +1212,12 @@ public class AllInOneLauncher extends Cl
mh.frameworkTrace(cid, mid, "exit");
}
- public void go() throws Exception {
+ public boolean execute() throws Exception {
+ go();
+ return true;
+ }
+
+ protected void go() throws Exception {
String mid = "go";
mh.frameworkTrace(cid, mid, "enter");
examine();
@@ -1188,8 +1230,5 @@ public class AllInOneLauncher extends Cl
allInOneLauncher.go();
}
- @Override
- protected boolean execute() throws Exception {
- return false;
- }
+
}
Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/MessageHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/MessageHandler.java?rev=1478762&r1=1478761&r2=1478762&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/MessageHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/MessageHandler.java Fri May 3 12:56:59 2013
@@ -21,6 +21,8 @@ package org.apache.uima.ducc.cli.aio;
import java.util.Date;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.uima.ducc.cli.IDuccCallback;
+
public class MessageHandler implements IMessageHandler {
private ConcurrentHashMap<Level,Toggle> map = new ConcurrentHashMap<Level,Toggle>();
@@ -28,10 +30,17 @@ public class MessageHandler implements I
private Toggle timestamping = Toggle.Off;
private Toggle typeIdentifying = Toggle.On;
+ private IDuccCallback consoleCb = null;
+
public MessageHandler() {
initialize();
}
+ public MessageHandler(IDuccCallback consoleCb) {
+ this.consoleCb = consoleCb;
+ initialize();
+ }
+
public MessageHandler(Toggle timestamping) {
setTimestamping(timestamping);
initialize();
@@ -109,8 +118,13 @@ public class MessageHandler implements I
Date date = new Date();
text = date+" "+text;
}
- System.out.println(text);
- System.out.flush();
+ if(consoleCb != null) {
+ consoleCb.status(text);
+ }
+ else {
+ System.out.println(text);
+ System.out.flush();
+ }
}
private void syserr(Level level, String message) {
@@ -126,8 +140,13 @@ public class MessageHandler implements I
Date date = new Date();
text = date+" "+text;
}
- System.err.println(text);
- System.err.flush();
+ if(consoleCb != null) {
+ consoleCb.status(text);
+ }
+ else {
+ System.err.println(text);
+ System.err.flush();
+ }
}
public void info(String message) {