You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by re...@apache.org on 2022/02/10 14:37:12 UTC
[uima-uimaj] 05/15: [UIMA-6373] Format UIMA Core Java SDK codebase
This is an automated email from the ASF dual-hosted git repository.
rec pushed a commit to branch refactoring/UIMA-6373-Format-UIMA-Core-Java-SDK-codebase
in repository https://gitbox.apache.org/repos/asf/uima-uimaj.git
commit 2950fa0edf18310b2a2566fdd1ee06422a5574ff
Author: Richard Eckart de Castilho <re...@apache.org>
AuthorDate: Thu Feb 10 15:01:09 2022 +0100
[UIMA-6373] Format UIMA Core Java SDK codebase
- Auto-format
---
.../test/junit_extension/AnnotationWriter.java | 678 ++++++++++-----------
.../AnnotatorPerformanceTester.java | 41 +-
.../uima/test/junit_extension/AnnotatorTester.java | 676 ++++++++++----------
.../junit_extension/PerformanceTestResult.java | 20 +-
.../junit_extension/PerformanceTestResultImpl.java | 148 +++--
5 files changed, 795 insertions(+), 768 deletions(-)
diff --git a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotationWriter.java b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotationWriter.java
index ba8a58c..1f83888 100644
--- a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotationWriter.java
+++ b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotationWriter.java
@@ -43,363 +43,331 @@ import org.apache.uima.resource.ResourceInitializationException;
import org.apache.uima.resource.ResourceProcessException;
import org.apache.uima.util.ProcessTrace;
-
/**
- * The AnnotationWriter class writes specified annotations to an output file.
- * The encoding of the output file is UTF-8
+ * The AnnotationWriter class writes specified annotations to an output file. The encoding of the
+ * output file is UTF-8
*/
-public class AnnotationWriter extends CasConsumer_ImplBase implements CasConsumer
-{
-
- /** The out file. */
- //output file
- private File outFile;
-
- /** The file writer. */
- //output file writer
- private OutputStreamWriter fileWriter;
-
- /** The tofs. */
- //respected annotations
- private String[] tofs;
-
- /** The reconfig. */
- //check if reconfigure must be called
- private boolean reconfig = false;
-
- /** The Constant featureOnlyKey. */
- private final static String featureOnlyKey = "feature";
-
- /**
- * Initializes this CAS Consumer with the parameters specified in the
- * descriptor.
- *
- * @throws ResourceInitializationException if there is error in
- * initializing the resources
- */
- @Override
- public void initialize() throws ResourceInitializationException
- {
-
- // extract configuration parameter settings
- String oPath = (String) getUimaContext().getConfigParameterValue("outputFile");
-
- //Output file should be specified in the descriptor
- if (oPath == null)
- {
- //set reconfiguration - reconfig() must be called
- this.reconfig = true;
- }
- else
- {
- // If specified output directory does not exist, try to create it
- this.outFile = new File(oPath);
- if (this.outFile.getParentFile() != null && !this.outFile.getParentFile().exists())
- {
- if (!this.outFile.getParentFile().mkdirs())
- throw new ResourceInitializationException(
- ResourceInitializationException.RESOURCE_DATA_NOT_VALID,
- new Object[] { oPath, "outputFile" });
- }
- try
- {
- this.fileWriter = new OutputStreamWriter(new FileOutputStream(this.outFile, false),
- StandardCharsets.UTF_8);
- }
- catch (IOException e)
- {
- throw new ResourceInitializationException(e);
- }
- }
-
- //extract annotation types
- this.tofs = (String[]) getUimaContext().getConfigParameterValue("AnnotationTypes");
- //sort array
- if (this.tofs != null)
- Arrays.sort(this.tofs);
-
- }
-
- /**
- * processTofs() writes als specified types an features to a HashMap.
- *
- * @param aCAS a CAS with a TypeSystem
- * @param someTofs the some tofs
- * @return HashMap - Map with all types an features.
- */
- private HashMap processTofs(CAS aCAS, String[] someTofs)
- {
- HashMap types = new HashMap(10);
-
- for (int i = 0; i < someTofs.length; i++)
- {
- Type type = aCAS.getTypeSystem().getType(someTofs[i]);
-
- if (type == null) //maybe a feature
- {
- int index = someTofs[i].indexOf(":");
-
- if (index != -1)
- {
- String typename = someTofs[i].substring(0, index);
- Type typeKey = aCAS.getTypeSystem().getType(typename);
-
- //get feature object (Vector) for the current type
- Object obj = types.get(typeKey);
-
- //if type is not included in the typelist create type and add feature
- if (obj == null)
- {
- ArrayList list = new ArrayList(10);
- Feature fs = aCAS.getTypeSystem().getFeatureByFullName(someTofs[i]);
- list.add(0, featureOnlyKey);
- list.add(fs);
- types.put(typeKey, list);
- }
- else //add feature to type
- {
- //cast feature vector for the current type
- ArrayList vec = (ArrayList) obj;
- Feature fs = aCAS.getTypeSystem().getFeatureByFullName(someTofs[i]);
- vec.add(fs);
- }
-
- }
- }
- else
- {
- //add type as key and a Vector as Feature container
- if(types.containsKey(type)){
- ArrayList featureList = (ArrayList) types.get(type);
- if(featureList.size() >0 && featureList.get(0).equals(featureOnlyKey)){
- featureList.remove(0);
- }
- // type is already in the list do not overwrite it!
- }else{
- types.put(type, new ArrayList(10));
- }
- }
- }
-
- return types;
- }
-
- /* (non-Javadoc)
- * @see org.apache.uima.collection.base_cpm.CasObjectProcessor#processCas(org.apache.uima.cas.CAS)
- */
- @Override
- public synchronized void processCas(CAS aCAS) throws ResourceProcessException
- {
- if (this.reconfig == true)
- {
- throw new ResourceProcessException(
- ResourceInitializationException.CONFIG_SETTING_ABSENT,
- new Object[] { "outputFile" });
- }
-
- //get low level CAS
- LowLevelCAS ll_cas = aCAS.getLowLevelCAS();
-
- //get low level TypeSystem
- LowLevelTypeSystem ll_typeSystem = ll_cas.ll_getTypeSystem();
-
- //get types and feature interessted in
- HashMap types = processTofs(aCAS, this.tofs);
-
- try
- {
- //iterate and print annotations
- FSIterator typeIterator = aCAS.getAnnotationIndex().iterator();
-
- for (typeIterator.moveToFirst(); typeIterator.isValid(); typeIterator.moveToNext())
- {
- Iterator it = types.keySet().iterator();
-
- while (it.hasNext())
- {
- //get current type and features
- Type currentType = (Type) it.next();
- boolean isFeatureOnly = false;
-
- ArrayList featureList = (ArrayList) types.get(currentType);
- if(featureList.size() >0 && featureList.get(0).equals(featureOnlyKey)){
- featureList.remove(0);
- isFeatureOnly = true;
- }
- Feature[] features = (Feature[]) featureList.toArray(new Feature[] {
- });
-
- AnnotationFS annot = (AnnotationFS) typeIterator.get();
-
- if (annot.getType().getName() == currentType.getName())
- {
- //only for formatting necessary
- boolean firstFeature = true;
-
- String span = annot.getCoveredText();
- if(!isFeatureOnly){
- this.fileWriter.write(
- annot.getType().getShortName()
- + "(" + annot.getBegin() + "," + annot.getEnd() + "): " + span);
- }else{
- this.fileWriter.write(
- annot.getType().getShortName()
- + ": ");
- }
-
- for (int f = 0; f < features.length; f++)
- {
- if (firstFeature)
- {
- this.fileWriter.write(" { ");
- firstFeature = false;
- }
- else
- {
- this.fileWriter.write(", ");
- }
-
- Feature fs = features[f];
- int typeClass = ll_cas.ll_getTypeClass(ll_typeSystem.ll_getCodeForType(fs.getRange()));
- this.fileWriter.write(fs.getShortName() + "=");
-
- switch (typeClass)
- {
- case LowLevelCAS.TYPE_CLASS_FLOAT :
- this.fileWriter.write(Float.toString(annot.getFloatValue(fs)));
- break;
-
- case LowLevelCAS.TYPE_CLASS_INT :
- this.fileWriter.write(Integer.toString(annot.getIntValue(fs)));
- break;
-
- case LowLevelCAS.TYPE_CLASS_STRING :
- String value = annot.getStringValue(fs);
- if(value != null) {
- this.fileWriter.write(value);
- } else {
- this.fileWriter.write("null");
- }
- break;
-
- case LowLevelCAS.TYPE_CLASS_FS:
-
- FeatureStructure fStruct = annot.getFeatureValue(fs);
- if(fStruct != null) {
- this.fileWriter.write(fStruct.toString());
- } else {
- this.fileWriter.write("null");
- }
- break;
- }
- }
-
- if (firstFeature == false)
- {
- this.fileWriter.write(" }");
- }
-
- this.fileWriter.write(System.getProperty("line.separator"));
- }
-
- }
- }
-
- this.fileWriter.flush();
- }
- catch (Exception ex)
- {
- throw new ResourceProcessException(ex);
- }
-
- }
-
- /* (non-Javadoc)
- * @see org.apache.uima.collection.CasConsumer_ImplBase#batchProcessComplete(org.apache.uima.util.ProcessTrace)
- */
- @Override
- public void batchProcessComplete(ProcessTrace aTrace) throws ResourceProcessException, IOException
- {
- // nothing to do here
- }
-
- /* (non-Javadoc)
- * @see org.apache.uima.collection.CasConsumer_ImplBase#collectionProcessComplete(org.apache.uima.util.ProcessTrace)
- */
- @Override
- public void collectionProcessComplete(ProcessTrace aTrace) throws ResourceProcessException, IOException
- {
- if (this.fileWriter != null)
- {
- this.fileWriter.close();
- }
- }
-
- /* (non-Javadoc)
- * @see org.apache.uima.collection.CasConsumer_ImplBase#reconfigure()
- */
- @Override
- public void reconfigure() throws ResourceConfigurationException
- {
- //reset reconfiguration - is done
- this.reconfig = false;
-
- super.reconfigure();
- // extract configuration parameter settings
- String oPath = (String) getUimaContext().getConfigParameterValue("outputFile");
- File oFile = new File(oPath);
- //if output file has changed, close exiting file and open new
- if (!oFile.equals(this.outFile))
- {
- this.outFile = oFile;
- try
- {
- if (this.fileWriter != null)
- this.fileWriter.close();
-
- // If specified output directory does not exist, try to create it
- if (oFile.getParentFile() != null && !oFile.getParentFile().exists())
- {
- if (!oFile.getParentFile().mkdirs())
- throw new ResourceConfigurationException(
- ResourceInitializationException.RESOURCE_DATA_NOT_VALID,
- new Object[] { oPath, "outputFile" });
- }
- //write result specification to the output file
- this.fileWriter = new OutputStreamWriter(new FileOutputStream(oFile, false), StandardCharsets.UTF_8);
- }
- catch (IOException e)
- {
- throw new ResourceConfigurationException();
- }
- }
-
- //extract annotation types
- this.tofs = (String[]) getUimaContext().getConfigParameterValue("AnnotationTypes");
- //sort array
- if (this.tofs != null)
- Arrays.sort(this.tofs);
-
- }
-
- /* (non-Javadoc)
- * @see org.apache.uima.collection.CasConsumer_ImplBase#destroy()
- */
- @Override
- public void destroy()
- {
- if (this.fileWriter != null)
- {
- try
- {
- this.fileWriter.close();
- }
- catch (IOException e)
- {
- // ignore IOException on destroy
- }
- }
- }
+public class AnnotationWriter extends CasConsumer_ImplBase implements CasConsumer {
+
+ /** The out file. */
+ // output file
+ private File outFile;
+
+ /** The file writer. */
+ // output file writer
+ private OutputStreamWriter fileWriter;
+
+ /** The tofs. */
+ // respected annotations
+ private String[] tofs;
+
+ /** The reconfig. */
+ // check if reconfigure must be called
+ private boolean reconfig = false;
+
+ /** The Constant featureOnlyKey. */
+ private final static String featureOnlyKey = "feature";
+
+ /**
+ * Initializes this CAS Consumer with the parameters specified in the descriptor.
+ *
+ * @throws ResourceInitializationException
+ * if there is error in initializing the resources
+ */
+ @Override
+ public void initialize() throws ResourceInitializationException {
+
+ // extract configuration parameter settings
+ String oPath = (String) getUimaContext().getConfigParameterValue("outputFile");
+
+ // Output file should be specified in the descriptor
+ if (oPath == null) {
+ // set reconfiguration - reconfig() must be called
+ this.reconfig = true;
+ } else {
+ // If specified output directory does not exist, try to create it
+ this.outFile = new File(oPath);
+ if (this.outFile.getParentFile() != null && !this.outFile.getParentFile().exists()) {
+ if (!this.outFile.getParentFile().mkdirs())
+ throw new ResourceInitializationException(
+ ResourceInitializationException.RESOURCE_DATA_NOT_VALID,
+ new Object[] { oPath, "outputFile" });
+ }
+ try {
+ this.fileWriter = new OutputStreamWriter(new FileOutputStream(this.outFile, false),
+ StandardCharsets.UTF_8);
+ } catch (IOException e) {
+ throw new ResourceInitializationException(e);
+ }
+ }
+
+ // extract annotation types
+ this.tofs = (String[]) getUimaContext().getConfigParameterValue("AnnotationTypes");
+ // sort array
+ if (this.tofs != null)
+ Arrays.sort(this.tofs);
+
+ }
+
+ /**
+ * processTofs() writes als specified types an features to a HashMap.
+ *
+ * @param aCAS
+ * a CAS with a TypeSystem
+ * @param someTofs
+ * the some tofs
+ * @return HashMap - Map with all types an features.
+ */
+ private HashMap processTofs(CAS aCAS, String[] someTofs) {
+ HashMap types = new HashMap(10);
+
+ for (int i = 0; i < someTofs.length; i++) {
+ Type type = aCAS.getTypeSystem().getType(someTofs[i]);
+
+ if (type == null) // maybe a feature
+ {
+ int index = someTofs[i].indexOf(":");
+
+ if (index != -1) {
+ String typename = someTofs[i].substring(0, index);
+ Type typeKey = aCAS.getTypeSystem().getType(typename);
+
+ // get feature object (Vector) for the current type
+ Object obj = types.get(typeKey);
+
+ // if type is not included in the typelist create type and add feature
+ if (obj == null) {
+ ArrayList list = new ArrayList(10);
+ Feature fs = aCAS.getTypeSystem().getFeatureByFullName(someTofs[i]);
+ list.add(0, featureOnlyKey);
+ list.add(fs);
+ types.put(typeKey, list);
+ } else // add feature to type
+ {
+ // cast feature vector for the current type
+ ArrayList vec = (ArrayList) obj;
+ Feature fs = aCAS.getTypeSystem().getFeatureByFullName(someTofs[i]);
+ vec.add(fs);
+ }
+
+ }
+ } else {
+ // add type as key and a Vector as Feature container
+ if (types.containsKey(type)) {
+ ArrayList featureList = (ArrayList) types.get(type);
+ if (featureList.size() > 0 && featureList.get(0).equals(featureOnlyKey)) {
+ featureList.remove(0);
+ }
+ // type is already in the list do not overwrite it!
+ } else {
+ types.put(type, new ArrayList(10));
+ }
+ }
+ }
+
+ return types;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.collection.base_cpm.CasObjectProcessor#processCas(org.apache.uima.cas.CAS)
+ */
+ @Override
+ public synchronized void processCas(CAS aCAS) throws ResourceProcessException {
+ if (this.reconfig == true) {
+ throw new ResourceProcessException(ResourceInitializationException.CONFIG_SETTING_ABSENT,
+ new Object[] { "outputFile" });
+ }
+
+ // get low level CAS
+ LowLevelCAS ll_cas = aCAS.getLowLevelCAS();
+
+ // get low level TypeSystem
+ LowLevelTypeSystem ll_typeSystem = ll_cas.ll_getTypeSystem();
+
+ // get types and feature interessted in
+ HashMap types = processTofs(aCAS, this.tofs);
+
+ try {
+ // iterate and print annotations
+ FSIterator typeIterator = aCAS.getAnnotationIndex().iterator();
+
+ for (typeIterator.moveToFirst(); typeIterator.isValid(); typeIterator.moveToNext()) {
+ Iterator it = types.keySet().iterator();
+
+ while (it.hasNext()) {
+ // get current type and features
+ Type currentType = (Type) it.next();
+ boolean isFeatureOnly = false;
+
+ ArrayList featureList = (ArrayList) types.get(currentType);
+ if (featureList.size() > 0 && featureList.get(0).equals(featureOnlyKey)) {
+ featureList.remove(0);
+ isFeatureOnly = true;
+ }
+ Feature[] features = (Feature[]) featureList.toArray(new Feature[] {});
+
+ AnnotationFS annot = (AnnotationFS) typeIterator.get();
+
+ if (annot.getType().getName() == currentType.getName()) {
+ // only for formatting necessary
+ boolean firstFeature = true;
+
+ String span = annot.getCoveredText();
+ if (!isFeatureOnly) {
+ this.fileWriter.write(annot.getType().getShortName() + "(" + annot.getBegin() + ","
+ + annot.getEnd() + "): " + span);
+ } else {
+ this.fileWriter.write(annot.getType().getShortName() + ": ");
+ }
+
+ for (int f = 0; f < features.length; f++) {
+ if (firstFeature) {
+ this.fileWriter.write(" { ");
+ firstFeature = false;
+ } else {
+ this.fileWriter.write(", ");
+ }
+
+ Feature fs = features[f];
+ int typeClass = ll_cas
+ .ll_getTypeClass(ll_typeSystem.ll_getCodeForType(fs.getRange()));
+ this.fileWriter.write(fs.getShortName() + "=");
+
+ switch (typeClass) {
+ case LowLevelCAS.TYPE_CLASS_FLOAT:
+ this.fileWriter.write(Float.toString(annot.getFloatValue(fs)));
+ break;
+
+ case LowLevelCAS.TYPE_CLASS_INT:
+ this.fileWriter.write(Integer.toString(annot.getIntValue(fs)));
+ break;
+
+ case LowLevelCAS.TYPE_CLASS_STRING:
+ String value = annot.getStringValue(fs);
+ if (value != null) {
+ this.fileWriter.write(value);
+ } else {
+ this.fileWriter.write("null");
+ }
+ break;
+
+ case LowLevelCAS.TYPE_CLASS_FS:
+
+ FeatureStructure fStruct = annot.getFeatureValue(fs);
+ if (fStruct != null) {
+ this.fileWriter.write(fStruct.toString());
+ } else {
+ this.fileWriter.write("null");
+ }
+ break;
+ }
+ }
+
+ if (firstFeature == false) {
+ this.fileWriter.write(" }");
+ }
+
+ this.fileWriter.write(System.getProperty("line.separator"));
+ }
+
+ }
+ }
+
+ this.fileWriter.flush();
+ } catch (Exception ex) {
+ throw new ResourceProcessException(ex);
+ }
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.collection.CasConsumer_ImplBase#batchProcessComplete(org.apache.uima.util.
+ * ProcessTrace)
+ */
+ @Override
+ public void batchProcessComplete(ProcessTrace aTrace)
+ throws ResourceProcessException, IOException {
+ // nothing to do here
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.uima.collection.CasConsumer_ImplBase#collectionProcessComplete(org.apache.uima.util.
+ * ProcessTrace)
+ */
+ @Override
+ public void collectionProcessComplete(ProcessTrace aTrace)
+ throws ResourceProcessException, IOException {
+ if (this.fileWriter != null) {
+ this.fileWriter.close();
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.collection.CasConsumer_ImplBase#reconfigure()
+ */
+ @Override
+ public void reconfigure() throws ResourceConfigurationException {
+ // reset reconfiguration - is done
+ this.reconfig = false;
+
+ super.reconfigure();
+ // extract configuration parameter settings
+ String oPath = (String) getUimaContext().getConfigParameterValue("outputFile");
+ File oFile = new File(oPath);
+ // if output file has changed, close exiting file and open new
+ if (!oFile.equals(this.outFile)) {
+ this.outFile = oFile;
+ try {
+ if (this.fileWriter != null)
+ this.fileWriter.close();
+
+ // If specified output directory does not exist, try to create it
+ if (oFile.getParentFile() != null && !oFile.getParentFile().exists()) {
+ if (!oFile.getParentFile().mkdirs())
+ throw new ResourceConfigurationException(
+ ResourceInitializationException.RESOURCE_DATA_NOT_VALID,
+ new Object[] { oPath, "outputFile" });
+ }
+ // write result specification to the output file
+ this.fileWriter = new OutputStreamWriter(new FileOutputStream(oFile, false),
+ StandardCharsets.UTF_8);
+ } catch (IOException e) {
+ throw new ResourceConfigurationException();
+ }
+ }
+
+ // extract annotation types
+ this.tofs = (String[]) getUimaContext().getConfigParameterValue("AnnotationTypes");
+ // sort array
+ if (this.tofs != null)
+ Arrays.sort(this.tofs);
+
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.apache.uima.collection.CasConsumer_ImplBase#destroy()
+ */
+ @Override
+ public void destroy() {
+ if (this.fileWriter != null) {
+ try {
+ this.fileWriter.close();
+ } catch (IOException e) {
+ // ignore IOException on destroy
+ }
+ }
+ }
}
diff --git a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotatorPerformanceTester.java b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotatorPerformanceTester.java
index 1b3ceef..f79c7fc 100644
--- a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotatorPerformanceTester.java
+++ b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotatorPerformanceTester.java
@@ -36,7 +36,6 @@ import org.apache.uima.util.Logger;
import org.apache.uima.util.XMLInputSource;
import org.junit.Assert;
-
/**
* AnnotatorPerfTester is a helper class to execute annotator performance tests. The performance
* test results are returned as {@link PerformanceTestResultImpl} object.
@@ -55,7 +54,9 @@ public class AnnotatorPerformanceTester {
private FileFileFilter() {
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see java.io.FileFilter#accept(java.io.File)
*/
@Override
@@ -82,16 +83,23 @@ public class AnnotatorPerformanceTester {
/**
* runs an annotator performance test.
*
- * @param repeatSingle if true, every document is process "numsToRun" times before the next document is
+ * @param repeatSingle
+ * if true, every document is process "numsToRun" times before the next document is
* processed. If false, all documents are processed and this is repeated "numsToRun"
* times.
- * @param numsToRun repeat count for the input documents
- * @param taeDescFilePath ae descriptor - absolute file path
- * @param testFileDir test file directory
- * @param dataPath ae datapath
- * @param doWarmup do warum for analysis engine - runs an short english sample document
+ * @param numsToRun
+ * repeat count for the input documents
+ * @param taeDescFilePath
+ * ae descriptor - absolute file path
+ * @param testFileDir
+ * test file directory
+ * @param dataPath
+ * ae datapath
+ * @param doWarmup
+ * do warum for analysis engine - runs an short english sample document
* @return PerformanceTestResult - returns the performance test results
- * @throws Exception passthru
+ * @throws Exception
+ * passthru
*/
public static PerformanceTestResult runPerformanceTest(boolean repeatSingle, int numsToRun,
File taeDescFilePath, File testFileDir, String dataPath, boolean doWarmup)
@@ -118,8 +126,7 @@ public class AnnotatorPerformanceTester {
}
// get current log level setting
- Level defaultLogLevel = (Level) logLevels.get(LogManager.getLogManager()
- .getProperty(".level"));
+ Level defaultLogLevel = (Level) logLevels.get(LogManager.getLogManager().getProperty(".level"));
if (defaultLogLevel == null) {
// no log level was specified, use default log level settings "INFO" that is also
@@ -130,7 +137,7 @@ public class AnnotatorPerformanceTester {
Logger logger = UIMAFramework.getLogger();
logger.setLevel(Level.OFF);
- //create timer
+ // create timer
Timer globalTimer = new Timer();
Timer initTimer = new Timer();
Timer warmupTimer = new Timer();
@@ -138,16 +145,16 @@ public class AnnotatorPerformanceTester {
Timer processResetTimer = new Timer();
Timer cleanupTimer = new Timer();
Timer documentPreparationTimer = new Timer();
-
- //start timer for global time
+
+ // start timer for global time
globalTimer.start();
// init analysis engine
try {
- // start initialization timer
+ // start initialization timer
initTimer.start();
-
+
// set datapath
ResourceManager resMgr = UIMAFramework.newDefaultResourceManager();
if (dataPath != null) {
@@ -178,7 +185,7 @@ public class AnnotatorPerformanceTester {
result.setInitTime(initTimer.getTimeSpan());
if (doWarmup) {
- // start warmup timer
+ // start warmup timer
warmupTimer.start();
// process dummy document
diff --git a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotatorTester.java b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotatorTester.java
index 99b6627..4dd448a 100644
--- a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotatorTester.java
+++ b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/AnnotatorTester.java
@@ -43,352 +43,350 @@ import org.apache.uima.util.InvalidXMLException;
import org.apache.uima.util.XMLInputSource;
import org.junit.Assert;
-
/**
* AnnotatorTester is the helper class to test annotators.
*/
public class AnnotatorTester {
-
- /** The desc file. */
- // annotator descriptor
- private File descFile;
-
- /** The ae. */
- // analysis engine instance
- private AnalysisEngine ae;
-
- /** The mgr. */
- // Resource Manager
- private ResourceManager mgr;
-
- /**
- * Constructor save the specified descriptor file path and initialize the
- * analysis engine.
- *
- * @param descFilePath
- * descriptor file path
- * @throws Exception passthru
- * if an analysis engine initialize error occurs.
- */
- public AnnotatorTester(String descFilePath) throws Exception {
- this.descFile = new File(descFilePath);
- this.mgr = UIMAFramework.newDefaultResourceManager();
- setup();
- }
-
- /**
- * Constructor save the specified descriptor file path and initialize the
- * analysis engine.
- *
- * @param descFile
- * descriptor file
- * @throws Exception passthru
- * if an analysis engine initialize error occurs.
- */
- public AnnotatorTester(File descFile) throws Exception {
- this.descFile = descFile;
- this.mgr = UIMAFramework.newDefaultResourceManager();
- setup();
- }
-
- /**
- * Constructor save the specified descriptor file path and initialize the
- * analysis engine.
- *
- * @param descFilePath
- * descriptor file path
- * @param mgr
- * a ResourceManager
- * @throws Exception
- * if an analysis engine initialize error occurs.
- */
- public AnnotatorTester(String descFilePath, ResourceManager mgr)
- throws Exception {
- this.descFile = new File(descFilePath);
- this.mgr = mgr;
- setup();
- }
-
- /**
- * initialize the analysis engine with the specified specifier.
- *
- * @throws Exception passthru
- */
- private void setup() throws Exception {
- this.ae = null;
- // Create an XML input source from the specifier file.
- XMLInputSource in = new XMLInputSource(this.descFile);
- // Parse the specifier.
- ResourceSpecifier specifier = UIMAFramework.getXMLParser()
- .parseResourceSpecifier(in);
- // Create the Text Analysis Engine.
- this.ae = UIMAFramework.produceAnalysisEngine(specifier, this.mgr,
- null);
- }
-
- /**
- * change the parameter name for the given analysis engine.
- *
- * @param groupName group name, if no group is available, pass null
- * @param paramName parameter name
- * @param paramValue parameter value
- * @throws ResourceConfigurationException passthru
- */
- public void changeParameterSetting(String groupName, String paramName,
- Object paramValue) throws ResourceConfigurationException {
- if (groupName == null) {
- this.ae.setConfigParameterValue(paramName, paramValue);
- } else {
- this.ae.setConfigParameterValue(groupName, paramName, paramValue);
- }
- // call reconfigure to activate the change
- this.ae.reconfigure();
- }
-
- /**
- * change the parameter name for the given delegate analysis engine key.
- *
- * @param delegeteKey analysis engine key
- * @param groupName group name
- * @param paramName parameter name
- * @param paramValue parameter value
- * @throws InvalidXMLException passthru
- * @throws ResourceInitializationException passthru
- * @throws IOException passthru
- */
- public void changeDelegateParameterSetting(String delegeteKey,
- String groupName, String paramName, Object paramValue)
- throws InvalidXMLException, ResourceInitializationException,
- IOException {
- // create CasConsumer description
- AnalysisEngineDescription aeSpecifier = UIMAFramework.getXMLParser()
+
+ /** The desc file. */
+ // annotator descriptor
+ private File descFile;
+
+ /** The ae. */
+ // analysis engine instance
+ private AnalysisEngine ae;
+
+ /** The mgr. */
+ // Resource Manager
+ private ResourceManager mgr;
+
+ /**
+ * Constructor save the specified descriptor file path and initialize the analysis engine.
+ *
+ * @param descFilePath
+ * descriptor file path
+ * @throws Exception
+ * passthru if an analysis engine initialize error occurs.
+ */
+ public AnnotatorTester(String descFilePath) throws Exception {
+ this.descFile = new File(descFilePath);
+ this.mgr = UIMAFramework.newDefaultResourceManager();
+ setup();
+ }
+
+ /**
+ * Constructor save the specified descriptor file path and initialize the analysis engine.
+ *
+ * @param descFile
+ * descriptor file
+ * @throws Exception
+ * passthru if an analysis engine initialize error occurs.
+ */
+ public AnnotatorTester(File descFile) throws Exception {
+ this.descFile = descFile;
+ this.mgr = UIMAFramework.newDefaultResourceManager();
+ setup();
+ }
+
+ /**
+ * Constructor save the specified descriptor file path and initialize the analysis engine.
+ *
+ * @param descFilePath
+ * descriptor file path
+ * @param mgr
+ * a ResourceManager
+ * @throws Exception
+ * if an analysis engine initialize error occurs.
+ */
+ public AnnotatorTester(String descFilePath, ResourceManager mgr) throws Exception {
+ this.descFile = new File(descFilePath);
+ this.mgr = mgr;
+ setup();
+ }
+
+ /**
+ * initialize the analysis engine with the specified specifier.
+ *
+ * @throws Exception
+ * passthru
+ */
+ private void setup() throws Exception {
+ this.ae = null;
+ // Create an XML input source from the specifier file.
+ XMLInputSource in = new XMLInputSource(this.descFile);
+ // Parse the specifier.
+ ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
+ // Create the Text Analysis Engine.
+ this.ae = UIMAFramework.produceAnalysisEngine(specifier, this.mgr, null);
+ }
+
+ /**
+ * change the parameter name for the given analysis engine.
+ *
+ * @param groupName
+ * group name, if no group is available, pass null
+ * @param paramName
+ * parameter name
+ * @param paramValue
+ * parameter value
+ * @throws ResourceConfigurationException
+ * passthru
+ */
+ public void changeParameterSetting(String groupName, String paramName, Object paramValue)
+ throws ResourceConfigurationException {
+ if (groupName == null) {
+ this.ae.setConfigParameterValue(paramName, paramValue);
+ } else {
+ this.ae.setConfigParameterValue(groupName, paramName, paramValue);
+ }
+ // call reconfigure to activate the change
+ this.ae.reconfigure();
+ }
+
+ /**
+ * change the parameter name for the given delegate analysis engine key.
+ *
+ * @param delegeteKey
+ * analysis engine key
+ * @param groupName
+ * group name
+ * @param paramName
+ * parameter name
+ * @param paramValue
+ * parameter value
+ * @throws InvalidXMLException
+ * passthru
+ * @throws ResourceInitializationException
+ * passthru
+ * @throws IOException
+ * passthru
+ */
+ public void changeDelegateParameterSetting(String delegeteKey, String groupName, String paramName,
+ Object paramValue)
+ throws InvalidXMLException, ResourceInitializationException, IOException {
+ // create CasConsumer description
+ AnalysisEngineDescription aeSpecifier = UIMAFramework.getXMLParser()
.parseAnalysisEngineDescription(new XMLInputSource(this.descFile));
- // get delegates
- Map delegates = aeSpecifier.getDelegateAnalysisEngineSpecifiers();
-
- // check if delegeteKey is available
- if (delegates.containsKey(delegeteKey)) {
- // create new import
- AnalysisEngineDescription delegate = (AnalysisEngineDescription) delegates
- .get(delegeteKey);
-
- if (groupName == null) {
- delegate.getMetaData().getConfigurationParameterSettings()
- .setParameterValue(paramName, paramValue);
- } else {
- delegate.getMetaData().getConfigurationParameterSettings()
- .setParameterValue(groupName, paramName, paramValue);
- }
+ // get delegates
+ Map delegates = aeSpecifier.getDelegateAnalysisEngineSpecifiers();
+
+ // check if delegeteKey is available
+ if (delegates.containsKey(delegeteKey)) {
+ // create new import
+ AnalysisEngineDescription delegate = (AnalysisEngineDescription) delegates.get(delegeteKey);
+
+ if (groupName == null) {
+ delegate.getMetaData().getConfigurationParameterSettings().setParameterValue(paramName,
+ paramValue);
+ } else {
+ delegate.getMetaData().getConfigurationParameterSettings().setParameterValue(groupName,
+ paramName, paramValue);
}
+ }
- // produce new AE
- this.ae = UIMAFramework
- .produceAnalysisEngine(aeSpecifier, this.mgr, null);
-
- }
-
- /**
- * does configuration parameter test.
- *
- * @param configDescFilePath the config desc file path
- * @return AnalysisEngine
- * @throws Exception passthru
- */
- public static AnalysisEngine doConfigurationTest(String configDescFilePath)
- throws Exception {
- AnalysisEngine ae = null;
- // Create an XML input source from the specifier file.
- XMLInputSource in = new XMLInputSource(configDescFilePath);
- // Parse the specifier.
- ResourceSpecifier specifier = UIMAFramework.getXMLParser()
- .parseResourceSpecifier(in);
- // Create the Text Analysis Engine.
- ae = UIMAFramework.produceAnalysisEngine(specifier, null, null);
-
- // Create a new CAS.
- CAS cas = ae.newCAS();
- // Set the document text on the CAS.
- cas
- .setDocumentText("This is a simple text to check if the configuration works");
- cas.setDocumentLanguage("en");
- // Process the sample document.
- ae.process(cas);
-
- return ae;
- }
-
- /**
- * Creates a new fresh CAS instance which can be used for testing.
- * @return a new fresh CAS instance which can be used for testing
- * @throws Exception passthru
- */
- public CAS createCAS() throws Exception {
- return ae.newCAS();
+ // produce new AE
+ this.ae = UIMAFramework.produceAnalysisEngine(aeSpecifier, this.mgr, null);
+
+ }
+
+ /**
+ * does configuration parameter test.
+ *
+ * @param configDescFilePath
+ * the config desc file path
+ * @return AnalysisEngine
+ * @throws Exception
+ * passthru
+ */
+ public static AnalysisEngine doConfigurationTest(String configDescFilePath) throws Exception {
+ AnalysisEngine ae = null;
+ // Create an XML input source from the specifier file.
+ XMLInputSource in = new XMLInputSource(configDescFilePath);
+ // Parse the specifier.
+ ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
+ // Create the Text Analysis Engine.
+ ae = UIMAFramework.produceAnalysisEngine(specifier, null, null);
+
+ // Create a new CAS.
+ CAS cas = ae.newCAS();
+ // Set the document text on the CAS.
+ cas.setDocumentText("This is a simple text to check if the configuration works");
+ cas.setDocumentLanguage("en");
+ // Process the sample document.
+ ae.process(cas);
+
+ return ae;
+ }
+
+ /**
+ * Creates a new fresh CAS instance which can be used for testing.
+ *
+ * @return a new fresh CAS instance which can be used for testing
+ * @throws Exception
+ * passthru
+ */
+ public CAS createCAS() throws Exception {
+ return ae.newCAS();
+ }
+
+ /**
+ * performs a test on the initialized annotator. The specified document is processed with the
+ * given language.
+ *
+ * @param text
+ * a document text
+ * @param language
+ * the document text language
+ * @return CAS - results of the analysis
+ * @throws Exception
+ * passthru
+ */
+ public CAS performTest(String text, String language) throws Exception {
+ // Create a new CAS.
+ CAS cas = this.ae.newCAS();
+ // Set the document text on the CAS.
+ cas.setDocumentText(text);
+ cas.setDocumentLanguage(language);
+ // Process the sample document.
+ this.ae.process(cas);
+
+ return cas;
+ }
+
+ /**
+ * performs a test on the initialized annotator. The specified CAS is processed and the results
+ * are returned.
+ *
+ * @param cas
+ * a CAS for processing
+ * @return CAS - results of the analysis
+ * @throws Exception
+ * passthru
+ */
+ public CAS performTest(CAS cas) throws Exception {
+ // Process the sample document.
+ this.ae.process(cas);
+
+ return cas;
+ }
+
+ /**
+ * performs a test with a special annotator configuration. For this a new AE is created and used
+ * to process the specified document for the specified language.
+ *
+ * @param descFilePath
+ * Descriptor file path
+ * @param text
+ * a document text
+ * @param language
+ * the document text language
+ * @return CAS - results of the analysis
+ * @throws Exception
+ * passthru
+ */
+ public static CAS performTest(String descFilePath, String text, String language)
+ throws Exception {
+ AnalysisEngine ae = null;
+ // Create an XML input source from the specifier file.
+ XMLInputSource in = new XMLInputSource(descFilePath);
+ // Parse the specifier.
+ ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
+ // Create the Text Analysis Engine.
+ ae = UIMAFramework.produceAnalysisEngine(specifier, null, null);
+
+ // Create a new CAS.
+ CAS cas = ae.newCAS();
+ // Set the document text on the CAS.
+ cas.setDocumentText(text);
+ cas.setDocumentLanguage(language);
+ // Process the sample document.
+ ae.process(cas);
+
+ return cas;
+ }
+
+ /**
+ * create a CAS object from the given XCAS and typesystem files.
+ *
+ * @param tsFile
+ * - a typesystem file
+ * @param xcasFile
+ * - a xcas file
+ * @return CAS - CAS object created from the given input data
+ * @throws Exception
+ * passthru
+ */
+ public static CAS getCASfromXCAS(File tsFile, File xcasFile) throws Exception {
+ Object tsDescriptor = UIMAFramework.getXMLParser().parse(new XMLInputSource(tsFile));
+ TypeSystemDescription tsDesc = (TypeSystemDescription) tsDescriptor;
+ CAS cas = CasCreationUtils.createCas(tsDesc, null, new FsIndexDescription[0]);
+
+ SAXParser parser = XMLUtils.createSAXParserFactory().newSAXParser();
+ XCASDeserializer xcasDeserializer = new XCASDeserializer(cas.getTypeSystem());
+ parser.parse(xcasFile, xcasDeserializer.getXCASHandler(cas));
+
+ return cas;
+ }
+
+ /**
+ * Reads the content form a file to a String with respect to the file encoding.
+ *
+ * @param file
+ * a file with the source
+ * @param encoding
+ * file encoding
+ * @return String - file content
+ * @throws Exception
+ * passthru
+ */
+ public static String readFileContent(File file, String encoding) throws Exception {
+ return FileUtils.file2String(file, encoding);
+ }
+
+ /**
+ * checkResult compares the analyzed document with the reference output.
+ *
+ * @param cas
+ * a cas with the analyzed data
+ * @param AnnotationTypes
+ * respected annotation types
+ * @param refFile
+ * reference output
+ * @param testFile
+ * test file for the current output
+ * @throws Exception
+ * passthru
+ */
+ public static void checkResult(CAS cas, String[] AnnotationTypes, File refFile, File testFile)
+ throws Exception {
+
+ testFile.delete(); // delete file if exist
+ testFile.createNewFile(); // create new file
+
+ // Create an XML input source from the specifier file.
+ XMLInputSource in = new XMLInputSource(JUnitExtension.getURL("AnnotationWriter.xml"));
+ // Parse the specifier.
+ ResourceSpecifier specifier = UIMAFramework.getXMLParser().parseResourceSpecifier(in);
+
+ CasConsumer consumer = UIMAFramework.produceCasConsumer(specifier);
+
+ consumer.setConfigParameterValue("AnnotationTypes", AnnotationTypes);
+
+ consumer.setConfigParameterValue("outputFile", testFile.getAbsolutePath());
+
+ consumer.reconfigure();
+
+ consumer.processCas(cas);
+ consumer.destroy();
+
+ // check file output
+ boolean isIdentical = FileCompare.compare(refFile, testFile);
+
+ if (isIdentical) {
+ testFile.delete();
}
-
- /**
- * performs a test on the initialized annotator. The specified document is
- * processed with the given language.
- *
- * @param text
- * a document text
- * @param language
- * the document text language
- * @return CAS - results of the analysis
- * @throws Exception passthru
- */
- public CAS performTest(String text, String language) throws Exception {
- // Create a new CAS.
- CAS cas = this.ae.newCAS();
- // Set the document text on the CAS.
- cas.setDocumentText(text);
- cas.setDocumentLanguage(language);
- // Process the sample document.
- this.ae.process(cas);
-
- return cas;
- }
-
- /**
- * performs a test on the initialized annotator. The specified CAS is
- * processed and the results are returned.
- *
- * @param cas
- * a CAS for processing
- * @return CAS - results of the analysis
- * @throws Exception passthru
- */
- public CAS performTest(CAS cas) throws Exception {
- // Process the sample document.
- this.ae.process(cas);
-
- return cas;
- }
-
- /**
- * performs a test with a special annotator configuration. For this a new AE
- * is created and used to process the specified document for the specified
- * language.
- *
- * @param descFilePath
- * Descriptor file path
- * @param text
- * a document text
- * @param language
- * the document text language
- * @return CAS - results of the analysis
- * @throws Exception passthru
- */
- public static CAS performTest(String descFilePath, String text,
- String language) throws Exception {
- AnalysisEngine ae = null;
- // Create an XML input source from the specifier file.
- XMLInputSource in = new XMLInputSource(descFilePath);
- // Parse the specifier.
- ResourceSpecifier specifier = UIMAFramework.getXMLParser()
- .parseResourceSpecifier(in);
- // Create the Text Analysis Engine.
- ae = UIMAFramework.produceAnalysisEngine(specifier, null, null);
-
- // Create a new CAS.
- CAS cas = ae.newCAS();
- // Set the document text on the CAS.
- cas.setDocumentText(text);
- cas.setDocumentLanguage(language);
- // Process the sample document.
- ae.process(cas);
-
- return cas;
- }
-
- /**
- * create a CAS object from the given XCAS and typesystem files.
- *
- * @param tsFile -
- * a typesystem file
- * @param xcasFile -
- * a xcas file
- * @return CAS - CAS object created from the given input data
- * @throws Exception passthru
- */
- public static CAS getCASfromXCAS(File tsFile, File xcasFile)
- throws Exception {
- Object tsDescriptor = UIMAFramework.getXMLParser().parse(
- new XMLInputSource(tsFile));
- TypeSystemDescription tsDesc = (TypeSystemDescription) tsDescriptor;
- CAS cas = CasCreationUtils.createCas(tsDesc, null,
- new FsIndexDescription[0]);
-
- SAXParser parser = XMLUtils.createSAXParserFactory().newSAXParser();
- XCASDeserializer xcasDeserializer = new XCASDeserializer(cas
- .getTypeSystem());
- parser.parse(xcasFile, xcasDeserializer.getXCASHandler(cas));
-
- return cas;
- }
-
- /**
- * Reads the content form a file to a String with respect to the file
- * encoding.
- *
- * @param file
- * a file with the source
- * @param encoding
- * file encoding
- * @return String - file content
- * @throws Exception passthru
- */
- public static String readFileContent(File file, String encoding)
- throws Exception {
- return FileUtils.file2String(file, encoding);
- }
-
- /**
- * checkResult compares the analyzed document with the reference output.
- *
- * @param cas
- * a cas with the analyzed data
- * @param AnnotationTypes
- * respected annotation types
- * @param refFile
- * reference output
- * @param testFile
- * test file for the current output
- * @throws Exception passthru
- */
- public static void checkResult(CAS cas, String[] AnnotationTypes,
- File refFile, File testFile) throws Exception {
-
- testFile.delete(); // delete file if exist
- testFile.createNewFile(); // create new file
-
- // Create an XML input source from the specifier file.
- XMLInputSource in = new XMLInputSource(JUnitExtension
- .getURL("AnnotationWriter.xml"));
- // Parse the specifier.
- ResourceSpecifier specifier = UIMAFramework.getXMLParser()
- .parseResourceSpecifier(in);
-
- CasConsumer consumer = UIMAFramework.produceCasConsumer(specifier);
-
- consumer.setConfigParameterValue("AnnotationTypes", AnnotationTypes);
-
- consumer.setConfigParameterValue("outputFile", testFile
- .getAbsolutePath());
-
- consumer.reconfigure();
-
- consumer.processCas(cas);
- consumer.destroy();
-
- // check file output
- boolean isIdentical = FileCompare.compare(refFile, testFile);
-
- if (isIdentical) {
- testFile.delete();
- }
-
- Assert.assertTrue(isIdentical);
- }
+
+ Assert.assertTrue(isIdentical);
+ }
}
diff --git a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/PerformanceTestResult.java b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/PerformanceTestResult.java
index d0da3db..511b0e8 100644
--- a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/PerformanceTestResult.java
+++ b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/PerformanceTestResult.java
@@ -23,20 +23,19 @@ import java.io.File;
import org.apache.uima.internal.util.TimeSpan;
-
/**
* PerformanceTestResult interfance contains all the methods to access the performance test results.
*
*/
public interface PerformanceTestResult {
- /**
- * Gets the number of processed characters.
- *
- * @return Returns the number of processed characters.
- */
+ /**
+ * Gets the number of processed characters.
+ *
+ * @return Returns the number of processed characters.
+ */
int getNumberOfProcessedCharacters();
-
+
/**
* Gets the number of processed files.
*
@@ -50,7 +49,7 @@ public interface PerformanceTestResult {
* @return Returns the UIMA datapath setting used for the performance test.
*/
String getUIMADatapath();
-
+
/**
* Gets the ae init time.
*
@@ -136,10 +135,11 @@ public interface PerformanceTestResult {
* @param file
* Output file where the results are written to
*
- * @throws Exception passthru
+ * @throws Exception
+ * passthru
*/
void writePerfResultsAsColumn(String level, File file) throws Exception;
-
+
/**
* Gets the ae cleanup time.
*
diff --git a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/PerformanceTestResultImpl.java b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/PerformanceTestResultImpl.java
index 8f6a15f..d741da5 100644
--- a/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/PerformanceTestResultImpl.java
+++ b/uimaj-component-test-util/src/main/java/org/apache/uima/test/junit_extension/PerformanceTestResultImpl.java
@@ -26,10 +26,9 @@ import java.util.GregorianCalendar;
import org.apache.uima.internal.util.TimeSpan;
-
/**
- * PerformanceTestResultImpl implements the PerformanceTestResult interface and provides the results of a performance
- * test run.
+ * PerformanceTestResultImpl implements the PerformanceTestResult interface and provides the results
+ * of a performance test run.
*
*/
public class PerformanceTestResultImpl implements PerformanceTestResult {
@@ -88,8 +87,11 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/** The document preparation time. */
private TimeSpan documentPreparationTime = null;
- /* (non-Javadoc)
- * @see org.apache.uima.test.junit_extension.PerformanceTestResult#getNumberOfProcessedCharacters()
+ /*
+ * (non-Javadoc)
+ *
+ * @see
+ * org.apache.uima.test.junit_extension.PerformanceTestResult#getNumberOfProcessedCharacters()
*/
@Override
public int getNumberOfProcessedCharacters() {
@@ -99,13 +101,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the number of characters.
*
- * @param numberOfCharacters The number of characters.
+ * @param numberOfCharacters
+ * The number of characters.
*/
public void setNumberOfCharacters(int numberOfCharacters) {
this.numberOfCharacters = numberOfCharacters;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getNumberOfProcessedFiles()
*/
@Override
@@ -116,13 +121,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the number of files.
*
- * @param numberOfFiles The number of files.
+ * @param numberOfFiles
+ * The number of files.
*/
public void setNumberOfFiles(int numberOfFiles) {
this.numberOfFiles = numberOfFiles;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getUIMADatapath()
*/
@Override
@@ -133,13 +141,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the datapath.
*
- * @param datapath The UIMA datapath.
+ * @param datapath
+ * The UIMA datapath.
*/
public void setDatapath(String datapath) {
this.datapath = datapath;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getAeInitTime()
*/
@Override
@@ -150,13 +161,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the inits the time.
*
- * @param initTime The analysis engine init time.
+ * @param initTime
+ * The analysis engine init time.
*/
public void setInitTime(TimeSpan initTime) {
this.initTime = initTime;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getFileIoTime()
*/
@Override
@@ -167,13 +181,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the io time.
*
- * @param ioTime The file io time to set.
+ * @param ioTime
+ * The file io time to set.
*/
public void setIoTime(TimeSpan ioTime) {
this.ioTime = ioTime;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getNumberOfCreatedAnnotations()
*/
@Override
@@ -184,13 +201,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the number of created annotations.
*
- * @param numberOfCreatedAnnotations The number of created annotations to set.
+ * @param numberOfCreatedAnnotations
+ * The number of created annotations to set.
*/
public void setNumberOfCreatedAnnotations(int numberOfCreatedAnnotations) {
this.numberOfCreatedAnnotations = numberOfCreatedAnnotations;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getNumberOfRepeatedRuns()
*/
@Override
@@ -201,13 +221,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the nums to run.
*
- * @param numsToRun The number of repeated runs.
+ * @param numsToRun
+ * The number of repeated runs.
*/
public void setNumsToRun(int numsToRun) {
this.numsToRun = numsToRun;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getOverallTime()
*/
@Override
@@ -218,13 +241,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the overall time.
*
- * @param overallTime The overall processing time.
+ * @param overallTime
+ * The overall processing time.
*/
public void setOverallTime(TimeSpan overallTime) {
this.overallTime = overallTime;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getAeProcessingTime()
*/
@Override
@@ -235,13 +261,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the processing time.
*
- * @param processingTime The analysis engine processing time.
+ * @param processingTime
+ * The analysis engine processing time.
*/
public void setProcessingTime(TimeSpan processingTime) {
this.processingTime = processingTime;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#isRepeatSingleMode()
*/
@Override
@@ -252,13 +281,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the repeat single mode.
*
- * @param repeatSingleMode The repeat single mode setting
+ * @param repeatSingleMode
+ * The repeat single mode setting
*/
public void setRepeatSingleMode(boolean repeatSingleMode) {
this.repeatSingleMode = repeatSingleMode;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getAeDescFilePath()
*/
@Override
@@ -269,13 +301,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the ae desc file path.
*
- * @param aeDescFile The analysis engine descriptor file.
+ * @param aeDescFile
+ * The analysis engine descriptor file.
*/
public void setAeDescFilePath(File aeDescFile) {
this.aeDescFile = aeDescFile;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getTestFileDirectoryPath()
*/
@Override
@@ -286,13 +321,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the test file dir.
*
- * @param testFileDir The test file directory.
+ * @param testFileDir
+ * The test file directory.
*/
public void setTestFileDir(File testFileDir) {
this.testFileDir = testFileDir;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getAeWarmupTime()
*/
@Override
@@ -303,13 +341,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the warmup time.
*
- * @param warmupTime The analysis engine warmup time.
+ * @param warmupTime
+ * The analysis engine warmup time.
*/
public void setWarmupTime(TimeSpan warmupTime) {
this.warmupTime = warmupTime;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#isDoAeWarmup()
*/
@Override
@@ -320,7 +361,8 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the do warmup.
*
- * @param doWarmup the doWarmup setting
+ * @param doWarmup
+ * the doWarmup setting
*/
public void setDoWarmup(boolean doWarmup) {
this.doWarmup = doWarmup;
@@ -344,9 +386,10 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
resultString.append("Use " + this.aeDescFile.getAbsolutePath() + " descriptor" + NEWLINE);
resultString.append("Fileset " + this.testFileDir + " is used" + NEWLINE);
resultString.append("Datapath setting is: " + this.datapath + NEWLINE);
- resultString.append("Number of documents (overall): " + this.getNumberOfProcessedFiles() + NEWLINE);
resultString
- .append("Number of characters (overall): " + this.getNumberOfProcessedCharacters() + NEWLINE);
+ .append("Number of documents (overall): " + this.getNumberOfProcessedFiles() + NEWLINE);
+ resultString.append(
+ "Number of characters (overall): " + this.getNumberOfProcessedCharacters() + NEWLINE);
resultString.append("Total document size (overall): "
+ (float) (this.getProcessedFileSize() / 1024) + " KB" + NEWLINE);
resultString.append(NEWLINE + "Initialize: " + NEWLINE);
@@ -361,10 +404,11 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
resultString.append("Analysis Engine processing time: " + this.processingTime + NEWLINE);
if (this.processingTime.getFullMilliseconds() > 0 && this.getProcessedFileSize() > 0) {
resultString.append("Processing throughput: "
- + (long) ((this.getProcessedFileSize() / 1024) / ((float) this.processingTime
- .getFullMilliseconds() / 1000)) + " KB/s" + NEWLINE);
- long mbPerSecond = (long) ((this.getProcessedFileSize() / 1024 / 1024) / ((float) this.processingTime
- .getFullMilliseconds() / 1000 / 60 / 60));
+ + (long) ((this.getProcessedFileSize() / 1024)
+ / ((float) this.processingTime.getFullMilliseconds() / 1000))
+ + " KB/s" + NEWLINE);
+ long mbPerSecond = (long) ((this.getProcessedFileSize() / 1024 / 1024)
+ / ((float) this.processingTime.getFullMilliseconds() / 1000 / 60 / 60));
resultString.append("Processing throughput: " + mbPerSecond + " MB/h" + NEWLINE);
}
@@ -385,7 +429,8 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
* @param file
* Output file where the results are written to
*
- * @throws Exception passthru
+ * @throws Exception
+ * passthru
*/
@Override
public void writePerfResultsAsColumn(String level, File file) throws Exception {
@@ -441,8 +486,8 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
FileWriter fileWriter = new FileWriter(file, true);
if (writeHeader) {
- fileWriter
- .write("Timestamp ; Levelname ; singleMode ; warmup; Docs ; Annotations ; Processing time ; init time ; io time");
+ fileWriter.write(
+ "Timestamp ; Levelname ; singleMode ; warmup; Docs ; Annotations ; Processing time ; init time ; io time");
fileWriter.write(System.getProperty("line.separator"));
}
@@ -454,7 +499,9 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
fileWriter.close();
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getAeCleanupTime()
*/
@Override
@@ -465,13 +512,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the cleanup time.
*
- * @param cleanupTime the analysis engine cleanup time
+ * @param cleanupTime
+ * the analysis engine cleanup time
*/
public void setCleanupTime(TimeSpan cleanupTime) {
this.cleanupTime = cleanupTime;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getDocumentPreparationTime()
*/
@Override
@@ -482,13 +532,16 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the document preparation time.
*
- * @param documentPreparationTime the document preparation time
+ * @param documentPreparationTime
+ * the document preparation time
*/
public void setDocumentPreparationTime(TimeSpan documentPreparationTime) {
this.documentPreparationTime = documentPreparationTime;
}
- /* (non-Javadoc)
+ /*
+ * (non-Javadoc)
+ *
* @see org.apache.uima.test.junit_extension.PerformanceTestResult#getProcessedFileSize()
*/
@Override
@@ -499,7 +552,8 @@ public class PerformanceTestResultImpl implements PerformanceTestResult {
/**
* Sets the total file size.
*
- * @param collectionFileSize the collection file size
+ * @param collectionFileSize
+ * the collection file size
*/
public void setTotalFileSize(long collectionFileSize) {
this.collectionFileSize = collectionFileSize;