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 2014/06/23 22:00:08 UTC

svn commit: r1604919 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/ uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/ uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/uima/ ui...

Author: challngr
Date: Mon Jun 23 20:00:07 2014
New Revision: 1604919

URL: http://svn.apache.org/r1604919
Log:
UIMA-3904 Enforce authentication and authorization for admin.

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/uima/ManagedUimaService.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.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-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEvent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventKill.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventStopMetrics.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoad.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancy.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminReply.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOff.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOn.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/DuccComponent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccAdmin.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.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/utils/DuccLogger.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-db/src/main/java/org/apache/uima/ducc/db/DbComponent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/ping/SamplePing.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/ProcessManagerComponent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/config/ProcessManagerConfiguration.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/event/ProcessManagerEventListener.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/ResourceManagerComponent.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java Mon Jun 23 20:00:07 2014
@@ -85,7 +85,7 @@ import org.apache.uima.ducc.transport.ev
 import org.apache.uima.ducc.transport.event.common.TimeWindow;
 
 public class NodeAgent extends AbstractDuccComponent implements Agent, ProcessLifecycleObserver {
-  public DuccLogger logger = DuccLogger.getLogger(this.getClass(), COMPONENT_NAME);
+  public static DuccLogger logger = DuccLogger.getLogger(NodeAgent.class, COMPONENT_NAME);
 
   public static final String ProcessStateUpdatePort = "ducc.agent.process.state.update.port";
 
@@ -1548,7 +1548,9 @@ public class NodeAgent extends AbstractD
     // Delay this thread to make sure that at least one last node inventory publish occurs before Agent goes away. Add extra 30 secs 
     // to the delay to make sure the publish happens.
     synchronized (this) {
-        wait(configurationFactory.getNodeInventoryPublishDelay() +30000);
+        long waittime = configurationFactory.getNodeInventoryPublishDelay() +30000;
+        logger.info("stop", null, "Waiting", waittime, "ms to send final NodeInventory.");
+        wait(waittime);
     }
     super.stop();
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/config/AgentConfiguration.java Mon Jun 23 20:00:07 2014
@@ -136,7 +136,7 @@ public class AgentConfiguration {
           final String targetEndpointToReceiveNodeMetricsUpdate, final int nodeMetricsPublishRate)
           throws Exception {
     final Processor nmp = nodeMetricsProcessor(agent);
-    final Predicate blastFilter = new DuccBlastGuardPredicate(agent.logger);
+    final Predicate blastFilter = new DuccBlastGuardPredicate(agent.getLogger());
     final Processor cp = new ConfirmProcessor();
     return new RouteBuilder() {
       public void configure() {
@@ -172,7 +172,7 @@ public class AgentConfiguration {
       public void configure() {
         final Predicate bodyNotNull = body().isNotNull();
 
-        final Predicate blastGuard = new DuccBlastGuardPredicate(agent.logger);
+        final Predicate blastGuard = new DuccBlastGuardPredicate(agent.getLogger());
         onException(Exception.class).maximumRedeliveries(0).handled(true)
                 .process(new ErrorProcessor());
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/uima/ManagedUimaService.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/uima/ManagedUimaService.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/uima/ManagedUimaService.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/deploy/uima/ManagedUimaService.java Mon Jun 23 20:00:07 2014
@@ -68,7 +68,7 @@ public class ManagedUimaService extends 
 	private String saxonJarPath;
 	private String dd2SpringXslPath;
 	private String processJmxUrl = null;
-	protected DuccLogger logger;
+	protected static DuccLogger logger;
 	private String agentStateUpdateEndpoint = "";
 
 	public static void main(String[] args) {
@@ -94,9 +94,13 @@ public class ManagedUimaService extends 
 		// ConsoleHandler ch = new ConsoleHandler();
 		// ch.setFormatter(new UIMALogFormatter());
 		// l.addHandler(ch);
-		logger = new DuccLogger(DuccService.class);
 	}
 
+	public DuccLogger getLogger()
+	{
+		return new DuccLogger(DuccService.class);
+	}
+	
 	public void onServiceStateChange(ProcessState state) {
 		super.notifyAgentWithStatus(state);
 	}
@@ -428,7 +432,7 @@ public class ManagedUimaService extends 
 								componentsToDelete.add(aeState);
 							}
 						}
-						service.logger.debug(
+						DuccService.getDuccLogger().debug(
 								"UimaAEJmxMonitor.run()",
 								null,
 								"---- AE Name:" + proxy.getName()
@@ -443,7 +447,7 @@ public class ManagedUimaService extends 
 				}
 				howManySeenSoFar = 1; // reset error counter
 				if (updateAgent) {
-					service.logger.debug("UimaAEJmxMonitor.run()", null,
+					DuccService.getDuccLogger().debug("UimaAEJmxMonitor.run()", null,
 							"---- Publishing UimaPipelineAEComponent List - size="
 									+ aeStateList.size());
 					try {
@@ -462,7 +466,7 @@ public class ManagedUimaService extends 
 				if (!(e.getCause() instanceof InstanceNotFoundException)) {
 					if (howManySeenSoFar > 3) { // allow up three errors of this
 												// kind
-						service.logger.info("UimaAEJmxMonitor.run()", null, e);
+						DuccService.getDuccLogger().info("UimaAEJmxMonitor.run()", null, e);
 						howManySeenSoFar = 1;
 						throw e;
 					}
@@ -472,7 +476,7 @@ public class ManagedUimaService extends 
 				}
 			} catch (Throwable e) {
 				howManySeenSoFar = 1;
-				service.logger.info("UimaAEJmxMonitor.run()", null, e);
+				DuccService.getDuccLogger().info("UimaAEJmxMonitor.run()", null, e);
 			}
 		}
 	}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/CommandExecutor.java Mon Jun 23 20:00:07 2014
@@ -130,7 +130,7 @@ public abstract class CommandExecutor im
 						maxInitTime = processInfo
 								.getProcessInitializationTimeMax();
 					}
-					agent.logger.info("CommandExecutor.call",
+					agent.getLogger().info("CommandExecutor.call",
 							((ManagedProcess) managedProcess).getWorkDuccId(),
 							"Starting Process Initialization Monitor with Max Process Initialization Time:" + maxInitTime);
 					((ManagedProcess) managedProcess)

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=1604919&r1=1604918&r2=1604919&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 Mon Jun 23 20:00:07 2014
@@ -23,7 +23,6 @@ import java.util.List;
 
 import org.apache.commons.cli.HelpFormatter;
 import org.apache.commons.cli.Options;
-import org.apache.uima.ducc.cli.IUiOptions.UiOption;
 import org.apache.uima.ducc.common.Pair;
 import org.apache.uima.ducc.common.utils.DuccProperties;
 import org.apache.uima.ducc.common.utils.DuccPropertiesResolver;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEvent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEvent.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEvent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEvent.java Mon Jun 23 20:00:07 2014
@@ -20,10 +20,36 @@ package org.apache.uima.ducc.common.admi
 
 import java.io.Serializable;
 
-public abstract class DuccAdminEvent implements Serializable {
+public abstract class DuccAdminEvent implements Serializable 
+{
 	private static final long serialVersionUID = 1753129558912646806L;
-	
-	public String toString() {
+
+    String user;
+    byte[] auth_block;
+
+    @SuppressWarnings("unused")
+	private DuccAdminEvent()  // prevent use of this, only the form with user and auth_block is allowed
+    {
+    }
+
+    protected DuccAdminEvent(String user, byte[] auth_block)
+    {
+        this.user = user;
+        this.auth_block = auth_block;
+    }
+
+    public String getUser()
+    {
+        return user;
+    }
+
+    public byte[] getAuthBlock()
+    {
+        return auth_block;
+    }
+
+	public String toString() 
+    {
 		return this.getClass().getName();
 	}
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventKill.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventKill.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventKill.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventKill.java Mon Jun 23 20:00:07 2014
@@ -22,4 +22,8 @@ public class DuccAdminEventKill extends 
 
 	private static final long serialVersionUID = -8101741014979144426L;
 
+	public DuccAdminEventKill(String user, byte[] auth)
+	{
+		super(user, auth);
+	}
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventStopMetrics.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventStopMetrics.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventStopMetrics.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/DuccAdminEventStopMetrics.java Mon Jun 23 20:00:07 2014
@@ -24,7 +24,9 @@ public class DuccAdminEventStopMetrics e
 	private String targetNodes = new String();
 
 	
-	public DuccAdminEventStopMetrics(String nodes) {
+	public DuccAdminEventStopMetrics(String nodes, String user, byte[] auth) 
+	{
+		super(user, auth);
 		this.targetNodes = nodes;
 	}
 	/**

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoad.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoad.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoad.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQLoad.java Mon Jun 23 20:00:07 2014
@@ -23,8 +23,9 @@ public class RmAdminQLoad
 {
 	private static final long serialVersionUID = -8101741014979144426L;
     
-    public RmAdminQLoad()
+    public RmAdminQLoad(String user, byte[] auth)
     {
+        super(user, auth);
 
     }
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancy.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancy.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancy.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminQOccupancy.java Mon Jun 23 20:00:07 2014
@@ -23,8 +23,9 @@ public class RmAdminQOccupancy
 {
 	private static final long serialVersionUID = -8101741014979144426L;
     
-    public RmAdminQOccupancy()
+    public RmAdminQOccupancy(String user, byte[] auth)
     {
+        super(user, auth);
 
     }
     

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminReply.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminReply.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminReply.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminReply.java Mon Jun 23 20:00:07 2014
@@ -18,8 +18,10 @@
 */
 package org.apache.uima.ducc.common.admin.event;
 
+import java.io.Serializable;
+
 public class RmAdminReply
-    extends DuccAdminEvent 
+	implements Serializable
 {
 	private static final long serialVersionUID = -8101741014979144426L;
     String response;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOff.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOff.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOff.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOff.java Mon Jun 23 20:00:07 2014
@@ -24,8 +24,9 @@ public class RmAdminVaryOff
 	private static final long serialVersionUID = -8101741014979144426L;
     String[] nodes;
     
-    public RmAdminVaryOff(String[] nodes)
+    public RmAdminVaryOff(String[] nodes, String user, byte[] auth)
     {
+        super(user, auth);
         this.nodes = nodes;
     }
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOn.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOn.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOn.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/admin/event/RmAdminVaryOn.java Mon Jun 23 20:00:07 2014
@@ -24,8 +24,9 @@ public class RmAdminVaryOn
 	private static final long serialVersionUID = -8101741014979144426L;
     String[] nodes;
     
-    public RmAdminVaryOn(String[] nodes)
+    public RmAdminVaryOn(String[] nodes, String user, byte[] auth)
     {
+        super(user, auth);
         this.nodes = nodes;
     }
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java Mon Jun 23 20:00:07 2014
@@ -42,11 +42,14 @@ import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.uima.ducc.common.admin.event.DuccAdminEvent;
 import org.apache.uima.ducc.common.admin.event.DuccAdminEventKill;
+import org.apache.uima.ducc.common.crypto.Crypto;
+import org.apache.uima.ducc.common.crypto.Crypto.AccessType;
 import org.apache.uima.ducc.common.exception.DuccComponentInitializationException;
 import org.apache.uima.ducc.common.exception.DuccConfigurationException;
 import org.apache.uima.ducc.common.main.DuccService;
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.DuccProperties;
+import org.apache.uima.ducc.common.utils.LinuxUtils;
 import org.apache.uima.ducc.common.utils.Utils;
 
 /**
@@ -79,7 +82,12 @@ public abstract class AbstractDuccCompon
   public AbstractDuccComponent(String componentName, CamelContext context) {
     this.componentName = componentName;
     setContext(context);
-    logger = getLogger();
+    logger = getLogger();           // local to avoid global references
+    if ( logger == null ) {
+        System.out.println("Component '" + componentName + "' returned null logger; cannot boot.");
+        System.exit(1);
+    }
+    DuccService.setDuccLogger(logger);          // sets the global logger
   }
 
   /**
@@ -96,34 +104,26 @@ public abstract class AbstractDuccCompon
           throws Exception {
     context.addRoutes(new RouteBuilder() {
       public void configure() {
-        System.out.println("Configuring Admin Channel on Endpoint:" + endpoint);
-        onException(Exception.class).handled(true).process(new ErrorProcessor());
-
-        from(endpoint).routeId("AdminRoute").unmarshal().xstream()
-                .process(new AdminEventProcessor(delegate));
+          logger.info("configure", null, "Configuring Admin Channel on Endpoint:" + endpoint);
+          onException(Exception.class).handled(true).process(new ErrorProcessor());
+          
+          from(endpoint).routeId("AdminRoute").unmarshal().xstream()
+              .process(new AdminEventProcessor(delegate));
       }
     });
     
-    if (logger != null) {
-      logger.info("startAdminChannel", null, "Admin Channel Activated on endpoint:" + endpoint);
-    }
-  }
-
-  public DuccLogger getLogger() {
-    return null; // ducc components can override this
+    logger.info("startAdminChannel", null, "Admin Channel Activated on endpoint:" + endpoint);
   }
 
   public class ErrorProcessor implements Processor {
 
-    public void process(Exchange exchange) throws Exception {
-      // the caused by exception is stored in a property on the exchange
-      Throwable caused = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class);
-      caused.printStackTrace();
-      if (logger != null) {
-        logger.error("ErrorProcessor.process()", null, caused);
-
+      public void process(Exchange exchange) throws Exception {
+          // the caused by exception is stored in a property on the exchange
+          Throwable caused = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Throwable.class);
+          caused.printStackTrace();
+          logger.error("ErrorProcessor.process()", null, caused);
+          
       }
-    }
   }
 
   /**
@@ -204,9 +204,7 @@ public abstract class AbstractDuccCompon
     if (duccBrokerUrlDecoration != null && duccBrokerUrlDecoration.trim().length() > 0) {
       burl.append("?").append(duccBrokerUrlDecoration);
     }
-    if (logger != null) {
-      logger.info("composeBrokerUrl", null, "Ducc Composed Broker URL:" + System.getProperty("ducc.broker.url"));
-    }
+    logger.info("composeBrokerUrl", null, "Ducc Composed Broker URL:" + System.getProperty("ducc.broker.url"));
     System.setProperty("ducc.broker.url", burl.toString());
   }
 
@@ -244,64 +242,94 @@ public abstract class AbstractDuccCompon
     return context;
   }
 
+    /**
+     * Is the event apparently issue by a DUCC registered admin or not?
+     */
+    private boolean validateAdministrator(DuccAdminEvent event)
+    {
+    	String methodName = "validate_user";
+                
+        String user = event.getUser();                
+        byte[] auth_block= event.getAuthBlock();
+
+        try {
+            String userHome = null;
+            userHome = LinuxUtils.getUserHome(user);
+            
+            Crypto crypto = new Crypto(user, userHome,AccessType.READER);
+            String signature = (String)crypto.decrypt(auth_block);
+        
+            if ( ! user.equals(signature ))  {
+                return false;
+            }
+
+        } catch ( Throwable t ) {
+            logger.error(methodName, null, "Crypto failure:", t.toString());
+            return false;
+        }
+       
+        if ( ! user.equals(System.getProperty("user.name")) ) {
+            logger.warn(methodName, null, user, "is not DUCC process owner.");
+            return false;
+        }
+
+        return true;
+    }
+
   /**
    * Called when DuccAdminEvent is received on the Ducc Admin Channel
    * 
    * @param event
    *          - admin event
    */
-  public void onDuccAdminKillEvent(DuccAdminEvent event) throws Exception {
-    if (logger != null) {
-      logger.info("onDuccAdminKillEvent", null,"\n\tDucc Process:" + componentName
-              + " Received Kill Event - Cleaning Up and Stopping\n");
-    }
-    stop();
-    System.exit(2);
+  public void onDuccAdminKillEvent(DuccAdminEvent event) throws Exception 
+    {
+	  String methodName = "onDuccAdminKillEvent";
+        logger.info("onDuccAdminKillEvent", null,"\n\tDucc Process:" + componentName);
+        if ( ! validateAdministrator(event) ) {
+            logger.info(methodName, null, "Failed authentication/authorization Ignoring shutdown event.");
+            return;
+        }
+        logger.info(methodName, null, "Received Kill Event - Cleaning Up and Stopping");
+        stop();
+        System.exit(2);
   }
 
   public void start(DuccService service) throws Exception {
     start(service, null);
   }
-
+ 
   public void start(DuccService service, String[] args) throws Exception {
 	    String endpoint = null;
 	    this.service = service;
 	    if (System.getProperty("ducc.deploy.components") != null
 	            && !System.getProperty("ducc.deploy.components").equals("uima-as")
 	            && (endpoint = System.getProperty("ducc.admin.endpoint")) != null) {
-	      if (logger != null) {
 	        logger.info("start", null, ".....Starting Admin Channel on endpoint:" + endpoint);
-	      }
-	      startAdminChannel(endpoint, this);
-	      System.out.println(".....Starting Admin Channel on endpoint:" + endpoint);
-	    }
-	    if (logger != null) {
-	      logger.info("start",null, ".....Starting Camel Context");
+            startAdminChannel(endpoint, this);
+            logger.info("start", null, "Admin Channel started on endpoint:" + endpoint);
 	    }
+        logger.info("start",null, ".....Starting Camel Context");
 	    // Start Camel
 	    context.start();
 	    List<Route> routes  = context.getRoutes();
 	   
 	    for( Route route : routes ) {
 	    	 context.startRoute(route.getId());
-	    	 if (logger != null) {
-	    	      logger.info("start",null, "---OR Route in Camel Context-"+route.getEndpoint().getEndpointUri()+" Route State:"+context.getRouteStatus(route.getId()));
-	    	    }
-	    }
-	    if (logger != null) {
-	      logger.info("start",null, "..... Camel Initialized and Started");
+             logger.info("start",null, "---OR Route in Camel Context-"+route.getEndpoint().getEndpointUri()+" Route State:"+context.getRouteStatus(route.getId()));
 	    }
+        logger.info("start",null, "..... Camel Initialized and Started");
+
 	    // Instrument this process with JMX Agent. The Agent will
 	    // find an open port and start JMX Connector allowing
 	    // jmx clients to connect to this jvm using standard
 	    // jmx connect url. This process does not require typical
 	    // -D<jmx params> properties. Currently the JMX does not
 	    // use security allowing all clients to connect.
-	    if (logger != null) {
-	        logger.info("start",null, "..... Starting JMX Agent");
-	      }
+
+        logger.info("start",null, "..... Starting JMX Agent");
 	    processJmxUrl = startJmxAgent();
-	    if (logger != null && processJmxUrl != null && processJmxUrl.trim().length() > 0 ) {
+	    if (processJmxUrl != null && processJmxUrl.trim().length() > 0 ) {
 	        logger.info("start",null, "..... JMX Agent Ready");
 	        logger.info("start",null, "Connect jConsole to this process using JMX URL:" + processJmxUrl);
 	      }
@@ -323,94 +351,77 @@ public abstract class AbstractDuccCompon
     return processJmxUrl;
   }
 
-  public void stop() throws Exception {
+    public void stop() 
+        throws Exception 
+    {
+        String methodName = "stop";
+
 	    synchronized (monitor) {
 	        if (stopping) {
-	          return;
+                return;
 	        }
 	        stopping = true;
-	      }
-    if (getLogger() != null) {
-      logger = getLogger();
-    }
-    if (logger == null) {
-      System.out.println("----------stop() called");
-    } else {
-      logger.info("stop", null, "----------stop() called");
-    }
- 
-    try {
-        if (logger == null) {
-          System.out.println("Stopping Camel Routes");
-        } else {
-          logger.info("stop", null, "Stopping Camel Routes");
-        }
-
-        List<Route> routes = context.getRoutes();
-        for (Route route : routes) {
-          route.getConsumer().stop();
-          route.getEndpoint().stop();
         }
+        logger.info(methodName, null, "----------stop() called");
+ 
+        try {
+            logger.info(methodName, null, "Stopping Camel Routes");
+            List<Route> routes = context.getRoutes();
+            for (Route route : routes) {
+                route.getConsumer().stop();
+                route.getEndpoint().stop();
+            }
 
-        ActiveMQComponent amqc = (ActiveMQComponent) context.getComponent("activemq");
-        amqc.stop();
-        amqc.shutdown();
-
-        if (logger == null) {
-          System.out.println("Stopping Camel Context");
-        } else {
-          logger.info("stop", null, "Stopping Camel Context");
-        }
-        context.stop();
-        if (logger == null) {
-          System.out.println("Camel Context Stopped");
-        } else {
-          logger.info("stop", null, "Camel Context Stopped");
-        }
+            ActiveMQComponent amqc = (ActiveMQComponent) context.getComponent("activemq");
+            amqc.stop();
+            amqc.shutdown();
+
+            logger.info(methodName, null, "Stopping Camel Context");
+            context.stop();
+            logger.info(methodName, null, "Camel Context Stopped");
+
+            ObjectName name = new ObjectName(
+                                             "org.apache.uima.ducc.service.admin.jmx:type=DuccComponentMBean,name="
+                                             + getClass().getSimpleName());
+            MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
+            Set<?> set = mbs.queryMBeans(name, null);
+            if (set.size() > 0) {
+                mbs.unregisterMBean(name);
+            }
 
-        ObjectName name = new ObjectName(
-                "org.apache.uima.ducc.service.admin.jmx:type=DuccComponentMBean,name="
-                        + getClass().getSimpleName());
-        MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
-        Set<?> set = mbs.queryMBeans(name, null);
-        if (set.size() > 0) {
-          mbs.unregisterMBean(name);
-        }
+            if (jmxConnector != null) {
+                jmxConnector.stop();
+            }
 
-        if (jmxConnector != null) {
-          jmxConnector.stop();
-        }
+            if (service != null) {
+                service.stop();
+            }
+            logger.info(methodName, null, "Component cleanup completed - terminating process");
 
-        if (service != null) {
-          service.stop();
-        }
-        if (logger == null) {
-          System.out.println("Component cleanup completed - terminating process");
-        } else {
-          logger.info("stop", null, "Component cleanup completed - terminating process");
+        } catch (Exception e) {
+            // It's a sensitive time, let's emit twice just for luck
+            System.out.println("----------------------------------------------------------------------------------------------------");
+            e.printStackTrace();
+            System.out.println("----------------------------------------------------------------------------------------------------");
+            logger.error(methodName, null, e);
         }
-
-      } catch (Exception e) {
-        e.printStackTrace();
-      }
-    
-    
-    long waitTime=0;
-   if ( System.getProperty("WaitTime") != null) {
-	   try {
-		   synchronized( this ) {
-			   waitTime = Long.valueOf(System.getProperty("WaitTime"));
-			   if ( waitTime > 0) {
-				   wait(waitTime);
-			   }
-		   }
-	   } catch( Exception e) {
+        
+        long waitTime=0;
+        if ( System.getProperty("WaitTime") != null) {
+            try {
+                synchronized( this ) {
+                    waitTime = Long.valueOf(System.getProperty("WaitTime"));
+                    if ( waitTime > 0) {
+                        wait(waitTime);
+                    }
+                }
+            } catch( Exception e) {
 		   
-	   }
+            }
 	   
-   }
-   //  System.exit(0);
-  }
+        }
+        //  System.exit(0);
+    }
 
   public void handleUncaughtException(Exception e) {
     e.printStackTrace();
@@ -460,9 +471,7 @@ public abstract class AbstractDuccCompon
             jmxConnector.start();
         } catch (Exception e) {
         	url = null;
-        	if ( logger != null ) {
-        		logger.error("startJmxAgent", null, "Unable to Start JMX Connector. Running with *No* JMX Connectivity");
-        	}
+            logger.error("startJmxAgent", null, "Unable to Start JMX Connector. Running with *No* JMX Connectivity");
         }
       if ( url == null ) {
     	  return "";    // empty string
@@ -488,15 +497,11 @@ public abstract class AbstractDuccCompon
     }
 
     public void process(final Exchange exchange) throws Exception {
-    	System.out.println("Component: Received Admin Message of type:"+exchange.getIn().getBody().getClass().getName());
-
-    	if (logger != null) {
-
         logger.info("AdminEventProcessor.process()", null, "Received Admin Message of Type:"
-                + exchange.getIn().getBody().getClass().getName());
-      }
-      if (exchange.getIn().getBody() instanceof DuccAdminEventKill) {
-        // start a new thread to process the admin kill event. Need to do this
+                    + exchange.getIn().getBody().getClass().getName());
+        
+        if (exchange.getIn().getBody() instanceof DuccAdminEventKill) {
+            // start a new thread to process the admin kill event. Need to do this
         // so that Camel thread associated with admin channel can go back to
         // its pool. Otherwise, we will not be able to stop the admin channel.
         Thread th = new Thread(new Runnable() {
@@ -532,9 +537,8 @@ public abstract class AbstractDuccCompon
 
     public void run() {
       try {
-        if (logger != null) {
           logger.info("start",null, "DUCC Service Caught Kill Signal - Registering Killer Task and Stopping ...");
-        }
+
         // schedule a kill task which will kill this process after 1 minute
         Timer killTimer = new Timer();
         killTimer.schedule(new KillerThreadTask(logger), 60 * 1000);
@@ -555,9 +559,8 @@ public abstract class AbstractDuccCompon
     }
     public void run() {
       try {
-        if (logger != null) {
           logger.info("start",null,"Process is about to kill itself via Runtime.getRuntime().halt()");
-        }
+
         // Take the jvm down hard. This call will not
         // invoke registered ShutdownHooks and just
         // terminates the jvm.

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/DuccComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/DuccComponent.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/DuccComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/DuccComponent.java Mon Jun 23 20:00:07 2014
@@ -19,10 +19,12 @@
 package org.apache.uima.ducc.common.component;
 
 import org.apache.camel.CamelContext;
+import org.apache.uima.ducc.common.utils.DuccLogger;
 
 public interface DuccComponent extends DuccLifecycle {
 	public void setContext( CamelContext context);
 	public CamelContext getContext();
 	public void cleanup(Throwable reason);
 	public void handleUncaughtException(Exception e);
+    public DuccLogger getLogger();
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccAdmin.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccAdmin.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccAdmin.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccAdmin.java Mon Jun 23 20:00:07 2014
@@ -49,9 +49,11 @@ import org.apache.uima.ducc.common.admin
 import org.apache.uima.ducc.common.authentication.BrokerCredentials;
 import org.apache.uima.ducc.common.authentication.BrokerCredentials.Credentials;
 import org.apache.uima.ducc.common.component.AbstractDuccComponent;
+import org.apache.uima.ducc.common.crypto.Crypto;
 import org.apache.uima.ducc.common.launcher.ssh.DuccRemoteLauncher;
 import org.apache.uima.ducc.common.launcher.ssh.DuccRemoteLauncher.ProcessCompletionCallback;
 import org.apache.uima.ducc.common.launcher.ssh.DuccRemoteLauncher.ProcessCompletionResult;
+import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.Utils;
 
 import com.thoughtworks.xstream.XStream;
@@ -63,6 +65,7 @@ import com.thoughtworks.xstream.XStream;
  * DuccAdmin -killAll - stops all Ducc components
  * DuccAdmin -quiesceAgents <node1,node2..>- quiesces named nodes
  */
+
 public class DuccAdmin extends AbstractDuccComponent implements
 		ProcessCompletionCallback {
 	public static final String FileSeparator = System
@@ -134,6 +137,11 @@ public class DuccAdmin extends AbstractD
 		}
 	}
 
+    public DuccLogger getLogger()
+    {
+        return new DuccLogger("Admin");
+    }
+
 	/**
 	 * Sends the DuccAdminEvent (serialized as String) to the admin endpoint
 	 * 
@@ -208,12 +216,20 @@ public class DuccAdmin extends AbstractD
 		// send kill event to all Ducc components via Ducc Admin Channel. This
 		// call is
 		// non-blocking
-		dispatch(serializeAdminEvent(new DuccAdminEventKill()));
+        String user = System.getProperty("user.name");
+    	Crypto crypto = new Crypto(user,System.getProperty("user.home"));
+        byte[] cypheredMessage = crypto.encrypt(user);
+
+		dispatch(serializeAdminEvent(new DuccAdminEventKill(user, cypheredMessage)));
 		System.out.println("DuccAdmin sent Kill to all Ducc processes ...");
 	}
 
 	private void quiesceAgents(String nodes) throws Exception {
-    dispatch(serializeAdminEvent(new DuccAdminEventStopMetrics(nodes)));
+        String user = System.getProperty("user.name");
+    	Crypto crypto = new Crypto(user,System.getProperty("user.home"));
+        byte[] cypheredMessage = crypto.encrypt(user);
+
+	dispatch(serializeAdminEvent(new DuccAdminEventStopMetrics(nodes, user, cypheredMessage)));
     System.out.println("DuccAdmin sent Quiesce request to Ducc Agents ...");
 	}
 	/**

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccRmAdmin.java Mon Jun 23 20:00:07 2014
@@ -39,7 +39,9 @@ import org.apache.uima.ducc.common.admin
 import org.apache.uima.ducc.common.authentication.BrokerCredentials;
 import org.apache.uima.ducc.common.authentication.BrokerCredentials.Credentials;
 import org.apache.uima.ducc.common.component.AbstractDuccComponent;
+import org.apache.uima.ducc.common.crypto.Crypto;
 import org.apache.uima.ducc.common.exception.DuccRuntimeException;
+import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.Utils;
 
 import com.thoughtworks.xstream.XStream;
@@ -54,6 +56,9 @@ public class DuccRmAdmin 
 	private ProducerTemplate pt;
 	private String targetEndpoint;
 
+    String user;
+    byte[] cypheredMessage;
+
 	public DuccRmAdmin(CamelContext context, String epname)
     {
 		super("DuccServiceReaper", context);
@@ -111,6 +116,11 @@ public class DuccRmAdmin 
 		}
 	}
 
+    public DuccLogger getLogger()
+    {
+        return new DuccLogger("Admin");
+    }
+
     private String marshallEvent(DuccAdminEvent duccEvent) 
         throws Exception 
     {
@@ -187,7 +197,7 @@ public class DuccRmAdmin 
         String[] nodes = new String[args.length - 1];
         for ( int i = 1; i < args.length; i++) nodes[i-1] = args[i];  // take a slice of the array
 
-        RmAdminVaryOff vo = new RmAdminVaryOff(nodes);
+        RmAdminVaryOff vo = new RmAdminVaryOff(nodes, user, cypheredMessage);
 		RmAdminReply reply = dispatchAndWaitForReply(vo);
 		System.out.println(reply.getResponse());
 	}
@@ -203,7 +213,7 @@ public class DuccRmAdmin 
         String[] nodes = new String[args.length - 1];
         for ( int i = 1; i < args.length; i++) nodes[i-1] = args[i];  // take a slice of the array
 
-        RmAdminVaryOn vo = new RmAdminVaryOn(nodes);
+        RmAdminVaryOn vo = new RmAdminVaryOn(nodes, user, cypheredMessage);
 		RmAdminReply reply = dispatchAndWaitForReply(vo);
 		System.out.println(reply.getResponse());
 	}
@@ -216,8 +226,7 @@ public class DuccRmAdmin 
 	public RmAdminQLoadReply qload()
 		throws Exception 
     {
-
-        RmAdminQLoad ql = new RmAdminQLoad();
+        RmAdminQLoad ql = new RmAdminQLoad(user, cypheredMessage);
 		return (RmAdminQLoadReply) dispatchAndWaitForReply(ql);
 	}
 
@@ -229,7 +238,7 @@ public class DuccRmAdmin 
 	public RmAdminQOccupancyReply qoccupancy()
 		throws Exception 
     {
-        RmAdminQOccupancy qo = new RmAdminQOccupancy();
+        RmAdminQOccupancy qo = new RmAdminQOccupancy(user, cypheredMessage);
 		return (RmAdminQOccupancyReply) dispatchAndWaitForReply(qo);
 	}
 
@@ -237,6 +246,11 @@ public class DuccRmAdmin 
     public void run(String[] args)
     	throws Exception
     {
+
+        user = System.getProperty("user.name");
+    	Crypto crypto = new Crypto(user,System.getProperty("user.home"));
+        cypheredMessage = crypto.encrypt(user);
+
         if ( args[0].equals("--varyoff")) {
             if ( args.length < 2 ) usage("Missing node list");
             varyoff(args);

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=1604919&r1=1604918&r2=1604919&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 Mon Jun 23 20:00:07 2014
@@ -56,21 +56,36 @@ public class DuccService extends Abstrac
 	public static final String DUCC_DEPLOY_COMPONENTS="ducc.deploy.components";
 
 	private Main main;
-  private DuccLogger logger;
-  private ApplicationContext context;
-  Map<String,AbstractDuccComponent> duccComponents = null;
+    private static DuccLogger globalLogger = null;
+    private ApplicationContext context;
+    Map<String,AbstractDuccComponent> duccComponents = null;
 	public DuccService() {
 		super("");
-
-        /**
-         * Initialize the DuccLogger AFTER the properties are set.
-         */
-        logger = new DuccLogger(DuccService.class);		
         
         //	Plugin UncaughtExceptionHandler to handle OOM and any 
         //  unhandled runtime exceptions 
         Thread.currentThread().setUncaughtExceptionHandler(this);
 	}
+
+    public static DuccLogger getDuccLogger()
+    {
+        return globalLogger;
+    }
+
+    public static void setDuccLogger(DuccLogger l)
+    {
+        globalLogger = l;
+    }
+
+    public DuccLogger getLogger()
+    {
+        if ( getDuccLogger() == null ) {
+            return new DuccLogger(DuccService.class);
+        } else {
+            return getDuccLogger();
+        }
+    }
+
 	/**
 	 * Exits process if given configuration class is either null or not set (empty).
 	 *  
@@ -134,17 +149,17 @@ public class DuccService extends Abstrac
 			context.getBeansOfType(AbstractDuccComponent.class);
 		//	Start all components
 		for(Map.Entry<String, AbstractDuccComponent> duccComponent: duccComponents.entrySet()) {
-			logger.info(methodName, null, "... Starting Component: ", duccComponent.getKey());
+			getDuccLogger().info(methodName, null, "... Starting Component: ", duccComponent.getKey());
 			if ( args != null && args.length > 0 ) {
 				duccComponent.getValue().start(this,args);
 			} else {
 				duccComponent.getValue().start(this);
 			}
-			logger.info(methodName, null, "... Component started: ", duccComponent.getKey());
+			getDuccLogger().info(methodName, null, "... Component started: ", duccComponent.getKey());
 		}
 		
     // run until you terminate the JVM
-    logger.info(methodName, null, "Starting Camel. Use ctrl + c to terminate the JVM.\n");
+    getDuccLogger().info(methodName, null, "Starting Camel. Use ctrl + c to terminate the JVM.\n");
     main.run();
        
   }
@@ -166,7 +181,7 @@ public class DuccService extends Abstrac
 				ctx.stop();
 			}
 			main.stop();
-			logger.shutdown();
+			getDuccLogger().shutdown();
 		}
 	}
 	

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccLogger.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccLogger.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccLogger.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccLogger.java Mon Jun 23 20:00:07 2014
@@ -80,6 +80,7 @@ public class DuccLogger
         //
         // If all else fails, set it to "DUCC"
         //
+    	System.out.println("Creating logger '" + claz + "' with component " + component);
         if ( component == null ) {
             component = (String) MDC.get("COMPONENT");
             if ( component == null ) {

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-db/src/main/java/org/apache/uima/ducc/db/DbComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-db/src/main/java/org/apache/uima/ducc/db/DbComponent.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-db/src/main/java/org/apache/uima/ducc/db/DbComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-db/src/main/java/org/apache/uima/ducc/db/DbComponent.java Mon Jun 23 20:00:07 2014
@@ -57,7 +57,12 @@ implements IDbComponent {
 		super("DB Daemon", context);
 		initialize();
 	}
-	
+
+    public DuccLogger getLogger()
+    {
+        return logger;
+    }
+
 	public DbPortal getDbPortal() {
 		return dbPortal;
 	}

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/ping/SamplePing.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/ping/SamplePing.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/ping/SamplePing.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/ping/SamplePing.java Mon Jun 23 20:00:07 2014
@@ -45,7 +45,6 @@ import org.apache.uima.ducc.cli.ServiceS
 import org.apache.uima.ducc.cli.UimaAsServiceMonitor;
 import org.apache.uima.ducc.common.IServiceStatistics;
 import org.apache.uima.ducc.common.TcpStreamHandler;
-import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.DuccProperties;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.util.Level;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/ProcessManagerComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/ProcessManagerComponent.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/ProcessManagerComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/ProcessManagerComponent.java Mon Jun 23 20:00:07 2014
@@ -33,7 +33,6 @@ import org.apache.uima.ducc.common.utils
 import org.apache.uima.ducc.transport.cmdline.ICommandLine;
 import org.apache.uima.ducc.transport.cmdline.JavaCommandLine;
 import org.apache.uima.ducc.transport.dispatcher.DuccEventDispatcher;
-import org.apache.uima.ducc.transport.event.AbstractDuccEvent;
 import org.apache.uima.ducc.transport.event.DuccEvent;
 import org.apache.uima.ducc.transport.event.DuccJobsStateEvent;
 import org.apache.uima.ducc.transport.event.PmStateDuccEvent;
@@ -64,7 +63,7 @@ implements ProcessManager {
 	
 	private static String header;
 	private static String tbl=String.format("%1$-158s"," ").replace(" ", "-");
-	public DuccLogger logger = new DuccLogger(this.getClass(), DuccComponent);
+	public static DuccLogger logger = new DuccLogger(ProcessManagerComponent.class, DuccComponent);
 	//	Dispatch component used to send messages to remote Agents
 	private DuccEventDispatcher eventDispatcher;
   private int shareQuantum;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/config/ProcessManagerConfiguration.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/config/ProcessManagerConfiguration.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/config/ProcessManagerConfiguration.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/config/ProcessManagerConfiguration.java Mon Jun 23 20:00:07 2014
@@ -159,7 +159,7 @@ public class ProcessManagerConfiguration
 		return new RouteBuilder() {
 		      public void configure() {
 		    	String methodName = "configure";
-          final Predicate blastGuard = new DuccBlastGuardPredicate(pm.logger);
+          final Predicate blastGuard = new DuccBlastGuardPredicate(pm.getLogger());
 
 		    	logger.trace(methodName, null,"timer:pmStateDumpTimer?fixedRate=true&period=" + statePublishRate);
 		    	logger.trace(methodName, null,"endpoint=" + targetEndpointToReceiveProcessManagerStateUpdate);

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/event/ProcessManagerEventListener.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/event/ProcessManagerEventListener.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/event/ProcessManagerEventListener.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-pm/src/main/java/org/apache/uima/ducc/pm/event/ProcessManagerEventListener.java Mon Jun 23 20:00:07 2014
@@ -54,7 +54,7 @@ implements DuccEventDelegateListener { 
 	public void onJobManagerStateUpdate(@Body OrchestratorStateDuccEvent duccEvent) {
 		// process OR state only if the JD has been assigned
 		if ( !duccEvent.getWorkMap().isJobDriverNodeAssigned() ) {
-			((ProcessManagerComponent)processManager).logger.info("onJobManagerStateUpdate", null, "Orchestrator JD node not assigned. Ignoring Orchestrator state update");
+			((ProcessManagerComponent)processManager).getLogger().info("onJobManagerStateUpdate", null, "Orchestrator JD node not assigned. Ignoring Orchestrator state update");
 			return;
 		}
 		processManager.dispatchStateUpdateToAgents(duccEvent.getWorkMap().getMap(), duccEvent.getSequence());

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/ResourceManagerComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/ResourceManagerComponent.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/ResourceManagerComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-rm/src/main/java/org/apache/uima/ducc/rm/ResourceManagerComponent.java Mon Jun 23 20:00:07 2014
@@ -25,7 +25,6 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.uima.ducc.common.admin.event.DuccAdminEvent;
 import org.apache.uima.ducc.common.admin.event.RmAdminQLoad;
 import org.apache.uima.ducc.common.admin.event.RmAdminQOccupancy;
 import org.apache.uima.ducc.common.admin.event.RmAdminReply;
@@ -137,7 +136,7 @@ public class ResourceManagerComponent 
             Object body = exchange.getIn().getBody();
             logger.info(methodName, null, "Received Admin Message of Type:",  body.getClass().getName());
 
-            DuccAdminEvent reply = null;
+            RmAdminReply reply = null;
             if (body instanceof RmAdminVaryOff) {
              	RmAdminVaryOff vo = (RmAdminVaryOff) body;
                 reply = new RmAdminReply(scheduler.varyoff(vo.getNodes()));

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java?rev=1604919&r1=1604918&r2=1604919&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java Mon Jun 23 20:00:07 2014
@@ -130,7 +130,11 @@ public class ServiceManagerComponent 
         handler = new ServiceHandler(this);
 	}
 
-
+	public DuccLogger getLogger()
+	{
+		return logger;
+	}
+	
     /**
      * Initialization tasks:
      * - read all the service descriptors