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 2009/10/26 20:18:17 UTC

svn commit: r829907 - in /incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller: AggregateAnalysisEngineController_impl.java BaseAnalysisEngineController.java Endpoint_impl.java PrimitiveAnalysisEngineController_impl.java

Author: cwiklik
Date: Mon Oct 26 19:18:17 2009
New Revision: 829907

URL: http://svn.apache.org/viewvc?rev=829907&view=rev
Log:
UIMA-1637 Modified service's jmx ServiceInfoMBean to show serviceKey,status,and deployment descriptor path

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

Modified: incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java?rev=829907&r1=829906&r2=829907&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java (original)
+++ incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/AggregateAnalysisEngineController_impl.java Mon Oct 26 19:18:17 2009
@@ -38,6 +38,7 @@
 import org.apache.uima.aae.UIMAEE_Constants;
 import org.apache.uima.aae.UimaClassFactory;
 import org.apache.uima.aae.InProcessCache.CacheEntry;
+import org.apache.uima.aae.controller.BaseAnalysisEngineController.ServiceState;
 import org.apache.uima.aae.controller.LocalCache.CasStateEntry;
 import org.apache.uima.aae.delegate.ControllerDelegate;
 import org.apache.uima.aae.delegate.Delegate;
@@ -670,7 +671,7 @@
         // Change state of the delegate
         ServiceInfo sf = getDelegateServiceInfo(key);
         if (sf != null) {
-          sf.setState("Disabled");
+          sf.setState(ServiceState.DISABLED.name());
         }
         synchronized (disabledDelegateList) {
           disabledDelegateList.add(key);
@@ -1323,12 +1324,13 @@
           Endpoint endpoint = ((Endpoint) destinationMap.get(key));
           if (key != null && endpoint != null) {
             ServiceInfo serviceInfo = endpoint.getServiceInfo();
-            PrimitiveServiceInfo pServiceInfo = new PrimitiveServiceInfo();
+            PrimitiveServiceInfo pServiceInfo = new PrimitiveServiceInfo(endpoint.isCasMultiplier(), null);
             pServiceInfo.setBrokerURL(serviceInfo.getBrokerURL());
             pServiceInfo.setInputQueueName(serviceInfo.getInputQueueName());
             if (endpoint.getDestination() != null) {
               pServiceInfo.setReplyQueueName(endpoint.getDestination().toString());
             }
+            pServiceInfo.setServiceKey(key);
             pServiceInfo.setState(serviceInfo.getState());
             pServiceInfo.setAnalysisEngineInstanceCount(1);
 
@@ -2328,6 +2330,9 @@
         endpoint.setWaitingForResponse(false);
         endpoint.cancelTimer();
         boolean collocatedAggregate = false;
+        if ( endpoint.getServiceInfo() != null ) {
+          endpoint.getServiceInfo().setState(ServiceState.RUNNING.name());
+        }
         ResourceMetaData resource = null;
         ServiceInfo remoteDelegateServiceInfo = null;
         if (aTypeSystem.trim().length() > 0) {
@@ -2484,6 +2489,12 @@
     initialized = true;
     // Notify client listener that the initialization of the controller was successfull
     notifyListenersWithInitializationStatus(null);
+    //  If this is a collocated aggregate change its state to RUNNING from INITIALIZING.
+    //  The top level aggregate state is changed when listeners on its input queue are
+    //  succesfully started in SpringContainerDeployer.doStartListeners() method.
+    if ( !isTopLevelComponent() ) {
+      changeState(ServiceState.RUNNING);
+    }
   }
 
   private String findKeyForValue(String fromDestination) {
@@ -2555,7 +2566,7 @@
     if (key != null && !delegateStatMap.containsKey(key)) {
       if (key != null) {
         ServiceInfo serviceInfo = anEndpoint.getServiceInfo();
-        PrimitiveServiceInfo pServiceInfo = new PrimitiveServiceInfo();
+        PrimitiveServiceInfo pServiceInfo = new PrimitiveServiceInfo(serviceInfo.isCASMultiplier(),null);
         pServiceInfo.setBrokerURL(serviceInfo.getBrokerURL());
         pServiceInfo.setInputQueueName(serviceInfo.getInputQueueName());
         pServiceInfo.setState(serviceInfo.getState());
@@ -2666,7 +2677,7 @@
 
   public AggregateServiceInfo getServiceInfo() {
     if (serviceInfo == null) {
-      serviceInfo = new AggregateServiceInfo(isCasMultiplier());
+      serviceInfo = new AggregateServiceInfo(isCasMultiplier(), this);
       // if this is a top level service and the input channel not yet initialized
       // block in getInputChannel() on the latch
       if (isTopLevelComponent() && getInputChannel() != null) {
@@ -2676,8 +2687,8 @@
         serviceInfo.setInputQueueName(getName());
         serviceInfo.setBrokerURL("vm://localhost");
       }
-      serviceInfo.setDeploymentDescriptor("");
-      serviceInfo.setState("Running");
+      serviceInfo.setDeploymentDescriptorPath(super.aeDescriptor);
+      //serviceInfo.setState(super.getState().name());
     }
     return serviceInfo;
   }

Modified: incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java?rev=829907&r1=829906&r2=829907&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java (original)
+++ incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/BaseAnalysisEngineController.java Mon Oct 26 19:18:17 2009
@@ -103,6 +103,10 @@
         AnalysisEngineController, EventSubscriber {
   private static final Class CLASS_NAME = BaseAnalysisEngineController.class;
 
+  public static enum ServiceState { INITIALIZING, RUNNING, DISABLED, STOPPING, FAILED };
+  
+  protected ServiceState currentState = ServiceState.INITIALIZING;
+  
   private static final long DoNotProcessTTL = 30 * 60 * 1000; // 30 minute time to live
 
   protected volatile ControllerLatch latch = new ControllerLatch(this);
@@ -804,10 +808,14 @@
     if (remote) {
       serviceInfo = getInputChannel().getServiceInfo();
     } else {
-      serviceInfo = new ServiceInfo();
+      serviceInfo = new ServiceInfo(isCasMultiplier(), this);
       serviceInfo.setBrokerURL(getBrokerURL());
       serviceInfo.setInputQueueName(getName());
-      serviceInfo.setState("Active");
+      //  if a colocated service, set its key as defined in the AE descriptor
+      if ( !this.isTopLevelComponent() ) {
+        serviceInfo.setServiceKey(delegateKey);
+      }
+      //serviceInfo.setState(getState().name());
     }
     ServiceInfo pServiceInfo = null;
 
@@ -919,7 +927,7 @@
       sInfo.setBrokerURL(aServiceInfo.getBrokerURL());
       sInfo.setInputQueueName(aServiceInfo.getInputQueueName());
       sInfo.setState(aServiceInfo.getState());
-      sInfo.setDeploymentDescriptor(deploymentDescriptor);
+      sInfo.setDeploymentDescriptorPath(aeDescriptor);
       if (isCasMultiplier()) {
         sInfo.setCASMultiplier();
       }
@@ -1583,7 +1591,7 @@
       serviceInfo = ((AggregateAnalysisEngineController) this).getServiceInfo();
     }
     if (serviceInfo != null) {
-      serviceInfo.setDeploymentDescriptor(deploymentDescriptor);
+      serviceInfo.setDeploymentDescriptorPath(aeDescriptor);
     }
 
   }
@@ -2761,4 +2769,16 @@
     daemonServiceExecutor.scheduleWithFixedDelay(new UimaAsServiceCleanupThread(this), 0,
             sleepInterval, TimeUnit.MILLISECONDS);
   }
+  
+  public void changeState(ServiceState state) {
+    synchronized(currentState) {
+      currentState = state;
+    }
+  }
+  
+  public ServiceState getState() {
+    synchronized(currentState) {
+      return currentState;
+    }
+  }
 }

Modified: incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/Endpoint_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/Endpoint_impl.java?rev=829907&r1=829906&r2=829907&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/Endpoint_impl.java (original)
+++ incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/Endpoint_impl.java Mon Oct 26 19:18:17 2009
@@ -25,6 +25,7 @@
 
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.aae.UIMAEE_Constants;
+import org.apache.uima.aae.controller.BaseAnalysisEngineController.ServiceState;
 import org.apache.uima.aae.error.AsynchAEException;
 import org.apache.uima.aae.error.ErrorContext;
 import org.apache.uima.aae.error.MessageTimeoutException;
@@ -342,10 +343,14 @@
 
   public ServiceInfo getServiceInfo() {
     if (serviceInfo == null) {
-      serviceInfo = new ServiceInfo(isCasMultiplier);
+      serviceInfo = new ServiceInfo(isCasMultiplier, null);
       serviceInfo.setBrokerURL(serverURI);
       serviceInfo.setInputQueueName(endpoint);
-      serviceInfo.setState("Active");
+      if ( controller == null ) {
+        serviceInfo.setState(ServiceState.INITIALIZING.name());
+      } else {
+        serviceInfo.setState(controller.getState().name());
+      }
     }
     return serviceInfo;
   }

Modified: incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java?rev=829907&r1=829906&r2=829907&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java (original)
+++ incubator/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java Mon Oct 26 19:18:17 2009
@@ -240,9 +240,9 @@
       }
 
       if (serviceInfo == null) {
-        serviceInfo = new PrimitiveServiceInfo(isCasMultiplier());
+        serviceInfo = new PrimitiveServiceInfo(isCasMultiplier(), this);
       }
-
+      serviceInfo.setServiceKey(delegateKey);
       serviceInfo.setAnalysisEngineInstanceCount(analysisEnginePoolSize);
 
       if (!isStopped()) {
@@ -769,17 +769,15 @@
 
   public PrimitiveServiceInfo getServiceInfo() {
     if (serviceInfo == null) {
-      serviceInfo = new PrimitiveServiceInfo();
+      serviceInfo = new PrimitiveServiceInfo(isCasMultiplier(), this);
+      serviceInfo.setServiceKey(delegateKey);
     }
     if (isTopLevelComponent() && getInputChannel() != null) {
       serviceInfo.setInputQueueName(getInputChannel().getServiceInfo().getInputQueueName());
       serviceInfo.setBrokerURL(super.getBrokerURL());
+      serviceInfo.setDeploymentDescriptorPath(super.aeDescriptor);
     }
 
-    serviceInfo.setState("Running");
-    if (isCasMultiplier()) {
-      serviceInfo.setCASMultiplier();
-    }
     return serviceInfo;
   }