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 2016/10/27 16:14:30 UTC

svn commit: r1766852 - /uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java

Author: cwiklik
Date: Thu Oct 27 16:14:29 2016
New Revision: 1766852

URL: http://svn.apache.org/viewvc?rev=1766852&view=rev
Log:
UIMA-5136 modified registration of JMX MBeans to segregate multiple pipelines into distinct hierarchies. This is done to support cleanup of each pipeline without effecting others that may be deployed at the time,

Modified:
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java?rev=1766852&r1=1766851&r2=1766852&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java Thu Oct 27 16:14:29 2016
@@ -116,6 +116,8 @@ public abstract class BaseAnalysisEngine
   
   private static final long DoNotProcessTTL = 30 * 60 * 1000; // 30 minute time to live
 
+  private static int serviceInstance=0;
+  
   protected volatile ControllerLatch latch = new ControllerLatch(this);
 
   protected ConcurrentHashMap<String,Long> statsMap = new ConcurrentHashMap<String,Long>();
@@ -384,7 +386,10 @@ public abstract class BaseAnalysisEngine
 
     paramsMap = new HashMap();
     if (aJmxManagement == null) {
-      jmxManagement = new JmxManager(getJMXDomain());
+    	if ( isTopLevelComponent()) {
+        	serviceInstance++;
+    	}
+      jmxManagement = new JmxManager(getJMXDomain(serviceInstance));
     } else {
       jmxManagement = aJmxManagement;
       if (jmxManagement.getMBeanServer() != null) {
@@ -407,8 +412,10 @@ public abstract class BaseAnalysisEngine
       initialize(resourceSpecifier, paramsMap);
       AnalysisEngineManagementImpl mbean = (AnalysisEngineManagementImpl) getUimaContextAdmin()
               .getManagementInterface();
-      // Override uima core jmx domain setting
-      mbean.setName(getComponentName(), getUimaContextAdmin(), jmxManagement.getJmxDomain());
+      if (this instanceof AggregateAnalysisEngineController) {
+          // Override uima core jmx domain setting
+          mbean.setName(getComponentName(), getUimaContextAdmin(), jmxManagement.getJmxDomain());
+      }
 
       if (resourceSpecifier instanceof AnalysisEngineDescription) {
         // Is this service a CAS Multiplier?
@@ -700,14 +707,27 @@ public abstract class BaseAnalysisEngine
    */
 
   public String getJMXDomain() {
+	  return getJMXDomain(serviceInstance);
+	  /*
     // Keep calling controllers until the top level component is reached
     if (!isTopLevelComponent()) {
       return parentController.getJMXDomain();
     } else {
+    	serviceInstance++;
       // The domain includes the name of the top level component
-      return "org.apache.uima:type=ee.jms.services,s=" + getComponentName() + " Uima EE Service,";
+      return "org.apache.uima:type=ee.jms.services,s=" + getComponentName() + " Uima EE Service "+serviceInstance+",";
     }
+    */
   }
+  public String getJMXDomain(int sequence) {
+	    // Keep calling controllers until the top level component is reached
+	    if (!isTopLevelComponent()) {
+	      return parentController.getJMXDomain();
+	    } else {
+	      // The domain includes the name of the top level component
+	      return "org.apache.uima:type=ee.jms.services,s=" + getComponentName() + " Uima EE Service "+sequence+",";
+	    }
+	  }
 
   public JmxManagement getManagementInterface() {
     return jmxManagement;
@@ -769,9 +789,14 @@ public abstract class BaseAnalysisEngine
    * registry.
    */
   public String getJmxContext() {
+	  String si = "";
+  	if ( serviceInstance > 1 ) {
+  		si = String.valueOf(serviceInstance);
+  	}
     if (isTopLevelComponent()) {
+    	
       if (this instanceof AggregateAnalysisEngineController) {
-        return "p0=" + getComponentName() + " Components";
+        return "p0=" + getComponentName() +si+ " Components";
       } else if (this instanceof PrimitiveAnalysisEngineController) {
         return "p0=" + getComponentName() + " Uima EE";
       }
@@ -795,7 +820,7 @@ public abstract class BaseAnalysisEngine
         thisComponentName = ((AggregateAnalysisEngineController) parentController)
                 .lookUpDelegateKey(endpointName);
       }
-      return parentContext + ",p" + index + "=" + thisComponentName + " Components";
+      return parentContext + ",p" + index + "=" + thisComponentName +si+ " Components";
     } else {
       return parentContext + ",p" + index + "=";
     }