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 2011/08/24 17:56:27 UTC

svn commit: r1161174 - /uima/uimaj/trunk/uimaj-core/src/main/java/org/apache/uima/UIMAFramework.java

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;
   }
 
   /**