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/04/15 21:20:25 UTC

svn commit: r1468197 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli: DuccJobSubmit.java aio/AllInOne.java aio/AllInOneLauncher.java aio/CasGenerator.java

Author: degenaro
Date: Mon Apr 15 19:20:24 2013
New Revision: 1468197

URL: http://svn.apache.org/r1468197
Log:
UIMA-2793 Support --all_in_one remote

Modified:
    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/AllInOne.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/CasGenerator.java

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=1468197&r1=1468196&r2=1468197&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 Mon Apr 15 19:20:24 2013
@@ -47,14 +47,15 @@ public class DuccJobSubmit 
     public static UiOption[] opts_release = new UiOption[] {
         UiOption.Help,
         UiOption.Debug, 
-
+        UiOption.Timestamp,
+        
         UiOption.AllInOne,
         
         UiOption.ProcessDebug,
         UiOption.ProcessAttachConsole,
         UiOption.DriverDebug,
         UiOption.DriverAttachConsole,
-        UiOption.Timestamp,
+        
         UiOption.Description,
         UiOption.SchedulingClass,
 
@@ -89,7 +90,7 @@ public class DuccJobSubmit 
 
         UiOption.Specification,
         UiOption.WaitForCompletion,
-        UiOption.CancelJobOnInterrupt,
+        UiOption.CancelOnInterrupt,
         UiOption.ServiceDependency,
         UiOption.ClasspathOrder,
     };
@@ -97,14 +98,15 @@ public class DuccJobSubmit 
     public static UiOption[] opts_beta = new UiOption[] {
         UiOption.Help,
         UiOption.Debug, 
-
+        UiOption.Timestamp,
+        
         UiOption.AllInOne,
         
         UiOption.ProcessDebug,
         UiOption.ProcessAttachConsole,
         UiOption.DriverDebug,
         UiOption.DriverAttachConsole,
-        UiOption.Timestamp,
+        
         UiOption.Description,
         UiOption.SchedulingClass,
 
@@ -112,7 +114,6 @@ public class DuccJobSubmit 
         UiOption.WorkingDirectory,
         UiOption.Jvm,
 
-        UiOption.JvmArgs,
         UiOption.Classpath,
         UiOption.Environment,
         
@@ -145,6 +146,7 @@ public class DuccJobSubmit 
 
         UiOption.Specification,
         UiOption.WaitForCompletion,
+        UiOption.CancelOnInterrupt,
         UiOption.CancelJobOnInterrupt,
         UiOption.ServiceDependency,
         UiOption.ClasspathOrder,
@@ -219,10 +221,6 @@ public class DuccJobSubmit 
     {
         String key_process = UiOption.ProcessJvmArgs.pname();
         String key_driver = UiOption.ProcessJvmArgs.pname();
-        if(jobRequestProperties.containsKey(UiOption.JvmArgs.pname())) {
-        	key_process = UiOption.JvmArgs.pname();
-        	key_driver = UiOption.JvmArgs.pname();
-        }
         try {        
             int jp_debug_port = -1;
             int jd_debug_port = -2;       // a trick, must be different from jp_debug_port; see below
@@ -465,28 +463,12 @@ public class DuccJobSubmit 
 		/*
 		 * adjust driver and process jvm args
 		 */
-        boolean ja0 = jobRequestProperties.containsKey(UiOption.JvmArgs.pname());
         boolean jad = jobRequestProperties.containsKey(UiOption.DriverJvmArgs.pname());
         boolean jap = jobRequestProperties.containsKey(UiOption.ProcessJvmArgs.pname());
         
-        if(ja0 && jad) {
-        	throw new IllegalArgumentException("Conflict: cannot specify both "+UiOption.JvmArgs.pname()+" and "+UiOption.DriverJvmArgs.pname());
-        }
-        if(ja0 && jap) {
-        	throw new IllegalArgumentException("Conflict: cannot specify both "+UiOption.JvmArgs.pname()+" and "+UiOption.ProcessJvmArgs.pname());
-        }
-        
-        if(ja0) {
-        	adjust_specific_jvm_args(DuccPropertiesResolver.ducc_submit_driver_jvm_args, UiOption.JvmArgs);
-        }
-        else {
-        	if(jad || jap) {
-        		adjust_specific_jvm_args(DuccPropertiesResolver.ducc_submit_driver_jvm_args, UiOption.DriverJvmArgs);
-        		adjust_specific_jvm_args(DuccPropertiesResolver.ducc_submit_process_jvm_args, UiOption.ProcessJvmArgs);
-        	}
-        	else {
-        		adjust_specific_jvm_args(DuccPropertiesResolver.ducc_submit_driver_jvm_args, UiOption.JvmArgs);
-        	}
+        if(jad || jap) {
+        	adjust_specific_jvm_args(DuccPropertiesResolver.ducc_submit_driver_jvm_args, UiOption.DriverJvmArgs);
+        	adjust_specific_jvm_args(DuccPropertiesResolver.ducc_submit_process_jvm_args, UiOption.ProcessJvmArgs);
         }
 
 		/*

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java?rev=1468197&r1=1468196&r2=1468197&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/AllInOne.java Mon Apr 15 19:20:24 2013
@@ -106,11 +106,11 @@ public class AllInOne extends CliBase {
 		mh.frameworkTrace(cid, mid, "enter");
 		int count = 0;
 		int total = casGenerator.getTotal();
-		mh.frameworkInfo(cid, mid, "total:"+total);
+		mh.frameworkDebug(cid, mid, "total:"+total);
 		CAS cas = null;
 		while(casGenerator.hasNext()) {
 			cas = casGenerator.getCas(cas);
-			mh.frameworkInfo(cid, mid, "cas:"+count);
+			mh.frameworkDebug(cid, mid, "cas:"+count);
 			casPipeline.process(cas);
 			count++;
 		}

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=1468197&r1=1468196&r2=1468197&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 Mon Apr 15 19:20:24 2013
@@ -1,5 +1,5 @@
 /*
- * Licensed to the Apache Software Foundation (ASF) under one
+as * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
  * distributed with this work for additional information
  * regarding copyright ownership.  The ASF licenses this file
@@ -24,11 +24,14 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.commons.cli.MissingArgumentException;
 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.aio.IMessageHandler.Level;
 import org.apache.uima.ducc.cli.aio.IMessageHandler.Toggle;
 import org.apache.uima.ducc.transport.event.cli.JobRequestProperties;
@@ -43,23 +46,25 @@ public class AllInOneLauncher extends Cl
 	private static String remote = "remote";
 	private static String local = "local";
 	
+	//TODO get scheduling class from ducc.properties
+	private static String fixed = "fixed";
+	
+	private static String enter = "enter";
+	private static String exit = "exit";
+	
 	private String allInOneType = null;
 	
+	private String attach_console = null;
+	
 	private String jvm = null;
+	private String log_directory = null;
 	private String working_directory = null;
 	
-	private String driver_jvm_args = null;
-	private String process_jvm_args = null;
-	private String jvm_args = null;
-	
-	private String driver_classpath = null;
-	private String process_classpath = null;
 	private String classpath = null;
-	
-	private String driver_environment = null;
-	private String process_environment = null;
 	private String environment = null;
 	
+	private String process_jvm_args = null;
+	
 	private String driver_descriptor_CR = null;
 	private String driver_descriptor_CR_overrides = null;
 	
@@ -74,6 +79,18 @@ public class AllInOneLauncher extends Cl
 	
 	private String process_DD = null;
 	
+	private String process_memory_size = null;
+	private String description = null;
+	private String scheduling_class = fixed;
+	
+	private String specification = null;
+	
+	private String signature = null;
+	private String user = null;
+	
+	private boolean wait_for_completion = false;
+	private boolean cancel_on_interrupt = false;
+	
 	private boolean classpath_user_first = true;
 	
 	private IMessageHandler mh = new MessageHandler();
@@ -83,161 +100,266 @@ public class AllInOneLauncher extends Cl
 	private String[] args = new String[0];
 	private UiOption[] opts = DuccJobSubmit.opts;
 	
+	private HashMap<String,String> optionsMap = new HashMap<String,String>();
+	
 	public AllInOneLauncher(String[] args) throws Exception {
 		this.args = args;
 		init(this.getClass().getName(), opts, args, jobRequestProperties, or_host, or_port, "or", consoleCb, null);
 	}
 	
+	private boolean isLocal() {
+		return allInOneType.equalsIgnoreCase(local);
+	}
+	
+	private void ignored() {
+		String mid = "ignored";
+		mh.frameworkTrace(cid, mid, enter);
+		Enumeration<Object> keys = jobRequestProperties.keys();
+		while(keys.hasMoreElements()) {
+			Object key = keys.nextElement();
+			boolean examined = optionsMap.containsKey(key);
+			if(!examined) {
+				String message = "ignoring "+key;
+				mh.warn(cid, mid, message);
+			}
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void used(String opt) {
+		String mid = "used";
+		mh.frameworkTrace(cid, mid, enter);
+		optionsMap.put(opt,opt);
+		String message = opt;
+		mh.frameworkDebug(cid, mid, message);
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void enableDebugFlags() {
+		String mid = "enableDebugFlags";
+		mh.frameworkTrace(cid, mid, enter);
+		mh.setLevel(Level.FrameworkInfo, Toggle.On);
+		mh.setLevel(Level.FrameworkDebug, Toggle.On);
+		mh.setLevel(Level.FrameworkError, Toggle.On);
+		mh.setLevel(Level.FrameworkWarn, Toggle.On);
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	// debug
+	
 	private void examine_debug() {
 		String mid = "examine_debug";
-		debug = jobRequestProperties.containsKey(UiOption.Debug.pname());
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.Debug.pname();
+		debug = jobRequestProperties.containsKey(pname);
 		if(debug) {
-			mh.setLevel(Level.FrameworkInfo, Toggle.On);
-			mh.setLevel(Level.FrameworkDebug, Toggle.On);
-			mh.setLevel(Level.FrameworkError, Toggle.On);
-			mh.setLevel(Level.FrameworkWarn, Toggle.On);
+			enableDebugFlags();
 			String message = "true";
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
-		else {
-			String message = "false";
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_process_debug() {
+		String mid = "examine_process_debug";
+		mh.frameworkTrace(cid, mid, enter);
+		if(jobRequestProperties.containsKey(UiOption.Debug.pname())) {
+			return;
+		}
+		String pname = UiOption.ProcessDebug.pname();
+		debug = jobRequestProperties.containsKey(pname);
+		if(debug) {
+			enableDebugFlags();
+			String message = "true";
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
+	private void examine_driver_debug() {
+		String mid = "examine_driver_debug";
+		mh.frameworkTrace(cid, mid, enter);
+		mh.frameworkTrace(cid, mid, exit);
+	}
+
+	// timestamp
+	
 	private void examine_timestamp() {
 		String mid = "examine_timestamp";
-		boolean timestamp = jobRequestProperties.containsKey(UiOption.Timestamp.pname());
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.Timestamp.pname();
+		boolean timestamp = jobRequestProperties.containsKey(pname);
 		if(timestamp) {
 			mh.setTimestamping(Toggle.On);
 			String message = "true";
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
-		else {
-			String message = "false";
-			mh.frameworkDebug(cid, mid, message);
-		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
+
+	// all-in-one
 	
 	private void examine_allInOne() throws MissingArgumentException, IllegalArgumentException {
 		String mid = "examine_allInOne";
-		allInOneType = jobRequestProperties.getProperty(UiOption.AllInOne.pname());
-        if(allInOneType == null) {
-        	throw new MissingArgumentException(UiOption.AllInOne.pname());
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.AllInOne.pname();
+		allInOneType = jobRequestProperties.getProperty(pname);
+		if(allInOneType == null) {
+        	throw new MissingArgumentException(pname);
         }
-        if(allInOneType.equalsIgnoreCase(local)) {
-        	String message = allInOneType;
-        	mh.frameworkDebug(cid, mid, message);
-        }
-        else if(allInOneType.equalsIgnoreCase(remote)) {
+		if(allInOneType.equalsIgnoreCase(local)) {
         	String message = allInOneType;
         	mh.frameworkDebug(cid, mid, message);
-        	//TODO
-        	throw new IllegalArgumentException(UiOption.AllInOne.pname()+": "+allInOneType+" not supported");
-        }
-        else {
-        	throw new IllegalArgumentException(UiOption.AllInOne.pname()+": "+allInOneType);
+        	used(pname);
         }
+		else if(allInOneType.equalsIgnoreCase(remote)) {
+			String message = allInOneType;
+	        mh.frameworkDebug(cid, mid, message);
+	        used(pname);
+	    }
+	    else {
+	        throw new IllegalArgumentException(pname+": "+allInOneType);
+	    }
+		mh.frameworkTrace(cid, mid, exit);
+	}
+
+	// attach-console
+	
+	private void examine_process_attach_console() {
+		String mid = "examine_process_attach_console";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessAttachConsole.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			attach_console = jobRequestProperties.getProperty(pname);
+			String message = attach_console;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
+	private void examine_driver_attach_console() {
+		String mid = "examine_driver_attach_console";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	// jvm
+	
 	private void examine_jvm() {
 		String mid = "examine_jvm";
-		String key = UiOption.Jvm.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			jvm = jobRequestProperties.getProperty(key);
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.Jvm.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			jvm = jobRequestProperties.getProperty(pname);
 			String message = jvm;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
 		else {
 			jvm = System.getProperty("java.home")+File.separator+"bin"+File.separator+"java";
 			String message = jvm;
 			mh.frameworkDebug(cid, mid, message);
 		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_log_directory() {
+		String mid = "examine_log_directory";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.LogDirectory.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			log_directory = jobRequestProperties.getProperty(pname);
+			String message = log_directory;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_working_directory() {
 		String mid = "examine_working_directory";
-		String key = UiOption.WorkingDirectory.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			working_directory = jobRequestProperties.getProperty(key);
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.WorkingDirectory.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			working_directory = jobRequestProperties.getProperty(pname);
 			String message = working_directory;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
 		else {
 			working_directory = System.getProperty("user.dir");
 			String message = working_directory;
 			mh.frameworkDebug(cid, mid, message);
 		}
-	}
-	
-	private void examine_driver_jvm_args() {
-		String mid = "examine_driver_jvm_args";
-		String key = UiOption.DriverJvmArgs.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			driver_jvm_args = jobRequestProperties.getProperty(key);
-			String message = driver_jvm_args;
-			mh.frameworkDebug(cid, mid, message);
-		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_process_jvm_args() {
 		String mid = "examine_process_jvm_args";
-		String key = UiOption.ProcessJvmArgs.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_jvm_args = jobRequestProperties.getProperty(key);
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessJvmArgs.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			process_jvm_args = jobRequestProperties.getProperty(pname);
 			String message = process_jvm_args;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
-	private void examine_jvm_args() {
-		String mid = "examine_jvm_args";
-		String key = UiOption.JvmArgs.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			jvm_args = jobRequestProperties.getProperty(key);
-			String message = jvm_args;
-			mh.frameworkDebug(cid, mid, message);
-		}
-		if(jobRequestProperties.containsKey(key)) {
-			throw new IllegalArgumentException(UiOption.JvmArgs.pname()+" disallowed");
-		}
+	private void examine_driver_jvm_args() {
+		String mid = "examine_driver_jvm_args";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
-	private void examine_driver_classpath() {
-		String mid = "examine_driver_classpath";
-		String key = UiOption.DriverClasspath.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			driver_classpath = jobRequestProperties.getProperty(key);
-			String message = driver_classpath;
+	private void examine_classpath() {
+		String mid = "examine_classpath";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.Classpath.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			classpath = jobRequestProperties.getProperty(pname);
+			String message = classpath;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_process_classpath() {
 		String mid = "examine_process_classpath";
-		String key = UiOption.ProcessClasspath.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_classpath = jobRequestProperties.getProperty(key);
-			String message = process_classpath;
+		mh.frameworkTrace(cid, mid, enter);
+		if(jobRequestProperties.containsKey(UiOption.Classpath.pname())) {
+			return;
+		}
+		String pname = UiOption.ProcessClasspath.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			classpath = jobRequestProperties.getProperty(pname);
+			String message = classpath;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
-	private void examine_classpath() {
-		String mid = "examine_classpath";
-		String key = UiOption.Classpath.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			classpath = jobRequestProperties.getProperty(key);
-			String message = classpath;
-			mh.frameworkDebug(cid, mid, message);
-		}
+	private void examine_driver_classpath() {
+		String mid = "examine_driver_classpath";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_classpath_order() {
 		String mid = "examine_classpath_order";
-		String key = UiOption.ClasspathOrder.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			String value = jobRequestProperties.getProperty(key);
+		String pname = UiOption.ClasspathOrder.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			String value = jobRequestProperties.getProperty(pname);
 			if(value != null) {
 				if(value.equalsIgnoreCase(ClasspathOrderParms.UserBeforeDucc.name())) {
 					classpath_user_first = true;
@@ -251,88 +373,13 @@ public class AllInOneLauncher extends Cl
 			}
 			String message = value;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
 	}
 	
-	private void examine_driver_environment() {
-		String mid = "examine_driver_environment";
-		String key = UiOption.DriverEnvironment.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			driver_environment = jobRequestProperties.getProperty(key);
-			String message = driver_environment;
-			mh.frameworkDebug(cid, mid, message);
-		}
-	}
-	
-	private void examine_process_environment() {
-		String mid = "examine_process_environment";
-		String key = UiOption.ProcessEnvironment.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_environment = jobRequestProperties.getProperty(key);
-			String message = process_environment;
-			mh.frameworkDebug(cid, mid, message);
-		}
-	}
-	
-	private void reconcile_jvm_args() {
-		String mid = "reconcile_jvm_args";
-		if(process_jvm_args != null) {
-			jvm_args = process_jvm_args;
-			String message = "using "+UiOption.ProcessJvmArgs.pname()+": "+jvm_args;
-			mh.frameworkInfo(cid, mid, message);
-		}
-		if(driver_jvm_args != null) {
-			String message = "ignoring "+UiOption.DriverJvmArgs.pname()+": "+jvm_args;
-			mh.frameworkWarn(cid, mid, message);
-		}
-		/*
-		if(jvm_args != null) {
-			if(process_jvm_args != null) {
-				throw new IllegalArgumentException(UiOption.ProcessJvmArgs.pname());
-			}
-			else if(driver_jvm_args != null) {
-				throw new IllegalArgumentException(UiOption.DriverJvmArgs.pname());
-			}
-		} 
-		else if(process_jvm_args != null) {
-			jvm_args = process_jvm_args;
-			String message = "using process jvm_args: "+jvm_args;
-			mh.frameworkInfo(cid, mid, message);
-		} 
-		else if(driver_jvm_args != null) {
-			jvm_args = driver_jvm_args;
-			String message = "using driver jvm_args: "+jvm_args;
-			mh.frameworkInfo(cid, mid, message);
-		}
-		else {
-			// no default
-		}
-		*/
-	}
-	
 	private void reconcile_classpath() {
 		String mid = "reconcile_classpath";
 		if(classpath != null) {
-			if(process_classpath != null) {
-				throw new IllegalArgumentException(UiOption.ProcessClasspath.pname());
-			}
-			else if(driver_classpath != null) {
-				throw new IllegalArgumentException(UiOption.DriverClasspath.pname());
-			}
-			String message = "using classpath";
-			mh.frameworkDebug(cid, mid, message);
-		}
-		else if(process_classpath != null) {
-			classpath = process_classpath;
-			String message = "using process classpath";
-			mh.frameworkDebug(cid, mid, message);
-		} 
-		else if(driver_classpath != null) {
-			classpath = driver_classpath;
-			String message = "using driver classpath";
-			mh.frameworkDebug(cid, mid, message);
-		}
-		if(classpath != null) {
 			if(classpath_user_first) {
 				classpath = System.getProperty("java.class.path")+File.pathSeparatorChar+classpath;
 				String message = "user first";
@@ -351,110 +398,367 @@ public class AllInOneLauncher extends Cl
 		}
 	}
 	
-	private void reconcile_environment() {
-		String mid = "reconcile_environment";
-		if(process_environment != null) {
-			environment = process_environment;
-			String message = "using process environment: "+environment;
-			mh.frameworkInfo(cid, mid, message);
-		} 
-		else if(driver_environment != null) {
-			environment = driver_environment;
-			String message = "using driver environment: "+environment;
+	private void examine_environment() {
+		String mid = "examine_environment";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.Environment.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			environment = jobRequestProperties.getProperty(pname);
+			String message = environment;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_process_environment() {
+		String mid = "examine_process_environment";
+		mh.frameworkTrace(cid, mid, enter);
+		if(jobRequestProperties.containsKey(UiOption.Environment.pname())) {
+			return;
+		}
+		String pname = UiOption.ProcessEnvironment.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			environment = jobRequestProperties.getProperty(pname);
+			String message = environment;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_driver_environment() {
+		String mid = "examine_driver_environment";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_description() {
+		String mid = "examine_description";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.Description.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			description = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+description;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_scheduling_class() {
+		String mid = "examine_scheduling_class";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.SchedulingClass.pname();
+		if(isLocal()) {
+			String message = pname+"="+scheduling_class;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		else if(jobRequestProperties.containsKey(pname)) {
+			String user_scheduling_class = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+scheduling_class;
+			if(user_scheduling_class == null) {
+			}
+			else if(!user_scheduling_class.trim().equals(scheduling_class)) {
+				message = pname+"="+scheduling_class+" "+"replaces"+" "+user_scheduling_class;
+			}
 			mh.frameworkInfo(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+
+	private void examine_process_deployments_max() {
+		String mid = "examine_process_deployments_max";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+
+	private void examine_process_initialization_failures_cap() {
+		String mid = "examine_process_initialization_failures_cap";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_process_failures_limit() {
+		String mid = "examine_process_failures_limit";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_process_thread_count() {
+		String mid = "examine_process_thread_count";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_process_per_item_time_max() {
+		String mid = "examine_process_per_itm_time_max";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_process_get_meta_time_max() {
+		String mid = "examine_process_get_meta_time_max";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_service_dependency() {
+		String mid = "examine_service_dependency";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_signature() {
+		String mid = "examine_signature";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.Signature.pname();
+		if(isLocal()) {
+			used(pname);
+		}
+		if(jobRequestProperties.containsKey(pname)) {
+			signature = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+signature;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_user() {
+		String mid = "examine_user";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.User.pname();
+		if(isLocal()) {
+			used(pname);
+		}
+		if(jobRequestProperties.containsKey(pname)) {
+			user = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+user;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_driver_descriptor_CR() {
 		String mid = "examine_driver_descriptor_CR";
-		String key = UiOption.DriverDescriptorCR.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			driver_descriptor_CR = jobRequestProperties.getProperty(key);
-			String message = key+"="+driver_descriptor_CR;
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.DriverDescriptorCR.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			driver_descriptor_CR = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+driver_descriptor_CR;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_driver_descriptor_CR_overrides() {
 		String mid = "examine_driver_descriptor_CR_overrides";
-		String key = UiOption.DriverDescriptorCROverrides.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			driver_descriptor_CR_overrides = jobRequestProperties.getProperty(key);
-			String message = key+"="+driver_descriptor_CR_overrides;
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.DriverDescriptorCROverrides.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			driver_descriptor_CR_overrides = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+driver_descriptor_CR_overrides;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_driver_exception_handler() {
+		String mid = "examine_driver_exception_handler";
+		mh.frameworkTrace(cid, mid, enter);
+		// ignored
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_process_memory_size() {
+		String mid = "examine_process_memory_size";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessMemorySize.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			if(isLocal()) {
+				//ignored
+			}
+			else {
+				process_memory_size = jobRequestProperties.getProperty(pname);
+				String message = pname+"="+process_memory_size;
+				mh.frameworkDebug(cid, mid, message);
+				used(pname);
+			}
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_process_DD() {
+		String mid = "examine_process_DD";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessDD.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			process_DD = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+process_DD;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_process_descriptor_CM() {
 		String mid = "examine_process_descriptor_CM";
-		String key = UiOption.ProcessDescriptorCM.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_descriptor_CM = jobRequestProperties.getProperty(key);
-			String message = key+"="+process_descriptor_CM;
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessDescriptorCM.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			process_descriptor_CM = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+process_descriptor_CM;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_process_descriptor_CM_overrides() {
 		String mid = "examine_process_descriptor_CMOverrides";
-		String key = UiOption.ProcessDescriptorCMOverrides.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_descriptor_CM_overrides = jobRequestProperties.getProperty(key);
-			String message = key+"="+process_descriptor_CM_overrides;
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessDescriptorCMOverrides.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			process_descriptor_CM_overrides = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+process_descriptor_CM_overrides;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_process_descriptor_AE() {
 		String mid = "examine_process_descriptor_AE";
-		String key = UiOption.ProcessDescriptorAE.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_descriptor_AE = jobRequestProperties.getProperty(key);
-			String message = key+"="+process_descriptor_AE;
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessDescriptorAE.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			process_descriptor_AE = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+process_descriptor_AE;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_process_descriptor_AE_overrides() {
 		String mid = "examine_process_descriptor_AE_overrides";
-		String key = UiOption.ProcessDescriptorAEOverrides.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_descriptor_AE_overrides = jobRequestProperties.getProperty(key);
-			String message = key+"="+process_descriptor_AE_overrides;
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessDescriptorAEOverrides.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			process_descriptor_AE_overrides = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+process_descriptor_AE_overrides;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_process_descriptor_CC() {
 		String mid = "examine_process_descriptor_CC";
-		String key = UiOption.ProcessDescriptorCC.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_descriptor_CC = jobRequestProperties.getProperty(key);
-			String message = key+"="+process_descriptor_CC;
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessDescriptorCC.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			process_descriptor_CC = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+process_descriptor_CC;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
 	private void examine_process_descriptor_CC_overrides() {
 		String mid = "examine_process_descriptor_CC_overrides";
-		String key = UiOption.ProcessDescriptorCCOverrides.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_descriptor_CC_overrides = jobRequestProperties.getProperty(key);
-			String message = key+"="+process_descriptor_CC_overrides;
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.ProcessDescriptorCCOverrides.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			process_descriptor_CC_overrides = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+process_descriptor_CC_overrides;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
-	private void examine_process_DD() {
-		String mid = "examine_process_DD";
-		String key = UiOption.ProcessDD.pname();
-		if(jobRequestProperties.containsKey(key)) {
-			process_DD = jobRequestProperties.getProperty(key);
-			String message = key+"="+process_DD;
+	private void examine_specification() {
+		String mid = "examine_specification";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.Specification.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			specification = jobRequestProperties.getProperty(pname);
+			String message = pname+"="+specification;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+
+	private void examine_wait_for_completion() {
+		String mid = "examine_wait_for_completion";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.WaitForCompletion.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			wait_for_completion = true;
+			String message = pname+"="+wait_for_completion;
 			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_cancel_job_on_interrupt() {
+		String mid = "examine_cancel_job_on_interrupt";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.CancelJobOnInterrupt.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			cancel_on_interrupt = true;
+			wait_for_completion = true;
+			String message = pname+"="+cancel_on_interrupt;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_cancel_on_interrupt() {
+		String mid = "examine_cancel_on_interrupt";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = UiOption.CancelOnInterrupt.pname();
+		if(jobRequestProperties.containsKey(pname)) {
+			cancel_on_interrupt = true;
+			wait_for_completion = true;
+			String message = pname+"="+cancel_on_interrupt;
+			mh.frameworkDebug(cid, mid, message);
+			used(pname);
+		}
+		mh.frameworkTrace(cid, mid, exit);
+	}
+	
+	private void examine_submitter_pid_at_host() {
+		String mid = "examine_submitter_pid_at_host";
+		mh.frameworkTrace(cid, mid, enter);
+		String pname = "submitter_pid_at_host";
+		if(jobRequestProperties.containsKey(pname)) {
+			used(pname);
 		}
+		mh.frameworkTrace(cid, mid, exit);
 	}
 	
+	/////
+	
 	private void reconcile_descriptors() throws MissingArgumentException {
 		if(driver_descriptor_CR == null) {
 			throw new MissingArgumentException(UiOption.DriverDescriptorCR.pname());
@@ -500,8 +804,16 @@ public class AllInOneLauncher extends Cl
 		String mid = "examine";
 		mh.frameworkTrace(cid, mid, "enter");
 		
-		// debug & timestamp
+		// debug
 		examine_debug();
+		examine_process_debug();
+		examine_driver_debug();
+		
+		// console
+		examine_process_attach_console();
+		examine_driver_attach_console();
+		
+		// timestamp
 		examine_timestamp();
 		
 		// all_in_one
@@ -510,26 +822,30 @@ public class AllInOneLauncher extends Cl
 		// jvm
 		examine_jvm();
 		
+		// log_directory
+		examine_log_directory();
+		
 		// working_directory
 		examine_working_directory();
 		
 		// jvm_args
-		examine_driver_jvm_args();
 		examine_process_jvm_args();
-		examine_jvm_args();
-		reconcile_jvm_args();
+		examine_driver_jvm_args();
 		
 		// classpath
-		examine_driver_classpath();
-		examine_process_classpath();
 		examine_classpath();
+		examine_process_classpath();
+		examine_driver_classpath();
 		examine_classpath_order();
 		reconcile_classpath();
 		
 		// environment
+		examine_environment();
 		examine_driver_environment();
 		examine_process_environment();
-		reconcile_environment();
+		
+		// jd
+		examine_driver_exception_handler();
 		
 		// uima
 		examine_driver_descriptor_CR();
@@ -543,6 +859,44 @@ public class AllInOneLauncher extends Cl
 		examine_process_DD();
 		reconcile_descriptors();
 		
+		// memory
+		examine_process_memory_size();
+		
+		// various ignored
+		examine_process_deployments_max();
+		examine_process_initialization_failures_cap();
+		examine_process_failures_limit();
+		examine_process_thread_count();
+		examine_process_per_item_time_max();
+		examine_process_get_meta_time_max();
+		examine_service_dependency();
+		
+		// description
+		examine_description();
+		
+		// scheduling_class
+		examine_scheduling_class();
+		
+		// wait_for_completion & cancel
+		examine_wait_for_completion();
+		examine_cancel_on_interrupt();
+		examine_cancel_job_on_interrupt();
+		
+		// specification - handled by super()
+		examine_specification();
+		
+		// signature - handled by super()
+		examine_signature();
+		
+		// user - handled by super()
+		examine_user();
+		
+		// submitter_pid_at_host
+		examine_submitter_pid_at_host();
+		
+		// ignored
+		ignored();
+		
 		mh.frameworkTrace(cid, mid, "exit");
 	}
 	
@@ -564,8 +918,8 @@ public class AllInOneLauncher extends Cl
 			mh.frameworkDebug(cid, mid, message);
 		}
 		
-		if(jvm_args != null) {
-			String[] jvmargs = jvm_args.split(" ");
+		if(process_jvm_args != null) {
+			String[] jvmargs = process_jvm_args.split(" ");
 			for(String jvmarg : jvmargs) {
 				message = "jvmarg: "+jvmarg;
 				mh.frameworkDebug(cid, mid, message);
@@ -573,13 +927,15 @@ public class AllInOneLauncher extends Cl
 			}
 		}
 
-		commandArray.add("org.apache.uima.ducc.cli.aio.AllInOne");
+		//commandArray.add("org.apache.uima.ducc.cli.aio.AllInOne");
+		commandArray.add(AllInOne.class.getCanonicalName());
 		
 		for(String arg : args) {
 			commandArray.add(arg);
 		}
 		
 		String[] command = commandArray.toArray(new String[0]);
+		
 		ProcessBuilder pb = new ProcessBuilder( command );
 		if(working_directory != null) {
 			message = "working directory: "+working_directory;
@@ -624,18 +980,150 @@ public class AllInOneLauncher extends Cl
         while ((line = ebr.readLine()) != null) {
             System.err.println(line);
         }
+        
 		mh.frameworkTrace(cid, mid, "exit");
 	}
 	
-	private void launch_remote() {
+	private void addArg(ArrayList<String> cmdLine, String arg) {
 		String mid = "launch_remote";
 		mh.frameworkTrace(cid, mid, "enter");
-		String message = "type "+allInOneType+" not supported";
-		mh.error(cid, mid, message);
+		cmdLine.add(arg);
+		mh.frameworkDebug(cid, mid, arg);
+		mh.frameworkTrace(cid, mid, "exit");
+	}
+	
+	private String getProcessExecutable() {
+		String mid = "getProcessExecutable";
+		mh.frameworkTrace(cid, mid, "enter");
+		StringBuffer sb = new StringBuffer();
+		sb.append(System.getProperty("java.home")+File.separator+"bin"+File.separator+"java");
+		mh.frameworkTrace(cid, mid, "exit");
+		return sb.toString();
+	}
+	
+	private String getProcessExecutableArgs() {
+		String mid = "getProcessExecutableArgs";
+		mh.frameworkTrace(cid, mid, "enter");
+		StringBuffer sb = new StringBuffer();
+		if(process_jvm_args != null) {
+			sb.append(process_jvm_args);
+			sb.append(" ");
+		}
+		sb.append("-classpath");
+		sb.append(" ");
+		sb.append(classpath);
+		sb.append(" ");
+		sb.append(this.getClass().getCanonicalName());
+		sb.append(" ");
+		boolean skipNext = false;
+		for(String arg : args) {
+			if(skipNext) {
+				skipNext = false;
+			}
+			else if(arg.trim().equalsIgnoreCase("--"+UiOption.AllInOne.pname())) {
+				skipNext = true;
+				sb.append(arg);
+				sb.append(" ");
+				sb.append(local);
+				sb.append(" ");
+			}
+			else if(arg.trim().equalsIgnoreCase("--"+UiOption.DriverClasspath.pname())) {
+				skipNext = true;
+			}
+			else if(arg.trim().equalsIgnoreCase("--"+UiOption.ProcessClasspath.pname())) {
+				skipNext = true;
+			}
+			else if(arg.trim().equalsIgnoreCase("--"+UiOption.Classpath.pname())) {
+				skipNext = true;
+			}
+			else if(arg.trim().equalsIgnoreCase("--"+UiOption.DriverEnvironment.pname())) {
+				skipNext = true;
+			}
+			else if(arg.trim().equalsIgnoreCase("--"+UiOption.ProcessEnvironment.pname())) {
+				skipNext = true;
+			}
+			else if(arg.trim().equalsIgnoreCase("--"+UiOption.Environment.pname())) {
+				skipNext = true;
+			}
+			else {
+				sb.append(arg);
+				sb.append(" ");
+			}
+		}
+		mh.frameworkTrace(cid, mid, "exit");
+		return sb.toString();
+	}
+	
+	private void launch_remote() throws Exception {
+		String mid = "launch_remote";
+		mh.frameworkTrace(cid, mid, "enter");
+		ArrayList<String> cmdLine = new ArrayList<String>();
+		addArg(cmdLine, "--"+UiOption.ProcessExecutable.pname());
+		addArg(cmdLine, getProcessExecutable());
+		addArg(cmdLine, "--"+UiOption.ProcessExecutableArgs.pname());
+		addArg(cmdLine, getProcessExecutableArgs());
+		addArg(cmdLine, "--"+UiOption.SchedulingClass.pname());
+		addArg(cmdLine, scheduling_class);
+		if(attach_console != null) {
+			addArg(cmdLine, "--"+UiOption.ProcessAttachConsole.pname());
+			addArg(cmdLine, attach_console);
+		}
+		if(environment != null) {
+			addArg(cmdLine, "--"+UiOption.Environment.pname());
+			addArg(cmdLine, environment);
+		}
+		if(process_memory_size != null) {
+			addArg(cmdLine, "--"+UiOption.ProcessMemorySize.pname());
+			addArg(cmdLine, process_memory_size);
+		}
+		if(log_directory != null) {
+			addArg(cmdLine, "--"+UiOption.LogDirectory.pname());
+			addArg(cmdLine, log_directory);
+		}
+		if(working_directory != null) {
+			addArg(cmdLine, "--"+UiOption.WorkingDirectory.pname());
+			addArg(cmdLine, working_directory);
+		}
+		if(description != null) {
+			addArg(cmdLine, "--"+UiOption.Description.pname());
+			addArg(cmdLine, description);
+		}
+		if(wait_for_completion) {
+			addArg(cmdLine, "--"+UiOption.WaitForCompletion.pname());
+			addArg(cmdLine, "true");
+		}
+		if(cancel_on_interrupt) {
+			addArg(cmdLine, "--"+UiOption.CancelOnInterrupt.pname());
+			addArg(cmdLine, "true");
+		}
+		String[] argList = cmdLine.toArray(new String[0]);
+		DuccManagedReservationSubmit ds = new DuccManagedReservationSubmit(argList);
+		boolean rc = ds.execute();
+		
+		String dt = "Managed Reservation";
+		if ( rc ) {
+            // Fetch the Ducc ID
+        	System.out.println(dt+" "+ds.getDuccId()+" submitted.");
+        	int code = 0;
+        	if(ds.waitForCompletion()) {
+        		code = ds.getReturnCode();
+        	}
+            if ( code == 1000 ) {
+                System.out.println(dt + ": no return code.");
+            } else {
+                System.out.println(dt+" return code: "+code);
+            }
+        	System.exit(0);
+        } else {
+            System.out.println("Could not submit "+dt);
+            System.exit(1);
+        }
+		
+		mh.frameworkDebug(cid, mid, "rc="+rc);
 		mh.frameworkTrace(cid, mid, "exit");
 	}
 	
-	private void launch() throws IOException {
+	private void launch() throws Exception {
 		String mid = "launch";
 		mh.frameworkTrace(cid, mid, "enter");
 		if(allInOneType.equalsIgnoreCase(local)) {
@@ -651,7 +1139,7 @@ public class AllInOneLauncher extends Cl
 		mh.frameworkTrace(cid, mid, "exit");
 	}
 	
-	public void go() throws MissingArgumentException, IllegalArgumentException, IOException {
+	public void go() throws Exception {
 		String mid = "go";
 		mh.frameworkTrace(cid, mid, "enter");
 		examine();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/CasGenerator.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/CasGenerator.java?rev=1468197&r1=1468196&r2=1468197&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/CasGenerator.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/aio/CasGenerator.java Mon Apr 15 19:20:24 2013
@@ -112,7 +112,7 @@ public class CasGenerator {
         cr_fid = cr.getProcessingResourceMetaData().getFsIndexes();
         initTotal();
         mh.frameworkInfo(cid, mid, "total:"+getTotal());
-        mh.info("total:"+getTotal());
+        mh.frameworkInfo("total:"+getTotal());
 		mh.frameworkTrace(cid, mid, "exit");
 	}