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.