You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ch...@apache.org on 2013/02/21 21:59:38 UTC

svn commit: r1448799 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/ uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/ uima-ducc-common/...

Author: challngr
Date: Thu Feb 21 20:59:37 2013
New Revision: 1448799

URL: http://svn.apache.org/r1448799
Log:
UIMA-2686
Replace all getenv("DUCC_HOME") with Utils.findDuccHome().

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/Launcher.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobCancel.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobMonitor.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/DuccReservationCancel.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.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/DuccServiceCancel.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceSubmit.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccletSubmit.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/DuccWebQuery.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/IDuccEnv.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/persistence/services/StateServices.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/Utils.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/NodeStatus.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/HistoryPersistenceManager.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebProperties.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/DuccCommandExecutor.java Thu Feb 21 20:59:37 2013
@@ -354,10 +354,7 @@ public class DuccCommandExecutor extends
 	      List<String> operationalProperties = new ArrayList<String>();
 
 	      if ( cmdLine instanceof JavaCommandLine ) {
-	        String duccHomePath = null;
-	        if ( (duccHomePath = System.getenv("DUCC_HOME")) == null ) {
-	          duccHomePath = System.getProperty("DUCC_HOME");
-	        }
+            String duccHomePath = Utils.findDuccHome();
 	        operationalProperties.add("-DDUCC_HOME="+duccHomePath);
 	        operationalProperties.add("-Dducc.deploy.configuration="+ 
 	                System.getProperty("ducc.deploy.configuration"));

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/Launcher.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/Launcher.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/Launcher.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/Launcher.java Thu Feb 21 20:59:37 2013
@@ -26,6 +26,7 @@ import java.util.concurrent.Future;
 import org.apache.uima.ducc.agent.NodeAgent;
 import org.apache.uima.ducc.agent.event.ProcessLifecycleObserver;
 import org.apache.uima.ducc.common.NodeIdentity;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.common.utils.id.DuccIdFactory;
 import org.apache.uima.ducc.transport.cmdline.ICommandLine;
 import org.apache.uima.ducc.transport.cmdline.JavaCommandLine;
@@ -113,7 +114,7 @@ public class Launcher {
             String nodeName = InetAddress.getLocalHost().getHostName();
             Launcher launcher = new Launcher();
             JavaCommandLine cmdLine = new JavaCommandLine("java");
-            String duccHome = System.getenv("DUCC_HOME");
+            String duccHome = Utils.findDuccHome();
             cmdLine.addOption("-Dducc.deploy.configuration="+duccHome+"/resources/ducc.properties");
             cmdLine.addOption("-Dducc.deploy.components=agent");
             cmdLine.addOption("-Djava.library.path=" + duccHome +"/lib/sigar");

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobCancel.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobCancel.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobCancel.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobCancel.java Thu Feb 21 20:59:37 2013
@@ -30,6 +30,7 @@ import org.apache.uima.ducc.api.IDuccMes
 import org.apache.uima.ducc.common.crypto.Crypto;
 import org.apache.uima.ducc.common.exception.DuccRuntimeException;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.transport.dispatcher.DuccEventHttpDispatcher;
 import org.apache.uima.ducc.transport.event.CancelJobDuccEvent;
 import org.apache.uima.ducc.transport.event.CancelJobReplyDuccEvent;
@@ -104,10 +105,9 @@ public class DuccJobCancel extends DuccU
 			/*
 			 * require DUCC_HOME 
 			 */
-			String ducc_home_key = "DUCC_HOME";
-			String ducc_home = System.getenv(ducc_home_key);
+			String ducc_home = Utils.findDuccHome();
 			if(ducc_home == null) {
-				duccMessageProcessor.err("missing required environment variable: "+ducc_home_key);
+				duccMessageProcessor.err("missing required environment variable: DUCC_HOME");
 				return 1;
 			}
 			/*

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobMonitor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobMonitor.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobMonitor.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobMonitor.java Thu Feb 21 20:59:37 2013
@@ -40,6 +40,7 @@ import org.apache.uima.ducc.api.DuccMess
 import org.apache.uima.ducc.api.IDuccMessageProcessor;
 import org.apache.uima.ducc.common.json.MonitorInfo;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
+import org.apache.uima.ducc.common.utils.Utils;
 
 import com.google.gson.Gson;
 
@@ -216,10 +217,9 @@ private Thread main = null;
 		/*
 		 * require DUCC_HOME 
 		 */
-		String ducc_home_key = "DUCC_HOME";
-		String ducc_home = System.getenv(ducc_home_key);
+		String ducc_home = Utils.findDuccHome();
 		if(ducc_home == null) {
-			duccMessageProcessor.err("missing required environment variable: "+ducc_home_key);
+			duccMessageProcessor.err("missing required environment variable: DUCC_HOME");
 			rc.set(RC_FAILURE);
 			return rc.get();
 		}

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=1448799&r1=1448798&r2=1448799&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 Thu Feb 21 20:59:37 2013
@@ -18,6 +18,7 @@
 */
 package org.apache.uima.ducc.cli;
 
+import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
@@ -53,6 +54,7 @@ import org.apache.uima.ducc.common.crypt
 import org.apache.uima.ducc.common.exception.DuccRuntimeException;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
 import org.apache.uima.ducc.common.utils.IOHelper;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.transport.dispatcher.DuccEventHttpDispatcher;
 import org.apache.uima.ducc.transport.event.DuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitJobDuccEvent;
@@ -182,7 +184,7 @@ public class DuccJobSubmit extends DuccU
     {
         try {
             while ( wait_count > 0 ) {
-                System.out.println("----------- WAITING " + wait_count + " --------------");
+                //System.out.println("----------- WAITING " + wait_count + " --------------");
                 wait();
             }
 		} catch (InterruptedException e) {
@@ -687,10 +689,9 @@ public class DuccJobSubmit extends DuccU
 			/*
 			 * require DUCC_HOME 
 			 */
-			String ducc_home_key = "DUCC_HOME";
-			String ducc_home = System.getenv(ducc_home_key);
+			String ducc_home = Utils.findDuccHome();
 			if(ducc_home == null) {
-				duccMessageProcessor.err("missing required environment variable: "+ducc_home_key);
+				duccMessageProcessor.err("missing required environment variable: DUCC_HOME");
 				return DuccUiConstants.ERROR;
 			}
 			/*
@@ -1047,6 +1048,12 @@ public class DuccJobSubmit extends DuccU
         String remote_host;
         String leader;
 
+        BufferedOutputStream logfile = null;
+        String filename = null;
+        static final String console_tag = "1002 CONSOLE_REDIRECT ";
+        int tag_len = 0;
+        boolean first_error = true;
+
         StdioListener(Socket sock, ConsoleListener cl)
         {
             this.sock = sock;
@@ -1061,6 +1068,7 @@ public class DuccJobSubmit extends DuccU
                 remote_host = remote_host.substring(0, ndx);
             }
             leader = "[" + remote_host + "] ";
+            tag_len = console_tag.length();
         }
 
         public void close()
@@ -1072,6 +1080,32 @@ public class DuccJobSubmit extends DuccU
             cl.delete(sock.getPort());
         }
 
+        void tee(String leader, String line)
+        {
+            try {
+				if ((logfile == null) && line.startsWith(console_tag)) {
+					filename = line.substring(tag_len);
+					logfile = new BufferedOutputStream(new FileOutputStream(filename));
+
+                    System.out.println("Create logfile " + filename);
+				}
+				if (logfile != null) {
+					logfile.write(leader.getBytes());
+					logfile.write(' ');
+					logfile.write(line.getBytes());
+					logfile.write('\n');
+                    logfile.flush();
+				} 
+			} catch (Exception e) {
+                if ( first_error ) {
+                    System.out.println("Cannot create or write log file[" + filename + "]: " + e.getMessage());
+                    e.printStackTrace();
+                }
+                first_error = false;
+			}
+			System.out.println(leader + line);
+        }
+
         /**
          * We received a buffer of bytes that needs to be put into a string and printed.  We want
          * to split along \n boundaries so we can insert the host name at the start of every line.
@@ -1091,7 +1125,7 @@ public class DuccJobSubmit extends DuccU
             if ( len < 0 ) {
                 // this is a lone linend.  Spew the partial if it exists and just return.
                 if ( partial != null ) {
-                    System.out.println(leader + partial);
+                    tee(leader, partial);
                     partial = null;
                 }
                 return;
@@ -1106,12 +1140,12 @@ public class DuccJobSubmit extends DuccU
 
             for ( int i = 0; i < len; i++ ) {
                 // spew everything but the last line
-                System.out.println(leader + lines[i]);
+                tee(leader, lines[i]);
             }
 
             if ( tmp.endsWith("\n") ) {
                 // if the last line ends with linend, there is no partial, just spew
-                System.out.println(leader + lines[len]);
+                tee(leader, lines[len]);
                 partial = null;
             } else {
                 // otherwise, wait for the next buffer

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationCancel.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationCancel.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationCancel.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationCancel.java Thu Feb 21 20:59:37 2013
@@ -30,6 +30,7 @@ import org.apache.uima.ducc.api.IDuccMes
 import org.apache.uima.ducc.common.crypto.Crypto;
 import org.apache.uima.ducc.common.exception.DuccRuntimeException;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.transport.dispatcher.DuccEventHttpDispatcher;
 import org.apache.uima.ducc.transport.event.CancelReservationDuccEvent;
 import org.apache.uima.ducc.transport.event.CancelReservationReplyDuccEvent;
@@ -97,10 +98,9 @@ public class DuccReservationCancel exten
 			/*
 			 * require DUCC_HOME 
 			 */
-			String ducc_home_key = "DUCC_HOME";
-			String ducc_home = System.getenv(ducc_home_key);
+			String ducc_home = Utils.findDuccHome();
 			if(ducc_home == null) {
-				duccMessageProcessor.err("missing required environment variable: "+ducc_home_key);
+				duccMessageProcessor.err("missing required environment variable: DUCC_HOME");
 				return 1;
 			}
 			/*

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccReservationSubmit.java Thu Feb 21 20:59:37 2013
@@ -38,6 +38,7 @@ import org.apache.uima.ducc.api.IDuccMes
 import org.apache.uima.ducc.common.crypto.Crypto;
 import org.apache.uima.ducc.common.exception.DuccRuntimeException;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.transport.dispatcher.DuccEventHttpDispatcher;
 import org.apache.uima.ducc.transport.event.DuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitReservationDuccEvent;
@@ -135,10 +136,9 @@ public class DuccReservationSubmit exten
 			/*
 			 * require DUCC_HOME 
 			 */
-			String ducc_home_key = "DUCC_HOME";
-			String ducc_home = System.getenv(ducc_home_key);
+			String ducc_home = Utils.findDuccHome();
 			if(ducc_home == null) {
-				duccMessageProcessor.err("missing required environment variable: "+ducc_home_key);
+				duccMessageProcessor.err("missing required environment variable: DUCC_HOME");
 				return DuccUiConstants.ERROR;
 			}
 			/*

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=1448799&r1=1448798&r2=1448799&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 Thu Feb 21 20:59:37 2013
@@ -34,6 +34,7 @@ import org.apache.commons.cli.PosixParse
 import org.apache.uima.ducc.common.IDucc;
 import org.apache.uima.ducc.common.Pair;
 import org.apache.uima.ducc.common.utils.DuccProperties;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.transport.dispatcher.DuccEventDispatcher;
 import org.apache.uima.ducc.transport.dispatcher.DuccEventHttpDispatcher;
 import org.apache.uima.ducc.transport.event.ServiceModifyEvent;
@@ -386,7 +387,7 @@ public class DuccServiceApi 
 
         if ( init_done ) return;
 
-        ducc_home = System.getenv("DUCC_HOME");
+        ducc_home = Utils.findDuccHome();
         if ( ducc_home == null ) {
             usage("DUCC_HOME must be set.");
         }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceCancel.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceCancel.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceCancel.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccServiceCancel.java Thu Feb 21 20:59:37 2013
@@ -30,6 +30,7 @@ import org.apache.uima.ducc.api.IDuccMes
 import org.apache.uima.ducc.common.crypto.Crypto;
 import org.apache.uima.ducc.common.exception.DuccRuntimeException;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.transport.dispatcher.DuccEventHttpDispatcher;
 import org.apache.uima.ducc.transport.event.CancelServiceDuccEvent;
 import org.apache.uima.ducc.transport.event.CancelServiceReplyDuccEvent;
@@ -97,10 +98,9 @@ public class DuccServiceCancel extends D
 			/*
 			 * require DUCC_HOME 
 			 */
-			String ducc_home_key = "DUCC_HOME";
-			String ducc_home = System.getenv(ducc_home_key);
+			String ducc_home = Utils.findDuccHome();
 			if(ducc_home == null) {
-				duccMessageProcessor.err("missing required environment variable: "+ducc_home_key);
+				duccMessageProcessor.err("missing required environment variable: DUCC_HOME");
 				return 1;
 			}
 			/*

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=1448799&r1=1448798&r2=1448799&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 Thu Feb 21 20:59:37 2013
@@ -47,6 +47,7 @@ import org.apache.uima.ducc.common.crypt
 import org.apache.uima.ducc.common.exception.DuccRuntimeException;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
 import org.apache.uima.ducc.common.utils.IOHelper;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.transport.dispatcher.DuccEventHttpDispatcher;
 import org.apache.uima.ducc.transport.event.DuccEvent;
 import org.apache.uima.ducc.transport.event.SubmitServiceDuccEvent;
@@ -430,10 +431,9 @@ public class DuccServiceSubmit extends D
 			/*
 			 * require DUCC_HOME 
 			 */
-			String ducc_home_key = "DUCC_HOME";
-			String ducc_home = System.getenv(ducc_home_key);
+			String ducc_home = Utils.findDuccHome();
 			if(ducc_home == null) {
-				duccMessageProcessor.err("missing required environment variable: "+ducc_home_key);
+				duccMessageProcessor.err("missing required environment variable: DUCC_HOME");
 				return DuccUiConstants.ERROR;
 			}
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccletSubmit.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccletSubmit.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccletSubmit.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccletSubmit.java Thu Feb 21 20:59:37 2013
@@ -157,16 +157,6 @@ public class DuccletSubmit 
         synchronized(DuccUi.class) {
 
             /*
-             * require DUCC_HOME 
-             */
-            String ducc_home_key = "DUCC_HOME";
-            String ducc_home = System.getenv(ducc_home_key);
-            if(ducc_home == null) {
-                addError("missing required environment variable: " + ducc_home_key);
-                return false;
-            }
-                        
-            /*
              * marshal user
              */
             String user = DuccUiUtilities.getUser();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/DuccWebQuery.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/DuccWebQuery.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/DuccWebQuery.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ws/DuccWebQuery.java Thu Feb 21 20:59:37 2013
@@ -3,12 +3,13 @@ package org.apache.uima.ducc.cli.ws;
 import java.net.InetAddress;
 
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;
+import org.apache.uima.ducc.common.utils.Utils;
 
 public class DuccWebQuery {
 	
 	protected DuccPropertiesResolver dpr = DuccPropertiesResolver.getInstance();
 	
-	protected String DUCC_HOME = System.getenv().get("DUCC_HOME");
+	protected String DUCC_HOME = Utils.findDuccHome();
 	protected String ws_scheme = "http";
 	protected String ws_host = "localhost";
 	protected String ws_port = "42133";

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/IDuccEnv.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/IDuccEnv.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/IDuccEnv.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/IDuccEnv.java Thu Feb 21 20:59:37 2013
@@ -22,7 +22,7 @@ import java.io.File;
 
 public interface IDuccEnv {
 
-	public static final String DUCC_HOME = System.getenv().get("DUCC_HOME");
+	public static final String DUCC_HOME = System.getProperty("DUCC_HOME");
 	
 	public static final String DUCC_HOME_DIR = DUCC_HOME+File.separator;
 	public static final String DUCC_RESOURCES_DIR = DUCC_HOME_DIR+"resources"+File.separator;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java Thu Feb 21 20:59:37 2013
@@ -32,6 +32,7 @@ import org.apache.uima.ducc.common.NodeI
 import org.apache.uima.ducc.common.component.AbstractDuccComponent;
 import org.apache.uima.ducc.common.exception.DuccComponentInitializationException;
 import org.apache.uima.ducc.common.utils.DuccLogger;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 
@@ -191,17 +192,11 @@ public class DuccService extends Abstrac
 	public static void main(String[] args) {
 		DuccService duccService = null;
 		try {
-			if ( System.getenv("DUCC_HOME") == null && System.getProperty("DUCC_HOME") == null ) {
+			if ( Utils.findDuccHome() == null ) {
+                //findDuccHome places it into System.properties
 				System.out.println("Unable to Launch Ducc Service - DUCC_HOME not defined. Add it to your environment or provide it with -DDUCC_HOME=<path>");
 				System.exit(-1);
 			}
-            //	make sure DUCC_HOME is in the System properties. Needed to resolve
-            //  any place holders that may exist in paths. If System properties doesnt
-            //  contain this property it must exist in the environment. The DuccService.java
-            //  enforces existence of DUCC_HOME in either the env or System properties. 
-            if ( System.getProperty("DUCC_HOME") == null ) {
-                System.setProperty("DUCC_HOME",System.getenv("DUCC_HOME"));
-            }
 
             if ( System.getenv("IP") == null ) {
                 NodeIdentity ni = new NodeIdentity();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/persistence/services/StateServices.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/persistence/services/StateServices.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/persistence/services/StateServices.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/persistence/services/StateServices.java Thu Feb 21 20:59:37 2013
@@ -29,6 +29,7 @@ import java.util.Properties;
 
 import org.apache.uima.ducc.common.IDuccEnv;
 import org.apache.uima.ducc.common.utils.IOHelper;
+import org.apache.uima.ducc.common.utils.Utils;
 
 
 public class StateServices implements IStateServices {
@@ -129,7 +130,7 @@ public class StateServices implements IS
 	///// <test>
 	
 	public static void main(String[] args) throws IOException, ClassNotFoundException {
-		String ducc_home = System.getenv("DUCC_HOME");
+		String ducc_home = Utils.findDuccHome();
 		if(ducc_home == null) {
 			System.out.println("DUCC_HOME not set in environment");
 			return;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/Utils.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/Utils.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/Utils.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/Utils.java Thu Feb 21 20:59:37 2013
@@ -350,15 +350,24 @@ public class Utils {
 		return retVal;
 	}
 
+    static String DUCC_HOME = null;
     public static String findDuccHome()
     {
-        String ducc_home = System.getenv("DUCC_HOME");
-        if ( ducc_home != null ) {                  // The environment trumps all
-            return ducc_home;
+
+        if ( DUCC_HOME != null ) {
+            return DUCC_HOME;
         }
 
-        ducc_home = System.getProperty("DUCC_HOME");
+        String ducc_home = System.getProperty("DUCC_HOME");
         if ( ducc_home != null ) {                  // System properties next
+            DUCC_HOME = ducc_home;
+            return ducc_home;
+        }
+
+        ducc_home = System.getenv("DUCC_HOME");
+        if ( ducc_home != null ) {                  // The environment trumps all
+            DUCC_HOME = ducc_home;
+            System.setProperty("DUCC_HOME", DUCC_HOME);
             return ducc_home;
         }
 
@@ -391,7 +400,9 @@ public class Utils {
         System.out.println("res " + res);
         System.out.println("p " + p);
 
-        return p.substring(0, ndx);
+        DUCC_HOME =  p.substring(0, ndx);
+        System.setProperty("DUCC_HOME", DUCC_HOME);
+        return DUCC_HOME;
     }
 
 	public static void main(String[] args) {

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/NodeStatus.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/NodeStatus.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/NodeStatus.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/NodeStatus.java Thu Feb 21 20:59:37 2013
@@ -25,9 +25,11 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.Properties;
 
+import org.apache.uima.ducc.common.utils.Utils;
+
 public class NodeStatus {
 
-	private static String dir_home = System.getenv("DUCC_HOME");
+	private static String dir_home = Utils.findDuccHome();
 	private static String dir_resources = "resources";
 	private static String ducc_properties_filename = dir_home+File.separator+dir_resources+File.separator+"nodes.offline";
 	

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/HistoryPersistenceManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/HistoryPersistenceManager.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/HistoryPersistenceManager.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/HistoryPersistenceManager.java Thu Feb 21 20:59:37 2013
@@ -31,6 +31,7 @@ import org.apache.uima.ducc.common.IDucc
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
 import org.apache.uima.ducc.common.utils.IOHelper;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 import org.apache.uima.ducc.transport.event.common.IDuccWorkJob;
 import org.apache.uima.ducc.transport.event.common.IDuccWorkReservation;
@@ -374,7 +375,7 @@ public class HistoryPersistenceManager i
 	}
 	
 	public static void main(String[] args) throws IOException, ClassNotFoundException {
-		String ducc_home = System.getenv("DUCC_HOME");
+		String ducc_home = Utils.findDuccHome();
 		if(ducc_home == null) {
 			System.out.println("DUCC_HOME not set in environment");
 			return;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccAbstractHandler.java Thu Feb 21 20:59:37 2013
@@ -35,6 +35,7 @@ import org.apache.uima.ducc.common.inter
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.DuccLoggerComponents;
 import org.apache.uima.ducc.common.utils.TimeStamp;
+import org.apache.uima.ducc.common.utils.Utils;
 import org.apache.uima.ducc.common.utils.id.DuccId;
 import org.apache.uima.ducc.orchestrator.authentication.DuccWebAdministrators;
 import org.apache.uima.ducc.transport.event.common.IDuccPerWorkItemStatistics;
@@ -79,7 +80,7 @@ public abstract class DuccAbstractHandle
 
 	public final String defaultStyleDate = DuccWebUtil.valueStyleDateLong;
 	
-	public String dir_home = System.getenv("DUCC_HOME");
+	public String dir_home = Utils.findDuccHome();
 	public String dir_resources = "resources";
 
 	protected boolean terminateEnabled = true;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebProperties.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebProperties.java?rev=1448799&r1=1448798&r2=1448799&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebProperties.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccWebProperties.java Thu Feb 21 20:59:37 2013
@@ -24,6 +24,8 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.util.Properties;
 
+import org.apache.uima.ducc.common.utils.Utils;
+
 public class DuccWebProperties {
 
 	static Properties properties = new Properties();
@@ -40,7 +42,7 @@ public class DuccWebProperties {
 		return (Properties)properties.clone();
 	}
 	
-	private static String dir_home = System.getenv("DUCC_HOME");
+	private static String dir_home = Utils.findDuccHome();
 	private static String dir_resources = "resources";
 	private static String ducc_properties_filename = dir_home+File.separator+dir_resources+File.separator+"ducc.properties";