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/24 17:45:36 UTC

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

Author: cwiklik
Date: Mon Oct 24 17:45:36 2016
New Revision: 1766433

URL: http://svn.apache.org/viewvc?rev=1766433&view=rev
Log:
UIMA-AS 5126 improved lifecycle of UIMA-AS MBeans. When stopping a pipeline, the code removes MBeans related to the pipeline being stopped and keeping the other running

Modified:
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/AsynchAECasManager_impl.java
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/OutputChannel.java
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineController.java
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineControllerAdapter.java
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/AsynchAECasManager_impl.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/AsynchAECasManager_impl.java?rev=1766433&r1=1766432&r2=1766433&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/AsynchAECasManager_impl.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/AsynchAECasManager_impl.java Mon Oct 24 17:45:36 2016
@@ -202,4 +202,9 @@ public class AsynchAECasManager_impl imp
   public boolean getDisableJCasCache() {
     return disableJCasCache;
   }
+  public void destroy() {
+	  try {
+		  ((EECasManager_impl)casManager).destroy();
+	  } catch( Throwable t) {}
+  }
 }

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java?rev=1766433&r1=1766432&r2=1766433&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/EECasManager_impl.java Mon Oct 24 17:45:36 2016
@@ -97,7 +97,9 @@ public class EECasManager_impl extends C
     }
     return theSize;
   }
-
+  public void destroy() throws Throwable {
+	  finalize();
+  }
   protected void finalize() throws Throwable {
     super.finalize();
     getCasToCasPoolMap().clear();

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/OutputChannel.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/OutputChannel.java?rev=1766433&r1=1766432&r2=1766433&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/OutputChannel.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/OutputChannel.java Mon Oct 24 17:45:36 2016
@@ -51,5 +51,7 @@ public interface OutputChannel extends C
   public void stop();
 
   public void cancelTimers();
+  
+  public boolean isStopping();
 
 }

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java?rev=1766433&r1=1766432&r2=1766433&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java Mon Oct 24 17:45:36 2016
@@ -2924,7 +2924,7 @@ public class AggregateAnalysisEngineCont
             flowControllerDescriptor, analysisEngineMetaDataMap, getUimaContextAdmin(),
             ((AnalysisEngineDescription) getResourceSpecifier()).getSofaMappings(), super
                     .getManagementInterface());
-//    super.addUimaObject(flowControllerContainer.getMBean().getUniqueMBeanName());
+    super.addUimaObject(flowControllerContainer.getMBean().getUniqueMBeanName());
     
     if (isTopLevelComponent()) {
       //  Add FC's meta

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineController.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineController.java?rev=1766433&r1=1766432&r2=1766433&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineController.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineController.java Mon Oct 24 17:45:36 2016
@@ -235,4 +235,10 @@ public interface AnalysisEngineControlle
   public void warmUp(String warmUpDataPath, CountDownLatch warmUpLatch) throws Exception;
   
   public UimaContext getUimaContext();
+  
+  public void addUimaObject(String objectName ) throws Exception;
+  
 }
+  
+  
+  
\ No newline at end of file

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineControllerAdapter.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineControllerAdapter.java?rev=1766433&r1=1766432&r2=1766433&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineControllerAdapter.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AnalysisEngineControllerAdapter.java Mon Oct 24 17:45:36 2016
@@ -433,4 +433,10 @@ public abstract class AnalysisEngineCont
   public ServiceState getState() {
     return null;
   }
+  
+  public void addUimaObject(String objectName ) throws Exception {
+	  
+  }
+   
+  
 }

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=1766433&r1=1766432&r2=1766433&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 Mon Oct 24 17:45:36 2016
@@ -47,14 +47,15 @@ import org.apache.uima.UIMAFramework;
 import org.apache.uima.UimaContext;
 import org.apache.uima.UimaContextAdmin;
 import org.apache.uima.aae.AsynchAECasManager;
+import org.apache.uima.aae.AsynchAECasManager_impl;
 import org.apache.uima.aae.EECasManager_impl;
 import org.apache.uima.aae.InProcessCache;
 import org.apache.uima.aae.InProcessCache.CacheEntry;
 import org.apache.uima.aae.InputChannel;
 import org.apache.uima.aae.OutputChannel;
+import org.apache.uima.aae.UIDGenerator;
 import org.apache.uima.aae.UIMAEE_Constants;
 import org.apache.uima.aae.UimaASApplicationEvent.EventTrigger;
-import org.apache.uima.aae.UIDGenerator;
 import org.apache.uima.aae.UimaAsContext;
 import org.apache.uima.aae.UimaAsVersion;
 import org.apache.uima.aae.UimaClassFactory;
@@ -799,7 +800,9 @@ public abstract class BaseAnalysisEngine
       return parentContext + ",p" + index + "=";
     }
   }
-
+  public void addUimaObject(String objectName ) throws Exception {
+	  jmxManagement.addObject(objectName);
+  }
   /**
    * Register a component with a given name with JMX MBeanServer
    * 
@@ -1882,6 +1885,12 @@ public abstract class BaseAnalysisEngine
     if (!isStopped()) {
       setStopped();
     }
+    try {
+        // Remove all MBeans registered by this service
+        jmxManagement.destroy();
+      } catch (Exception e) {
+      }
+
     /*
      * Send an exception to the client if this is a top level service
      */
@@ -1963,11 +1972,6 @@ public abstract class BaseAnalysisEngine
     } else {
       // Stop output channel
       getOutputChannel().stop();
-      try {
-        // Remove all MBeans registered by this service
-        jmxManagement.destroy();
-      } catch (Exception e) {
-      }
       
       try {
         getInProcessCache().destroy();
@@ -1996,6 +2000,14 @@ public abstract class BaseAnalysisEngine
       unregisteredDelegateList.clear();
     }
     if (casManager != null) {
+
+    	if ( casManager instanceof EECasManager_impl) {
+    		try {
+        		((EECasManager_impl)casManager).destroy();
+    		} catch( Throwable t) {}
+    	} else if ( casManager instanceof AsynchAECasManager_impl ) {
+    		((AsynchAECasManager_impl)casManager).destroy();
+    	}
       casManager = null;
     }
     if (transports != null) {

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java?rev=1766433&r1=1766432&r2=1766433&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java Mon Oct 24 17:45:36 2016
@@ -264,6 +264,7 @@ public class PrimitiveAnalysisEngineCont
       }
       AnalysisEngine ae = UIMAFramework.produceAnalysisEngine(rSpecifier, paramsMap);
    
+      super.addUimaObject(ae.getManagementInterface().getUniqueMBeanName());
       //  Call to produceAnalysisEngine() may take a long time to complete. While this
         //  method was executing, the service may have been stopped. Before continuing 
         //  check if the service has been stopped. If so, destroy AE instance and return.