You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by cw...@apache.org on 2015/05/08 20:25:36 UTC

svn commit: r1678416 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/ uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/

Author: cwiklik
Date: Fri May  8 18:25:35 2015
New Revision: 1678416

URL: http://svn.apache.org/r1678416
Log:
UIMA-4386 modified jmx query to fetch AE MBeans which a polled for init status until the AE state changes to READY. Modified code used to make a decision about when to send node inventory

Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/JmxAEProcessInitMonitor.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java?rev=1678416&r1=1678415&r2=1678416&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/processors/DefaultNodeInventoryProcessor.java Fri May  8 18:25:35 2015
@@ -19,12 +19,14 @@
 package org.apache.uima.ducc.agent.processors;
 
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.camel.Exchange;
 import org.apache.uima.ducc.agent.NodeAgent;
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.id.DuccId;
+import org.apache.uima.ducc.transport.agent.IUimaPipelineAEComponent;
 import org.apache.uima.ducc.transport.event.NodeInventoryUpdateDuccEvent;
 import org.apache.uima.ducc.transport.event.common.IDuccProcess;
 import org.apache.uima.ducc.transport.event.common.IProcessState.ProcessState;
@@ -93,6 +95,40 @@ public class DefaultNodeInventoryProcess
 						} else if ( !currentProcess.getValue().getProcessState().equals(previousProcess.getProcessState())) {
 							inventoryChanged = true;
 							break;
+						} else {
+							List<IUimaPipelineAEComponent> breakdown = 
+									currentProcess.getValue().getUimaPipelineComponents();
+							if ( breakdown != null && breakdown.size() > 0 ) { 
+								List<IUimaPipelineAEComponent> previousBreakdown = 
+										previousProcess.getUimaPipelineComponents();
+								if ( previousBreakdown == null || previousBreakdown.size() == 0 || 
+										breakdown.size() != previousBreakdown.size()) {
+									inventoryChanged = true;
+								} else {
+									for (IUimaPipelineAEComponent uimaAeState : breakdown ) {
+                                      boolean found = false;
+									  for (IUimaPipelineAEComponent previousUimaAeState : previousBreakdown ) {
+							 		    if ( uimaAeState.getAeName().equals(previousUimaAeState.getAeName()) ) {
+										  found = true;
+										  if ( !uimaAeState.getAeState().equals(previousUimaAeState.getAeState()) ||
+											   uimaAeState.getInitializationTime() != previousUimaAeState.getInitializationTime() ) {
+										    inventoryChanged = true;
+											break;
+										  }
+									    }
+									  }
+									  if ( !found ) {
+										inventoryChanged = true;
+									  }
+										  
+									  if ( inventoryChanged ) {
+										break;
+									  }
+
+								   }
+								}
+								
+							}
 						}
 					} else {
 						// New inventory contains a process not in the previous snapshot
@@ -102,6 +138,7 @@ public class DefaultNodeInventoryProcess
 				}
 			}
 		}
+		
 		//	Get this inventory snapshot
 		previousInventory = inventory;
 		//	Broadcast inventory if there is a change or configured number of epochs

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/JmxAEProcessInitMonitor.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/JmxAEProcessInitMonitor.java?rev=1678416&r1=1678415&r2=1678416&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/JmxAEProcessInitMonitor.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/JmxAEProcessInitMonitor.java Fri May  8 18:25:35 2015
@@ -65,7 +65,8 @@ public class JmxAEProcessInitMonitor imp
 			// enable
 			// finding deployed uima components.
 			ObjectName uimaServicePattern = new ObjectName(
-					"org.apache.uima:type=ee.jms.services,*");
+					"org.apache.uima:*");
+//		"org.apache.uima:type=ee.jms.services,*");
 			// Fetch UIMA AS MBean names from JMX Server that match above
 			// name pattern
 			Set<ObjectInstance> mbeans = new HashSet<ObjectInstance>(
@@ -75,7 +76,7 @@ public class JmxAEProcessInitMonitor imp
 			for (ObjectInstance instance : mbeans) {
 				String targetName = instance.getObjectName()
 						.getKeyProperty("name");
-				if (targetName.endsWith("FlowController")) { // skip FC
+				if (targetName.endsWith("FlowController") || targetName.trim().endsWith("DUCC.Job")) { // skip FC
 					continue;
 				}
 				// Only interested in AEs
@@ -165,7 +166,7 @@ public class JmxAEProcessInitMonitor imp
 							componentsToDelete.add(aeState);
 						}
 					}
-					DuccService.getDuccLogger(this.getClass().getName()).debug(
+					DuccService.getDuccLogger(this.getClass().getName()).info(
 							"UimaAEJmxMonitor.run()",
 							null,
 							"---- AE Name:" + proxy.getName()
@@ -180,7 +181,7 @@ public class JmxAEProcessInitMonitor imp
 			}
 			howManySeenSoFar = 1; // reset error counter
 			if (updateAgent) {
-				DuccService.getDuccLogger(this.getClass().getName()).debug("UimaAEJmxMonitor.run()", null,
+				DuccService.getDuccLogger(this.getClass().getName()).info("UimaAEJmxMonitor.run()", null,
 						"---- Publishing UimaPipelineAEComponent List - size="
 								+ aeStateList.size());
 				try {