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/09/23 20:12:52 UTC

svn commit: r1762087 - in /uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae: controller/AggregateAnalysisEngineController_impl.java jmx/ServiceInfo.java jmx/ServiceInfoMBean.java

Author: cwiklik
Date: Fri Sep 23 20:12:52 2016
New Revision: 1762087

URL: http://svn.apache.org/viewvc?rev=1762087&view=rev
Log:
UIMA-5120 Added support for enable/disable CAS logging via jmx. Added a boolean JMX attribute in ServiceInfoMBean.

Modified:
    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/jmx/ServiceInfo.java
    uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/ServiceInfoMBean.java

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=1762087&r1=1762086&r2=1762087&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 Fri Sep 23 20:12:52 2016
@@ -1281,6 +1281,20 @@ public class AggregateAnalysisEngineCont
     Endpoint endpoint = null;
     try {
       String analysisEngineKey = aStep.getAnalysisEngineKey();
+      boolean logCas = false;
+
+      // iterate over the controller list to find one with a matching key
+      for( AnalysisEngineController c : childControllerList ) {
+    	  if ( analysisEngineKey.equals(c.getKey())) {
+    		  // from this controller's MBean determine if CAS logging
+    		  // should be done
+    		  if ( c.getServiceInfo() != null ) {
+    			 // lookup controller's MBean
+    			 logCas = c.getServiceInfo().isLogCasEnabled();
+    		  }
+    		  break;
+    	  }
+      }
       // Find the endpoint for the delegate
       endpoint = lookUpEndpoint(analysisEngineKey, true);
       CacheEntry cacheEntry = getInProcessCache().getCacheEntryForCAS(aCasReferenceId);
@@ -1288,7 +1302,9 @@ public class AggregateAnalysisEngineCont
         endpoint.setController(this);
         CasStateEntry casStateEntry = getLocalCache().lookupEntry(aCasReferenceId);
         casStateEntry.resetReplyReceived();
-        if (enableCasLogMap!=null && enableCasLogMap.containsKey(analysisEngineKey)) {
+        
+//        if (enableCasLogMap!=null && enableCasLogMap.containsKey(analysisEngineKey)) {
+        if ( logCas ) {	
           //  Get a CAS
           CAS cas = cacheEntry.getCas();
           logCasForEndpoint(analysisEngineKey, cas);
@@ -1376,6 +1392,16 @@ public class AggregateAnalysisEngineCont
       tsd.toXML(os);
       os.close();
       enableCasLogMap.put(analysisEngineKey, true);
+      // iterate over the controller list to find one with a matching key
+      for( AnalysisEngineController c : childControllerList ) {
+    	  if ( analysisEngineKey.equals(c.getKey())) {
+    		  if ( c.getServiceInfo() != null ) {
+    			 // Enable CAS logging
+    			 c.getServiceInfo().setLogCasEnableed();
+    		  }
+    		  break;
+    	  }
+      }
     }
     // create XmiCas file name
     Long now = Long.valueOf((System.nanoTime()-initializationTime)/1000);

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/ServiceInfo.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/ServiceInfo.java?rev=1762087&r1=1762086&r2=1762087&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/ServiceInfo.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/ServiceInfo.java Fri Sep 23 20:12:52 2016
@@ -57,11 +57,18 @@ public class ServiceInfo implements Serv
   
   private AnalysisEngineController controller;
   
+  private boolean logCasEnabled = false;
+  
   public ServiceInfo(boolean isaCasMultiplier, AnalysisEngineController controller) {
     casMultiplier = isaCasMultiplier;
     this.controller = controller;
   }
-  
+  public boolean isLogCasEnabled() {
+	  return logCasEnabled;
+  }
+  public void setLogCasEnableed() {
+	  logCasEnabled = !logCasEnabled;  // toggle ON and OFF
+  }
   public void setCmRegisteredName(String uniqueName ) {
     cmUniqueName = uniqueName;
   }

Modified: uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/ServiceInfoMBean.java
URL: http://svn.apache.org/viewvc/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/ServiceInfoMBean.java?rev=1762087&r1=1762086&r2=1762087&view=diff
==============================================================================
--- uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/ServiceInfoMBean.java (original)
+++ uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/jmx/ServiceInfoMBean.java Fri Sep 23 20:12:52 2016
@@ -43,5 +43,7 @@ public interface ServiceInfoMBean extend
   public String getCmRegisteredName();
   
   public String dumpState();
+  
+  public boolean isLogCasEnabled();
 
 }