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 2012/10/26 21:51:06 UTC
svn commit: r1402636 -
/uima/uima-as/trunk/uimaj-as-core/src/main/java/org/apache/uima/aae/controller/PrimitiveAnalysisEngineController_impl.java
Author: cwiklik
Date: Fri Oct 26 19:51:05 2012
New Revision: 1402636
URL: http://svn.apache.org/viewvc?rev=1402636&view=rev
Log:
UIMA-2487 Refactored code responsible for gathering pipeline stats
Modified:
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/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=1402636&r1=1402635&r2=1402636&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 Fri Oct 26 19:51:05 2012
@@ -479,25 +479,27 @@ public class PrimitiveAnalysisEngineCont
}
return null;
}
- private AnalysisEngineManagement deepCopy(AnalysisEngineManagement aem) {
- String xml = xstream.toXML(aem); // serialize to XML
- return (AnalysisEngineManagement)xstream.fromXML(xml);
- }
- private void getLeafManagementObjects(AnalysisEngineManagement aem, List<AnalysisEngineManagement> result, boolean deepCopy) {
- if (aem.getComponents().isEmpty()) {
- if (!aem.getName().equals("Fixed Flow Controller")) {
- if ( deepCopy ) {
- result.add(deepCopy(aem)); // deep copy
- } else {
- result.add(aem); // reference
- }
- }
- } else {
- for (AnalysisEngineManagement child : (Iterable<AnalysisEngineManagement>) aem.getComponents().values()) {
- getLeafManagementObjects(child, result, deepCopy);
- }
- }
+ private AnalysisEnginePerformanceMetrics deepCopyMetrics(AnalysisEngineManagement aem) {
+ return new AnalysisEnginePerformanceMetrics(aem.getName(),
+ aem.getUniqueMBeanName(),
+ aem.getAnalysisTime(),
+ aem.getNumberOfCASesProcessed());
}
+
+ private void getLeafManagementObjects(AnalysisEngineManagement aem, List<AnalysisEnginePerformanceMetrics> result) {
+ if (aem.getComponents().isEmpty()) {
+ if (!aem.getName().equals("Fixed Flow Controller")) {
+ result.add(deepCopyMetrics(aem));
+ }
+ } else {
+ for (AnalysisEngineManagement child : (Iterable<AnalysisEngineManagement>) aem.getComponents().values()) {
+ getLeafManagementObjects(child, result);
+ }
+ }
+ }
+
+
+
public void destroyAE() {
try {
if ( aeInstancePool != null ) {
@@ -529,8 +531,9 @@ public class PrimitiveAnalysisEngineCont
if (stopped) {
return;
}
- List<AnalysisEngineManagement> beforeAnalysisManagementObjects = new ArrayList<AnalysisEngineManagement>();
- List<AnalysisEngineManagement> afterAnalysisManagementObjects = new ArrayList<AnalysisEngineManagement>();
+
+ List<AnalysisEnginePerformanceMetrics> beforeAnalysisManagementObjects = new ArrayList<AnalysisEnginePerformanceMetrics>();
+ List<AnalysisEnginePerformanceMetrics> afterAnalysisManagementObjects = new ArrayList<AnalysisEnginePerformanceMetrics>();
CasStateEntry parentCasStateEntry = null;
// If enabled, keep a reference to a timer which
// when it expires, will cause a JVM to dump a stack
@@ -573,9 +576,9 @@ public class PrimitiveAnalysisEngineCont
AnalysisEngineManagement rootAem = ae.getManagementInterface();
if ( rootAem.getComponents().size() > 0 ) {
- getLeafManagementObjects(rootAem, beforeAnalysisManagementObjects, true);
+ getLeafManagementObjects(rootAem, beforeAnalysisManagementObjects);
} else {
- beforeAnalysisManagementObjects.add(deepCopy(rootAem));
+ beforeAnalysisManagementObjects.add(deepCopyMetrics(rootAem));
}
CasIterator casIterator = ae.processAndOutputNewCASes(aCAS);
@@ -834,10 +837,10 @@ public class PrimitiveAnalysisEngineCont
// Flatten the hierarchy by recursively (if this AE is an aggregate) extracting
// primitive AE's AnalysisEngineManagement instance and placing it in
// afterAnalysisManagementObjects List.
- getLeafManagementObjects(aem, afterAnalysisManagementObjects, false);
+ getLeafManagementObjects(aem, afterAnalysisManagementObjects);
} else {
// Add the top level AnalysisEngineManagement instance.
- afterAnalysisManagementObjects.add(aem);
+ afterAnalysisManagementObjects.add(deepCopyMetrics(aem));
}
// Create a List to hold per CAS analysisTime and total number of CASes processed
@@ -846,14 +849,14 @@ public class PrimitiveAnalysisEngineCont
new ArrayList<AnalysisEnginePerformanceMetrics>();
// Diff the before process() performance metrics with post process performance
// metrics
- for (AnalysisEngineManagement after : afterAnalysisManagementObjects) {
- for( AnalysisEngineManagement before: beforeAnalysisManagementObjects) {
- if ( before.getUniqueMBeanName().equals(after.getUniqueMBeanName())) {
+ for (AnalysisEnginePerformanceMetrics after : afterAnalysisManagementObjects) {
+ for( AnalysisEnginePerformanceMetrics before: beforeAnalysisManagementObjects) {
+ if ( before.getUniqueName().equals(after.getUniqueName())) {
AnalysisEnginePerformanceMetrics metrics =
new AnalysisEnginePerformanceMetrics(after.getName(),
- after.getUniqueMBeanName(),
+ after.getUniqueName(),
after.getAnalysisTime()- before.getAnalysisTime(),
- after.getNumberOfCASesProcessed());
+ after.getNumProcessed());
performanceList.add(metrics);
break;
}