Author: cwiklik
Date: Wed Aug 24 15:56:27 2011
New Revision: 1161174

URL: http://svn.apache.org/viewvc?rev=1161174&view=rev
Log:
UIMA-2217 Modified all produceAnalysisEngine() methods to set the AE state to 
Ready when produceResource() call succeeds

Modified:
    uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMAFramework.java

Modified: 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMAFramework.java
URL: 
http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMAFramework.java?rev=1161174&r1=1161173&r2=1161174&view=diff
==============================================================================
--- 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMAFramework.java 
(original)
+++ 
uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMAFramework.java 
Wed Aug 24 15:56:27 2011
@@ -24,7 +24,9 @@ import java.util.Map;
 import java.util.Properties;
 
 import org.apache.uima.analysis_engine.AnalysisEngine;
+import org.apache.uima.analysis_engine.AnalysisEngineManagement.State;
 import org.apache.uima.analysis_engine.TextAnalysisEngine;
+import org.apache.uima.analysis_engine.impl.AnalysisEngineManagementImpl;
 import org.apache.uima.collection.CasConsumer;
 import org.apache.uima.collection.CasInitializer;
 import org.apache.uima.collection.CollectionProcessingEngine;
@@ -311,7 +313,21 @@ public abstract class UIMAFramework {
 
     return produceResource(aResourceClass, aSpecifier, aAdditionalParams);
   }
-
+  
+  /**
+   * Called if AE initialization succeeds. Sets the AE state to Ready and time
+   * it took to initialize the AE. 
+   * 
+   * @param ae
+   * @param initStartTime
+   */
+  private static void updateAeState(AnalysisEngine ae, long initStartTime) {
+         if ( ae.getManagementInterface() instanceof 
AnalysisEngineManagementImpl) {
+             
((AnalysisEngineManagementImpl)ae.getManagementInterface()).setState(State.Ready);
+             ((AnalysisEngineManagementImpl)ae.getManagementInterface()).
+               setInitializationTime( System.currentTimeMillis() - 
initStartTime);
+           }
+  }
   /**
    * Produces an {@link AnalysisEngine} instance from a 
<code>ResourceSpecifier</code>. The
    * <code>ResourceSpecifier</code> may either specify how to construct a new 
instance or how to
@@ -332,7 +348,14 @@ public abstract class UIMAFramework {
    */
   public static AnalysisEngine produceAnalysisEngine(ResourceSpecifier 
aSpecifier)
           throws ResourceInitializationException {
-    return (AnalysisEngine) produceResource(AnalysisEngine.class, aSpecifier, 
null);
+           AnalysisEngine ae = null;
+           //  Fetch current time to compute initialization time
+           long initStartTime = System.currentTimeMillis();
+           ae = (AnalysisEngine) produceResource(AnalysisEngine.class, 
aSpecifier, null);
+           //  initialization succeeded, update AE state and initialization 
time
+           updateAeState(ae,initStartTime);
+           return ae;
+
   }
 
   /**
@@ -358,7 +381,14 @@ public abstract class UIMAFramework {
    */
   public static AnalysisEngine produceAnalysisEngine(ResourceSpecifier 
aSpecifier,
           Map<String, Object> aAdditionalParams) throws 
ResourceInitializationException {
-    return (AnalysisEngine) produceResource(AnalysisEngine.class, aSpecifier, 
aAdditionalParams);
+           AnalysisEngine ae = null;
+           //  Fetch current time to compute initialization time
+           long initStartTime = System.currentTimeMillis();
+           ae = (AnalysisEngine) produceResource(AnalysisEngine.class, 
aSpecifier, aAdditionalParams);
+           //  initialization succeeded, update AE state and initialization 
time
+           updateAeState(ae,initStartTime);
+           return ae;
+
   }
 
   /**
@@ -389,8 +419,14 @@ public abstract class UIMAFramework {
   public static AnalysisEngine produceAnalysisEngine(ResourceSpecifier 
aSpecifier,
           ResourceManager aResourceManager, Map<String, Object> 
aAdditionalParams)
           throws ResourceInitializationException {
-    return (AnalysisEngine) produceResource(AnalysisEngine.class, aSpecifier, 
aResourceManager,
+    AnalysisEngine ae = null;
+    // Fetch current time to compute initialization time
+    long initStartTime = System.currentTimeMillis();
+    ae = (AnalysisEngine) produceResource(AnalysisEngine.class, aSpecifier, 
aResourceManager,
             aAdditionalParams);
+    // initialization succeeded, update AE state and initialization time
+    updateAeState(ae,initStartTime);
+    return ae;
   }
 
   /**
@@ -432,7 +468,14 @@ public abstract class UIMAFramework {
             aMaxSimultaneousRequests));
     aAdditionalParams.put(AnalysisEngine.PARAM_TIMEOUT_PERIOD, 
Integer.valueOf(aTimeoutPeriod));
 
-    return (AnalysisEngine) produceResource(AnalysisEngine.class, aSpecifier, 
aAdditionalParams);
+    AnalysisEngine ae = null;
+    // Fetch current time to compute initialization time
+    long initStartTime = System.currentTimeMillis();
+
+    ae = (AnalysisEngine) produceResource(AnalysisEngine.class, aSpecifier, 
aAdditionalParams);
+    // initialization succeeded, update AE state and initialization time
+    updateAeState(ae,initStartTime);
+    return ae;
   }
 
   /**


Reply via email to