You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2008/01/08 17:38:51 UTC
svn commit: r610062 [8/12] - in
/incubator/uima/sandbox/trunk/uima-ee/uimaj-ep-runtime-deployeditor: ./
src/main/java/org/apache/uima/aae/deployment/
src/main/java/org/apache/uima/aae/deployment/impl/
src/main/java/org/apache/uima/application/metadata/...
Modified: incubator/uima/sandbox/trunk/uima-ee/uimaj-ep-runtime-deployeditor/src/main/java/org/apache/uima/application/metadata/impl/UimaApplication_Impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-ee/uimaj-ep-runtime-deployeditor/src/main/java/org/apache/uima/application/metadata/impl/UimaApplication_Impl.java?rev=610062&r1=610061&r2=610062&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-ee/uimaj-ep-runtime-deployeditor/src/main/java/org/apache/uima/application/metadata/impl/UimaApplication_Impl.java (original)
+++ incubator/uima/sandbox/trunk/uima-ee/uimaj-ep-runtime-deployeditor/src/main/java/org/apache/uima/application/metadata/impl/UimaApplication_Impl.java Tue Jan 8 08:38:45 2008
@@ -1,2150 +1,2150 @@
-/**
- *
- * Project UIMA Tooling
- *
- *
- * creation date: Jan 17, 2007, 8:31:39 AM
- * source: UimaApplication_Impl.java
- */
-
-/**
- * Modified Logs:
- *
- * 07-16-2007
- * Remove the code that does duplicate operations when adding Collection Reader
- * and CasProcessors.
- * Note: Look at "addCpeDescription" by searching for testIt flag
- *
- */
-package org.apache.uima.application.metadata.impl;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintStream;
-import java.io.StringWriter;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.uima.ResourceSpecifierFactory;
-import org.apache.uima.UIMAFramework;
-import org.apache.uima.UIMA_IllegalStateException;
-import org.apache.uima.aae.deployment.AsyncPrimitiveErrorConfiguration;
-import org.apache.uima.analysis_engine.AnalysisEngineDescription;
-import org.apache.uima.analysis_engine.TaeDescription;
-import org.apache.uima.analysis_engine.metadata.AnalysisEngineMetaData;
-import org.apache.uima.application.metadata.IRuntimeContext;
-import org.apache.uima.application.metadata.IStringSubstitution;
-import org.apache.uima.application.metadata.UimaApplication;
-import org.apache.uima.application.metadata.UimaCasProcessor;
-import org.apache.uima.application.util.UimaXmlParsingUtil;
-import org.apache.uima.collection.CasConsumerDescription;
-import org.apache.uima.collection.CasInitializerDescription;
-import org.apache.uima.collection.CollectionReaderDescription;
-import org.apache.uima.collection.impl.metadata.cpe.CpeCasProcessorsImpl;
-import org.apache.uima.collection.impl.metadata.cpe.CpeDescriptionImpl;
-import org.apache.uima.collection.impl.metadata.cpe.CpeDescriptorFactory;
-import org.apache.uima.collection.metadata.CasProcessorConfigurationParameterSettings;
-import org.apache.uima.collection.metadata.CasProcessorErrorHandling;
-import org.apache.uima.collection.metadata.CasProcessorErrorRateThreshold;
-import org.apache.uima.collection.metadata.CasProcessorMaxRestarts;
-import org.apache.uima.collection.metadata.CpeCasProcessor;
-import org.apache.uima.collection.metadata.CpeCheckpoint;
-import org.apache.uima.collection.metadata.CpeCollectionReader;
-import org.apache.uima.collection.metadata.CpeCollectionReaderCasInitializer;
-import org.apache.uima.collection.metadata.CpeComponentDescriptor;
-import org.apache.uima.collection.metadata.CpeConfiguration;
-import org.apache.uima.collection.metadata.CpeDescription;
-import org.apache.uima.collection.metadata.CpeDescriptorException;
-import org.apache.uima.cpe.model.ConfigParameterModel;
-import org.apache.uima.cpe.model.ConfigParametersModel;
-import org.apache.uima.cpe.model.CpeCasProcessorsSettings;
-import org.apache.uima.cpe.model.DefaultCasProcessorSettings;
-import org.apache.uima.cpe.model.UimaCasInitializer;
-import org.apache.uima.cpe.model.UimaCollectionReader;
-import org.apache.uima.resource.CustomResourceSpecifier;
-import org.apache.uima.resource.ResourceConfigurationException;
-import org.apache.uima.resource.ResourceInitializationException;
-import org.apache.uima.resource.ResourceManager;
-import org.apache.uima.resource.ResourceSpecifier;
-import org.apache.uima.resource.URISpecifier;
-import org.apache.uima.resource.metadata.ProcessingResourceMetaData;
-import org.apache.uima.resource.metadata.TypePriorities;
-import org.apache.uima.resource.metadata.TypeSystemDescription;
-import org.apache.uima.resource.metadata.impl.MetaDataObject_impl;
-import org.apache.uima.resource.metadata.impl.PropertyXmlInfo;
-import org.apache.uima.resource.metadata.impl.XmlizationInfo;
-import org.apache.uima.tools.debug.util.Trace;
-import org.apache.uima.util.CasCreationUtils;
-import org.apache.uima.util.InvalidXMLException;
-import org.apache.uima.util.XMLInputSource;
-import org.apache.uima.util.XMLParser;
-import org.apache.uima.util.XMLSerializer;
-import org.apache.uima.util.XMLizable;
-import org.eclipse.core.variables.VariablesPlugin;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.helpers.AttributesImpl;
-
-
-public class UimaApplication_Impl extends MetaDataObject_impl implements UimaApplication
-{
-
- private static final long serialVersionUID = -8677679822323086638L;
- private static XMLParser uimaXMLParser;
- private static UimaApplication instance = null;
-
- protected IRuntimeContext runtimeContext = new RuntimeContext ();
-
- // CPE Configuration Settings
- private CpeConfiguration cpeConfiguration = null;
-
- // Default Settings for EACH Cas Processor
- private DefaultCasProcessorSettings defaultCasProcessorSettings = null;
-
- // Default values of CasProcessorErrorHandling as defined by CPE
- // if no explicite settings in CPE Xml descriptor
- // This variable is used to compare with the value returned by
- // CasProcessor.getErrorHandling() which is NOT GOOD enough to identify if
- // ErrorHandling IS SET or NOT in CPE Xml descriptor
- private CasProcessorErrorHandling cpeDefaultErrorHandling = null;
-
- // Settings for CpeCasProcessors
- private CpeCasProcessorsSettings cpeCasProcessorsSettings = new CpeCasProcessorsSettings();
-
- // List of UimaCollectionReader
- private List uimaCollectionReaders = new ArrayList();
- private List uimaCasInitializers = new ArrayList();
- // List of UimaCasProcessors
- private List uimaCasProcessors = new ArrayList();
-
-
-// private CpeDescriptorModel mCpeDescriptorModel = null;
-// private UimaCasProcessor[] mUimaCasProcessors;
- private String cpeHref = null;
-
- static boolean isInitialized_UimaApplicationFramework = false;
-
- /*************************************************************************/
-
- static private IStringSubstitution stringSubstitutionManager = null;
-
- static public IStringSubstitution getStringSubstitutionManager () {
- return stringSubstitutionManager;
- }
-
- static public void setStringSubstitutionManager (IStringSubstitution manager) {
- stringSubstitutionManager = manager;
- }
-
- static public String resolveUimaXmlDescriptor (String xmlDescriptor)
- {
- if (stringSubstitutionManager != null) {
- // May return null
- return stringSubstitutionManager.resolveUimaXmlDescriptor(xmlDescriptor);
- } else {
- // Trace.trace("NULL");
- return xmlDescriptor;
- }
- }
-
- static public String generateVariableExpression (String variableName, String arg)
- {
- return VariablesPlugin.getDefault().getStringVariableManager()
- .generateVariableExpression(variableName, arg);
- }
-
-
- protected String toWorkspaceRelativePath (String xml)
- {
- String resolvedFileName = resolveUimaXmlDescriptor(xml);
- File f = new File(resolvedFileName);
- if ( !f.isAbsolute() ) {
- // Relative path
- if ( ! f.exists() ) {
- // Can NOT find file.
- // Try to find it within CURRENT DIRECTORY
- f = new File (currentDir, resolvedFileName);
- if ( ! f.exists() ) {
- Trace.err("*** ERROR: Cannot find file: " + resolvedFileName);
- } else {
- resolvedFileName = f.getAbsolutePath();
- }
- }
- // Trace.trace("+++ New xml:" + resolvedFileName);
- }
- resolvedFileName = generateVariableExpression("workspace_loc", resolvedFileName); //$NON-NLS-1$
- // File.
- return resolvedFileName;
- }
-
-
- /*************************************************************************/
-
- /**
- * Initialize UIMA XMLParser with new extension tags
- *
- */
- static public void initUimaApplicationFramework ()
- {
- if (isInitialized_UimaApplicationFramework) return;
-
- isInitialized_UimaApplicationFramework = true;
- uimaXMLParser = org.apache.uima.UIMAFramework.getXMLParser();
- try {
- uimaXMLParser.addMapping("uimaApplication",
- "org.apache.uima.application.metadata.impl.UimaApplication_Impl");
- uimaXMLParser.addMapping(TAG_COLLECTION_READER,
- "org.apache.uima.cpe.model.UimaCollectionReader");
- uimaXMLParser.addMapping(TAG_CAS_PROCESSOR,
- "org.apache.uima.application.metadata.impl.UimaCasProcessor_impl");
- uimaXMLParser.addMapping(TAG_DEPLOYMENT_OVERRIDES,
- "org.apache.uima.application.metadata.impl.DeploymentOverrides_impl");
- uimaXMLParser.addMapping(TAG_CONFIG_PARAM_OVERRIDES,
- "org.apache.uima.application.metadata.impl.ConfigParamOverrides_impl");
- uimaXMLParser.addMapping(TAG_CONFIG_PARAM_OVERRIDE_SET,
- "org.apache.uima.application.metadata.impl.OverrideSet_impl");
-
- //
- // For UIMA-ee Parsing
- //
- uimaXMLParser.addMapping("analysisEngineDeploymentDescription",
- "org.apache.uima.aae.deployment.impl.AEDeploymentDescription_Impl");
- uimaXMLParser.addMapping("service",
- "org.apache.uima.aae.deployment.impl.AEService_Impl");
- uimaXMLParser.addMapping("analysisEngine",
- "org.apache.uima.aae.deployment.impl.AEDeploymentMetaData_Impl");
- uimaXMLParser.addMapping("remoteAnalysisEngine",
- "org.apache.uima.aae.deployment.impl.RemoteAEDeploymentMetaData_Impl");
- uimaXMLParser.addMapping("asyncAggregateErrorConfiguration",
- "org.apache.uima.aae.deployment.impl.AsyncAggregateErrorConfiguration_Impl");
- uimaXMLParser.addMapping("asyncPrimitiveErrorConfiguration",
- "org.apache.uima.aae.deployment.impl.AsyncPrimitiveErrorConfiguration_Impl");
-
- // parse("c:/uima/Test/testApp.xml");
-
- //
- // For object creation
- //
- ResourceSpecifierFactory factory = UIMAFramework.getResourceSpecifierFactory();
- factory.addMapping("org.apache.uima.aae.deployment.AEDeploymentDescription",
- "org.apache.uima.aae.deployment.impl.AEDeploymentDescription_Impl");
- factory.addMapping("org.apache.uima.aae.deployment.AEDeploymentMetaData",
- "org.apache.uima.aae.deployment.impl.AEDeploymentMetaData_Impl");
- factory.addMapping("org.apache.uima.aae.deployment.RemoteAEDeploymentMetaData",
- "org.apache.uima.aae.deployment.impl.RemoteAEDeploymentMetaData_Impl");
- factory.addMapping("org.apache.uima.aae.deployment.AsyncAggregateErrorConfiguration",
- "org.apache.uima.aae.deployment.impl.AsyncAggregateErrorConfiguration_Impl");
- factory.addMapping("org.apache.uima.aae.deployment.AsyncPrimitiveErrorConfiguration",
- "org.apache.uima.aae.deployment.impl.AsyncPrimitiveErrorConfiguration_Impl");
-
- } catch (ClassNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- } // initUimaApplicationFramework
-
- /*************************************************************************/
-
- // Note: cannot be "protected" since it is used by XMLParser
- public UimaApplication_Impl ()
- {
- super();
- instance = this;
- // runtimeContext = new RuntimeContext ();
- defaultCasProcessorSettings = new DefaultCasProcessorSettings();
- cpeDefaultErrorHandling = getCpeDefaultErrorHandling ();
- cpeCasProcessorsSettings = new CpeCasProcessorsSettings();
- // printErrorHandling(cpeDefaultErrorHandling);
-
- }
- /*************************************************************************/
- // Duplicate in UimaXmlParsingUtil
- public static XMLizable parseUimaXmlDescriptor (String xmlDescriptorFileName)
- {
- XMLizable descriptionObject = null;
-
- File descFile = new File(xmlDescriptorFileName);;
- boolean validArgs = descFile.exists() && !descFile.isDirectory();
- if (!validArgs) {
- Trace.err("Cannot find: " +xmlDescriptorFileName);
- return null;
- }
-
- try {
- // Redirect UIMA log messages to file
- UIMAFramework.getLogger().setOutputStream(
- new PrintStream(new FileOutputStream("uima.log")));
-
- // turn off xi:include and environment variable expansion
-// XMLParser.ParsingOptions parsingOptions = new XMLParser.ParsingOptions(
-// false, false);
-
- // Get Resource Specifier from XML file
- XMLInputSource in;
- in = new XMLInputSource(descFile);
- // descriptionObject = UIMAFramework.getXMLParser().parse(in, parsingOptions);
- descriptionObject = UIMAFramework.getXMLParser().parse(in);
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return null;
- } catch (InvalidXMLException e) {
- Trace.err("xmlDescriptorFileName: " + xmlDescriptorFileName);
- e.printStackTrace();
- return null;
- } catch (UIMA_IllegalStateException e) {
- Trace.err("xmlDescriptorFileName: " + xmlDescriptorFileName);
- // e.printStackTrace();
- return null;
- }
-
- return descriptionObject;
- } // parseUimaXmlDescriptor
-
- static public TypeSystemDescription getTypeSystemDescription (ResourceSpecifier specifier)
- {
- TypeSystemDescription tsDescription = null;
-
- try {
- if (specifier instanceof TaeDescription) {
- TaeDescription tae = (TaeDescription) specifier;
- if ( tae.isPrimitive() ) {
- tsDescription = tae.getAnalysisEngineMetaData().getTypeSystem();
- } else {
- tsDescription = CasCreationUtils.mergeDelegateAnalysisEngineTypeSystems(tae);
- }
- } else if (specifier instanceof CasConsumerDescription) {
- CasConsumerDescription ccDescr = (CasConsumerDescription) specifier;
- tsDescription = ccDescr.getCasConsumerMetaData().getTypeSystem();
- } else if (specifier instanceof CollectionReaderDescription) {
- CollectionReaderDescription crDescr = (CollectionReaderDescription) specifier;
- tsDescription = crDescr.getCollectionReaderMetaData().getTypeSystem();
- }
- } catch (ResourceInitializationException e) {
- e.printStackTrace();
- }
-
- return tsDescription;
- } // getTypeSystemDescription
-
- /*************************************************************************/
-
- public TypeSystemDescription getTypeSystemDescription ()
- {
- TypeSystemDescription mergedTypeSystemDescription = null;
- List typeSystemList = new ArrayList();
- String resolvedXmlFile = null;
-// try {
-//
- // Add Collection Reader
- String aCollectionReaderPath = "";
- List list = getUimaCollectionReaders();
- // CpeCollectionReader cr = null;
- if (list != null && list.size() > 0) {
- aCollectionReaderPath = ((UimaCollectionReader)list.get(0)).getXmlDescriptor();
-
- resolvedXmlFile = resolveUimaXmlDescriptor(aCollectionReaderPath);
-
- CollectionReaderDescription crDescr = (CollectionReaderDescription) parseUimaXmlDescriptor (resolvedXmlFile);
-
- typeSystemList.add(crDescr.getCollectionReaderMetaData().getTypeSystem());
- }
-
- // Add Cas Processors (AE, Cas Consumer)
- list = getUimaCasProcessors();
- for (int i=0; i<list.size(); ++i) {
- UimaCasProcessor u = (UimaCasProcessor) list.get(i);
- resolvedXmlFile = resolveUimaXmlDescriptor(u.getXmlDescriptor());
- ResourceSpecifier specifier = null;
- try {
- specifier = UIMAFramework.getXMLParser()
- .parseResourceSpecifier(new XMLInputSource(resolvedXmlFile));
- } catch (InvalidXMLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- if (specifier == null) {
- continue;
- }
- typeSystemList.add(getTypeSystemDescription(specifier));
- }
-
- // Create Merged Type System
- try {
- mergedTypeSystemDescription = CasCreationUtils.mergeTypeSystems(typeSystemList);
- } catch (ResourceInitializationException e) {
- e.printStackTrace();
- return null;
- }
- // Set Name and Description
- mergedTypeSystemDescription.setName("Merged Type System for ???");
- String descr = "Merge TSs of: ";
- for (int i=0; i<typeSystemList.size(); ++i) {
- if (i > 0) {
- descr += ", ";
- }
- descr += ((TypeSystemDescription) typeSystemList.get(i)).getName();
- }
- mergedTypeSystemDescription.setDescription(descr);
-
-
- return mergedTypeSystemDescription;
- }
-
- public static String toXML (TypeSystemDescription typeSystemDescription)
- {
- String tsDescString = null;
- StringWriter sw = new StringWriter();
- try {
- typeSystemDescription.toXML(sw);
- tsDescString = sw.toString();
- sw.close();
- } catch (SAXException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return tsDescString;
- }
-
- /*************************************************************************/
-
- public void printErrorHandling (CasProcessorErrorHandling errorHandling)
- {
- Trace.trace("ErrorRateThreshold().getAction: " + errorHandling.getErrorRateThreshold().getAction());
- Trace.trace("ErrorRateThreshold().getMaxErrorCount: " + errorHandling.getErrorRateThreshold().getMaxErrorCount());
- Trace.trace("ErrorRateThreshold().getMaxErrorSampleSize: " + errorHandling.getErrorRateThreshold().getMaxErrorSampleSize());
-
- }
-
- static public UimaApplication getInstance () {
- return instance;
- }
-
- public void removeAll ()
- {
- cpeHref = null;
- cpeConfiguration = null;
- defaultCasProcessorSettings.removeAll();
- uimaCollectionReaders.clear();
- uimaCasProcessors.clear();
- }
-
- // get default values of CpeCheckpoint as defined by CPE
- // if no explicite settings in CPE Xml descriptor
- static public CpeCheckpoint getCpeDefaultCheckpoint ()
- {
- // CPE BUG!!! Need to call CpeDescriptorFactory.produceDescriptor();
-// CpeDescription cpeDesc = CpeDescriptorFactory.produceDescriptor();
- CpeCheckpoint c = CpeDescriptorFactory.produceCpeCheckpoint();
- // CPE BUG!!! Need to set some value before calling getFrequency()
- c.setFrequency(600000, true);
- return c;
- }
-
- // get default values of CasProcessorErrorHandling as defined by CPE
- // if no explicite settings in CPE Xml descriptor
- static public CasProcessorErrorHandling getCpeDefaultErrorHandling ()
- {
- // CPE BUG!!! Need to call CpeDescriptorFactory.produceDescriptor();
-// CpeDescription cpeDesc = CpeDescriptorFactory.produceDescriptor();
- CpeCasProcessor casProc = CpeDescriptorFactory.produceCasProcessor("dummy name");
- return casProc.getErrorHandling();
- }
-
- static public void setCasProcessorErrorHandling(CpeCasProcessor casProc,
- CasProcessorErrorHandling errorHandling)
- {
- if (errorHandling == null) {
- return;
- }
- casProc.setActionOnMaxError(errorHandling.getErrorRateThreshold().getAction());
- casProc.setMaxErrorCount(errorHandling.getErrorRateThreshold().getMaxErrorCount());
- casProc.setMaxErrorSampleSize(errorHandling.getErrorRateThreshold().getMaxErrorSampleSize());
-
- casProc.setMaxRestartCount(errorHandling.getMaxConsecutiveRestarts().getRestartCount());
- casProc.setActionOnMaxRestart(errorHandling.getMaxConsecutiveRestarts().getAction());
- casProc.setTimeout(errorHandling.getTimeout().get());
- }
-
-// static public UimaApplication createUimaApplication ()
-// {
-// initUimaApplicationFramework ();
-// instance = new UimaApplication_Impl();
-//
-// return instance;
-// }
-
- static public UimaApplication createUimaApplication (ResourceManager rm)
- {
- initUimaApplicationFramework ();
- instance = new UimaApplication_Impl();
- instance.setResourceManager(rm);
- return instance;
- }
-
- /**
- * Create UimaApplication from Uima Application XML Descriptor
- *
- */
- static public UimaApplication createUimaApplication (String appXmlDescriptorFile)
- {
- initUimaApplicationFramework ();
- UimaApplication_Impl u = null;
- try {
- u = (UimaApplication_Impl) uimaXMLParser.parse(new XMLInputSource(appXmlDescriptorFile));
- String cpeXml = u.getCpeDescriptor();
- if (cpeXml != null && cpeXml.trim().length()>0) {
- u.cpeHref = cpeXml;
- // Trace.trace("cpeXml: " + cpeXml);
-// u.mCpeDescriptorModel = CpeDescriptorModel.createInstance (cpeXml);
-// u.mCpeDescriptorModel.setUimaApplication (u);
- u.initUimaCasProcessors(); // Right now, DO NOTHING
- }
-
- } catch (InvalidXMLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- instance = u;
- return (UimaApplication) u;
- }
-
- /**
- * Create UimaApplication from UimaApplication Object
- *
- */
- static public void populateCpeDescriptor (UimaApplication uimaApp)
- throws InvalidXMLException, ResourceInitializationException, CpeDescriptorException
- {
- UimaApplication_Impl u = (UimaApplication_Impl) uimaApp;
-
- String cpeXml = resolveUimaXmlDescriptor(uimaApp.getCpeDescriptor());
- if (cpeXml != null && cpeXml.trim().length()>0) {
- u.cpeHref = cpeXml;
- CpeDescription cpeDescription = null;
- try {
- cpeDescription = UIMAFramework.getXMLParser().parseCpeDescription(new XMLInputSource(new File(cpeXml)));
- } catch (InvalidXMLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- u.addXMLizable(cpeXml, cpeDescription);
- // Trace.trace("cpeXml: " + cpeXml);
-// u.mCpeDescriptorModel = CpeDescriptorModel.createInstance (cpeXml);
-// u.mCpeDescriptorModel.setUimaApplication (uimaApp);
- // u.initUimaCasProcessors();
- }
- instance = u;
- }
-
- static public UimaApplication createUimaApplication (String cpeXml, CpeDescription cpeDescription)
- {
- UimaApplication_Impl uimaApp = new UimaApplication_Impl();
-
- uimaApp.cpeHref = cpeXml;
- // Trace.trace("cpeXml: " + cpeXml);
- // uimaApp.createUimaCasProcessors();
- instance = uimaApp;
- return (UimaApplication) uimaApp;
- }
-
- /**
- * Create UimaApplication from CpeDescription
- *
- * @param cpeDescription
- * @return UimaApplication
- * @throws IOException
- */
-// static public UimaApplication createUimaApplication (CpeDescription cpeDescription)
-// {
-// UimaApplication_Impl uimaApp = new UimaApplication_Impl();
-//
-// // uimaApp.cpeHref = cpeXml;
-// // Trace.trace("cpeXml: " + cpeXml);
-//// uimaApp.mCpeDescriptorModel = CpeDescriptorModel.createInstance (cpeXml, cpeDescription);
-//// uimaApp.mCpeDescriptorModel.setUimaApplication (uimaApp);
-// // uimaApp.createUimaCasProcessors();
-// instance = uimaApp;
-// return (UimaApplication) uimaApp;
-// }
-
- static public UimaApplication createUimaApplication (UimaApplication uimaApp, String xmlFile,
- ResourceManager rm)
- throws InvalidXMLException, ResourceInitializationException, CpeDescriptorException, IOException
- {
- String resolvedXmlFile = resolveUimaXmlDescriptor(xmlFile);
-// try {
-// resolvedXmlFile = VariablesPlugin.getDefault().getStringVariableManager()
-// .performStringSubstitution(xmlFile);
-// } catch (CoreException e1) {
-// // TODO Auto-generated catch block
-// e1.printStackTrace();
-// }
-
- // XMLizable xmlLizable = UIMATypeSystemUtils.parseUimaXmlDescriptor (xmlFile);
- Object xmlLizable = null;
- InvalidXMLException invalidXMLException = null;
- try {
- xmlLizable = UimaXmlParsingUtil.parseUimaXmlDescriptor (resolvedXmlFile);
- } catch (InvalidXMLException e) {
- invalidXMLException = e;
- e.printStackTrace();
- }
- if (xmlLizable == null) {
- // Check for CPE descriptor
- // Trace.trace("XMLizable == NULL for: " + resolvedXmlFile);
- try {
- xmlLizable = UIMAFramework.getXMLParser().parseCpeDescription(new XMLInputSource(new File(resolvedXmlFile)));
- } catch (InvalidXMLException e) {
- invalidXMLException = e;
- e.printStackTrace();
- }
- if (xmlLizable == null) {
- if (invalidXMLException != null) {
- throw invalidXMLException;
- }
- return null;
- }
- }
- if (xmlLizable instanceof UimaApplication) {
- uimaApp.setResourceManager(rm);
- UimaApplication_Impl.populateCpeDescriptor((UimaApplication)xmlLizable);
-
- } else if (xmlLizable instanceof CpeDescription) {
- // Trace.trace("*** XMLizable: CpeDescription ***");
- if (uimaApp == null) {
- uimaApp = UimaApplication_Impl.createUimaApplication (rm);
- }
- uimaApp.addXMLizable(xmlFile, (CpeDescription)xmlLizable);
-
- } else if (xmlLizable instanceof XMLizable) {
- // Trace.trace("*** XMLizable: CpeDescription ***");
- // Trace.trace("XMLizable: " + xmlLizable.getClass().getName());
- if (uimaApp == null) {
- uimaApp = UimaApplication_Impl.createUimaApplication (rm);
- }
- uimaApp.addXMLizable(xmlFile, (XMLizable) xmlLizable);
-// } else {
-// Trace.trace("XMLizable: " + xmlLizable.getClass().getName());
- }
- // Trace.trace("XMLizable: " + xmlLizable.getClass().getName());
-
- return uimaApp;
- }
-
- static public AbstractUimaCasProcessor createUimaComponent (String xmlDescriptor)
- throws InvalidXMLException,
- ResourceInitializationException, IOException
- {
- XMLizable xmlizable = UimaXmlParsingUtil.parseUimaXmlDescriptor (xmlDescriptor);
- if (xmlizable == null) {
- return null;
- }
- UimaCasProcessor_impl u = new UimaCasProcessor_impl();
- u.xmlizableDescriptor = xmlizable;
- u.xmlDescriptor = xmlDescriptor; // Xml descriptor
- if (xmlizable instanceof AnalysisEngineDescription) {
- AnalysisEngineMetaData a = ((AnalysisEngineDescription) xmlizable).getAnalysisEngineMetaData();
- u.setCasProcessorCategory(UimaCasProcessor.CASPROCESSOR_CAT_AE);
- u.setInstanceName(a.getName());
- u.configParamDecls = a.getConfigurationParameterDeclarations();
- u.configParamSettings = a.getConfigurationParameterSettings();
-// u.typePriorities = getTypePriorities(xmlizable, u.getResourceManager());
-
- } else if (xmlizable instanceof CasConsumerDescription) {
- ProcessingResourceMetaData p = ((CasConsumerDescription) xmlizable).getCasConsumerMetaData();
- u.setCasProcessorCategory(UimaCasProcessor.CASPROCESSOR_CAT_CAS_CONSUMER);
- u.setInstanceName(p.getName());
- u.configParamDecls = p.getConfigurationParameterDeclarations();
- u.configParamSettings = p.getConfigurationParameterSettings();
-
- } else if (xmlizable instanceof URISpecifier) {
- URISpecifier uriSpecifier = (URISpecifier) xmlizable;
-// Trace.err("URISpecifier protocol=" + uriSpecifier.getProtocol()
-// + " resource type=" + uriSpecifier.getResourceType()
-// + " uri=" + uriSpecifier.getUri());
- u.setCasProcessorCategory(UimaCasProcessor.CASPROCESSOR_CAT_SERVICE);
- // Create a name from URI
- String name = "Unknow";
- try {
- name = new URI(uriSpecifier.getUri()).getPath();
- } catch (URISyntaxException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- u.setInstanceName(name);
-// } else {
-// Trace.err("UNKNOWN Descriptor: " + xmlizable.getClass().getName());
- }
-
- u.configParamsModel = new ConfigParametersModel(u.configParamDecls, u.configParamSettings, null);
- return u;
- }
-
-
- /*************************************************************************/
-
- static public TypePriorities getAnalysisEngineTypePriorities (XMLizable xmlizable, ResourceManager rm)
- throws InvalidXMLException, ResourceInitializationException
- {
- TypePriorities tp = null;
- if (xmlizable instanceof AnalysisEngineDescription) {
- AnalysisEngineDescription ae = (AnalysisEngineDescription) xmlizable;
- if ( ae.isPrimitive() ) {
- AnalysisEngineMetaData a = ((AnalysisEngineDescription) xmlizable).getAnalysisEngineMetaData();
- tp = ae.getAnalysisEngineMetaData().getTypePriorities();
- } else {
- // Aggregate AE
- if (rm != null) {
- tp = CasCreationUtils.mergeDelegateAnalysisEngineTypePriorities(ae, rm);
- } else {
- tp = CasCreationUtils.mergeDelegateAnalysisEngineTypePriorities(ae);
- }
- }
- if (tp != null) {
- if (rm != null) {
- tp.resolveImports(rm);
- } else {
- tp.resolveImports();
- }
- // Trace.err(ae.getAnalysisEngineMetaData().getName() + ": HAS Type priorities");
- try {
- tp.toXML(System.out);
- } catch (SAXException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-// } else {
-// Trace.err(ae.getAnalysisEngineMetaData().getName() + ": NO Type priorities");
- }
- }
- return tp;
- }
-
- public TypePriorities getMergedTypePriorities ()
- throws InvalidXMLException, ResourceInitializationException
- {
- TypePriorities mergedTp = null;
- TypePriorities tp;
- List typePrioritiesList = new ArrayList();
-
- // Add Collection Reader
- String aCollectionReaderPath = "";
- List list = getUimaCollectionReaders();
- CpeCollectionReader cr = null;
- if (list != null && list.size() > 0) {
- CollectionReaderDescription crDescr
- = (CollectionReaderDescription) ((UimaCollectionReader) list.get(0)).getXmlizable();
- if (crDescr != null) {
- tp = crDescr.getCollectionReaderMetaData().getTypePriorities();
- if (tp != null) {
- typePrioritiesList.add(tp);
- }
-// } else {
-// Trace.bug("CR doesn't have XMLizable");
- }
- }
-
- // Add Cas Processors (AE, Cas Consumer)
- list = getUimaCasProcessors();
- for (int i=0; i<list.size(); ++i) {
- UimaCasProcessor u = (UimaCasProcessor) list.get(i);
- XMLizable specifier = ((UimaCasProcessor_impl) u).getXmlizable();
- if (specifier == null) {
- // Trace.bug("UimaCasProcessor " + u.getInstanceName() + " doesn't have XMLizable");
- continue;
- }
-
- tp = getAnalysisEngineTypePriorities(specifier, getResourceManager());
- if (tp != null) {
- typePrioritiesList.add(tp);
- }
- }
-
- // Merge typePrioritiesList
- if (typePrioritiesList.size() > 0) {
- mergedTp = CasCreationUtils.mergeTypePriorities(typePrioritiesList, getResourceManager());
- }
-
- return mergedTp;
- } // getMergedTypePriorities
-
- /*************************************************************************/
-
- final static private int CPE_DEFAULT_BATCHSIZE = 10000;
-
- // Current directory used to find "include" in CPE
- private String currentDir = null;
- private transient ResourceManager resourceManager;
-
- public void setCurrentDirectory (String currDir) {
- currentDir = currDir;
- }
-
- public ResourceManager getResourceManager () {
- return resourceManager;
- }
-
- public void setResourceManager (ResourceManager rm)
- {
- this.resourceManager = rm;
- }
-
- public String generateUimaApplicationXmlDescriptor (String xmlDescriptorFileName, boolean resolve)
- {
- StringWriter w = new StringWriter();
- FileOutputStream out = null;
- try {
- // Save to file
- if (xmlDescriptorFileName != null && xmlDescriptorFileName.trim().length() > 0) {
- out = new FileOutputStream (xmlDescriptorFileName);
- this.toXML(out);
- // Trace.trace("*** write UIMA App Xml to file: " + xmlDescriptorFileName);
- }
- // Return String
- this.toXML(w);
- // Trace.err(prettyPrintModel(this));
- //System.out.println(w.toString());
- } catch (SAXException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } finally {
- if (out != null) {
- try {
- out.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
- return w.toString();
- }
-
- public String generateCpeXmlDescriptor (String outputXmlDescriptorFileName, boolean resolve)
- throws CpeDescriptorException, SAXException, IOException
- {
- StringWriter w = new StringWriter();
- // Create a empty CpeDescription
- CpeDescription cpeDesc = CpeDescriptorFactory.produceDescriptor();
-
- // Add Collection Reader
- List list = getUimaCollectionReaders();
- if (list != null && list.size() > 0) {
- String aCollectionReaderPath = "";
- CpeCollectionReader cr = null;
- aCollectionReaderPath = ((UimaCollectionReader)list.get(0)).getXmlDescriptor();
- if (resolve) {
- cr = cpeDesc.addCollectionReader(resolveUimaXmlDescriptor(aCollectionReaderPath));
- } else {
- cr = cpeDesc.addCollectionReader(aCollectionReaderPath);
- }
-
- // Add Configuration Parameter Overrides for CPE
- UimaCollectionReader ucr = (UimaCollectionReader)list.get(0);
- if (ucr.getConfigParamsModel() != null) {
- List cpeOverrideList = ucr.getConfigParamsModel().getCpeParamModelList();
- if (cpeOverrideList != null && cpeOverrideList.size() > 0) {
- CasProcessorConfigurationParameterSettings settings =
- CpeDescriptorFactory.produceCasProcessorConfigurationParameterSettings();
- cr.setConfigurationParameterSettings(settings);
- for (int k=0; k<cpeOverrideList.size(); ++k) {
- ConfigParameterModel m = (ConfigParameterModel) cpeOverrideList.get(k);
- if (m.getCpeValue() != null) {
- settings.setParameterValue (m.getName(), m.getCpeValue());
- }
- }
- }
- }
- }
-
- // Add CAS Initializer
- list = getUimaCasInitializers();
- if (list != null && list.size() > 0) {
- String aCasInitializerPath = "";
- CpeCollectionReaderCasInitializer ci = null;
- aCasInitializerPath = ((UimaCasInitializer)list.get(0)).getXmlDescriptor();
- if (resolve) {
- ci = cpeDesc.addCasInitializer(resolveUimaXmlDescriptor(aCasInitializerPath));
- } else {
- ci = cpeDesc.addCasInitializer(aCasInitializerPath);
- }
- // Trace.err("Add Cas Init: " + aCasInitializerPath);
- // Add Configuration Parameter Overrides for CPE
- UimaCasInitializer uci = (UimaCasInitializer)list.get(0);
- if (uci.getConfigParamsModel() != null) {
- List cpeOverrideList = uci.getConfigParamsModel().getCpeParamModelList();
- if (cpeOverrideList != null && cpeOverrideList.size() > 0) {
- CasProcessorConfigurationParameterSettings settings =
- CpeDescriptorFactory.produceCasProcessorConfigurationParameterSettings();
- ci.setConfigurationParameterSettings(settings);
- for (int k=0; k<cpeOverrideList.size(); ++k) {
- ConfigParameterModel m = (ConfigParameterModel) cpeOverrideList.get(k);
- if (m.getCpeValue() != null) {
- settings.setParameterValue (m.getName(), m.getCpeValue());
- }
- }
- }
- }
- }
-
- // Add Cas Processors (AE, Cas Consumer)
- list = getUimaCasProcessors();
- for (int i=0; i<list.size(); ++i) {
- UimaCasProcessor u = (UimaCasProcessor) list.get(i);
- CpeCasProcessor casProc;
-// if (u.getCasProcessorCategory() == UimaCasProcessor.CASPROCESSOR_CAT_SERVICE) {
-// casProc = CpeDescriptorFactory.produceRemoteCasProcessor(u.getInstanceName());
-// } else {
-// casProc = CpeDescriptorFactory.produceCasProcessor(u.getInstanceName());
-// }
- casProc = CpeDescriptorFactory.produceCasProcessor(u.getInstanceName());
-
- if (resolve) {
- casProc.setDescriptor(resolveUimaXmlDescriptor(u.getXmlDescriptor()));
- } else {
- casProc.setDescriptor(u.getXmlDescriptor());
- }
-
- // Add Error Handlings
- if (u.getCasProcessorErrorHandling() != null) {
- setCasProcessorErrorHandling(casProc, u.getCasProcessorErrorHandling());
- } else {
- // Set values from default, if any
-// setCasProcessorErrorHandling(casProc, getDefaultCasProcessorSettings().getErrorHandling());
- }
-
- // Set <checkpoint batch="10000"/>
- if (u.getBatchSize() != -1) {
- casProc.setBatchSize(u.getBatchSize());
- } else {
- // Check if default value is defined
- if (getDefaultCasProcessorSettings().getCasProcBatchSize() != -1) {
- casProc.setBatchSize(getDefaultCasProcessorSettings().getCasProcBatchSize());
- }
- }
-
- // Add Configuration Parameter Overrides for CPE
- List cpeOverrideList = u.getConfigParamsModel().getCpeParamModelList();
- if (cpeOverrideList != null && cpeOverrideList.size() > 0) {
- CasProcessorConfigurationParameterSettings settings =
- CpeDescriptorFactory.produceCasProcessorConfigurationParameterSettings();
- casProc.setConfigurationParameterSettings(settings);
- for (int k=0; k<cpeOverrideList.size(); ++k) {
- ConfigParameterModel m = (ConfigParameterModel) cpeOverrideList.get(k);
- if (m.getCpeValue() != null) {
- settings.setParameterValue (m.getName(), m.getCpeValue());
- }
- }
- }
-
-// // Add Error Handlings
-//CasProcessorErrorHandling errorHandling = u.getCasProcessorErrorHandling();
-// if (errorHandling != null) {
-
-// casProc.setTimeout(errorHandling.getTimeout().get());
-// }
-
- // Add to CPE
- cpeDesc.addCasProcessor(casProc);
- }
-
- // Set CpeConfiguration from "existing" CpeConfiguration
- CpeConfiguration cpeConfiguration = getCpeConfiguration();
- if (cpeConfiguration == null) {
- // Trace.bug("getCpeConfiguration() == null (NEVER SET ?)");
- } else {
- cpeDesc.getCpeConfiguration().setNumToProcess(cpeConfiguration.getNumToProcess());
- cpeDesc.getCpeConfiguration().setDeployment(cpeConfiguration.getDeployment());
- cpeDesc.getCpeConfiguration().getCheckpoint()
- .setFrequency(cpeConfiguration.getCheckpoint().getFrequency(),
- cpeConfiguration.getCheckpoint().isTimeBased());
- }
-
- // Set CpeCasProcessors Settings
- // Trace.trace("************* Set CpeCasProcessors Settings ************");
- if (cpeDesc.getCpeCasProcessors() != null) {
- cpeDesc.getCpeCasProcessors().setPoolSize(cpeCasProcessorsSettings.getCasPoolSize());
- } else {
- // Trace.err("cpeDesc.getCpeCasProcessors() == null");
- }
- cpeDesc.setProcessingUnitThreadCount(cpeCasProcessorsSettings.getProcessingUnitThreadCount());
- ((CpeCasProcessorsImpl) cpeDesc.getCpeCasProcessors()).setDropCasOnException(cpeCasProcessorsSettings.isDropCasOnException());
-
- FileOutputStream out = null;
- try {
- // Save to file
- if (outputXmlDescriptorFileName != null && outputXmlDescriptorFileName.trim().length() > 0) {
- out = new FileOutputStream (outputXmlDescriptorFileName);
- cpeDesc.toXML(out);
- // Trace.trace("*** write to file: " + outputXmlDescriptorFileName);
- }
- // Return String
- ((CpeDescriptionImpl) cpeDesc).toXML(w);
- // Trace.err(prettyPrintModel(this));
- //System.out.println(w.toString());
- } catch (SAXException e) {
- e.printStackTrace();
- throw e;
- } catch (IOException e) {
- e.printStackTrace();
- throw e;
- } finally {
- if (out != null) {
- try {
- out.close();
- } catch (IOException e) {
- e.printStackTrace();
- throw e;
- }
- }
- }
-
-
- return w.toString();
- } // generateCpeXmlDescriptor
-
- public int generateTypeSystemXmlDescriptor (String xmlFileName)
- {
- TypeSystemDescription tsd = getTypeSystemDescription ();
-
- FileOutputStream out = null;
- try {
- // Save to file
- if (xmlFileName != null && xmlFileName.trim().length() > 0) {
- out = new FileOutputStream (xmlFileName);
- tsd.toXML(out);
- // Trace.trace("*** write to file: " + xmlFileName);
- }
- } catch (SAXException e) {
- e.printStackTrace();
- return -1;
- } catch (IOException e) {
- e.printStackTrace();
- return -2;
- } finally {
- if (out != null) {
- try {
- out.close();
- } catch (IOException e) {
- e.printStackTrace();
- return -3;
- }
- }
- }
- return 0;
- }
-
- /*************************************************************************/
-
- /**
- * Return true if the ResourceSpecifier is CasConsumerDescription
- *
- * @param specifier
- * @return
- * @return boolean
- */
- // Copy from CpeDescriptorModel
- private boolean isCasConsumerSpecifier(ResourceSpecifier specifier)
- {
- if (specifier instanceof CasConsumerDescription) {
- return true;
- } else if (specifier instanceof URISpecifier) {
- URISpecifier uriSpec = (URISpecifier)specifier;
- return URISpecifier.RESOURCE_TYPE_CAS_CONSUMER.equals(uriSpec.getResourceType());
- }
- return false;
- }
-
- /*************************************************************************/
- /* compare CasProcessorErrorHandling */
- /*************************************************************************/
-
- public boolean compareWithDefaultCasProcessorErrorRateThreshold
- (CasProcessorErrorRateThreshold threshold1, CasProcessorErrorRateThreshold threshold2)
- {
- if (threshold1.getMaxErrorCount() != threshold2.getMaxErrorCount()) {
- return false;
- }
- if (threshold1.getMaxErrorSampleSize() != threshold2.getMaxErrorSampleSize()) {
- return false;
- }
- if (!threshold1.getAction().equalsIgnoreCase(threshold2.getAction())) {
- return false;
- }
- return true;
- }
-
- public boolean compareWithDefaultCasProcessorMaxRestarts
- (CasProcessorMaxRestarts maxRestart1, CasProcessorMaxRestarts maxRestart2)
- {
- if (maxRestart1.getRestartCount() != maxRestart2.getRestartCount()) {
- return false;
- }
- if (!maxRestart1.getAction().equalsIgnoreCase(maxRestart2.getAction())) {
- return false;
- }
- return true;
- }
-
- /**
- * Compare with default settings for each Cas Processor.
- * If the default value is NOT set, use the CPE's default settings
- *
- * @param errorHandling
- * @return
- * @return boolean
- */
- public boolean compareWithCpeDefaultErrorHandling (CasProcessorErrorHandling errorHandling)
- {
- CasProcessorErrorHandling def = null;
- if (defaultCasProcessorSettings != null) {
- def = defaultCasProcessorSettings.getErrorHandling();
- }
- if (def == null) {
- // Use CPE's default value
- def = cpeDefaultErrorHandling;
- }
- if (def != null) {
- if (!compareWithDefaultCasProcessorErrorRateThreshold(errorHandling.getErrorRateThreshold(),
- def.getErrorRateThreshold())) {
- return false;
- }
-
- if (!compareWithDefaultCasProcessorMaxRestarts(errorHandling.getMaxConsecutiveRestarts(),
- def.getMaxConsecutiveRestarts())) {
- return false;
- }
-
- if (errorHandling.getTimeout().get() != def.getTimeout().get()) {
- return false;
- }
- } else {
- Trace.bug("Cannot get CpeDefaultErrorHandling");
- return false;
- }
- return true;
- }
-
- /*************************************************************************/
- /* Add CPE Xml Descriptor (CpeDescription) */
- /*************************************************************************/
-
-// public void addCasProcessor (String cpeXml, CpeDescription cpeDescription)
-// throws InvalidXMLException, ResourceInitializationException, CpeDescriptorException
-// {
-// cpeHref = cpeXml;
-// // Trace.trace("cpeXml: " + cpeXml);
-// addCasProcessorsFromCpeDescription(cpeDescription);
-// }
-
- // 07-16-2007
- // Remove the code that does duplicate operations when adding Collection Reader
- // and CasProcessors
- // Note: Look at "addCpeDescription" by searching for testIt flag
- public void addCpeDescription (String cpeXml, CpeDescription cpeDescription)
- throws InvalidXMLException, ResourceInitializationException,
- CpeDescriptorException
- {
- int error = 0, details = 0; // Status of each node
-
- cpeHref = cpeXml;
- // Set CPE Configuration Settings if NOT set
- try {
- if (cpeConfiguration != null) {
- cpeConfiguration = cpeDescription.getCpeConfiguration();
- }
- } catch (CpeDescriptorException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
- // Collection Reader
- CpeCollectionReader[] collRdrs = null;
- try {
- collRdrs = cpeDescription.getAllCollectionCollectionReaders();
- } catch (CpeDescriptorException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- boolean testIt = false; // FOR TESTING
- if (testIt && collRdrs != null && collRdrs.length>0) {
- for (int i=0; i<collRdrs.length; ++i) {
- // Create a NEW UimaCollectionReader for its Xml descriptor
- CpeComponentDescriptor cpeComponentDescriptor = collRdrs[i].getDescriptor();
- String xml = null;
- if (cpeComponentDescriptor.getInclude() != null) {
- xml = cpeComponentDescriptor.getInclude().get();
- } else if (cpeComponentDescriptor.getImport() != null) {
- xml = cpeComponentDescriptor.getImport().getLocation();
- if (xml == null) {
- xml = cpeComponentDescriptor.getImport().getName();
- }
- }
- if (xml == null || xml.trim().length() == 0) {
- // EMPTY Collection Reader
- // Trace.err("EMPTY Collection Reader");
- continue;
- }
- String newFileLocation = xml;
- String resolvedFileName = UimaApplication_Impl.resolveUimaXmlDescriptor(xml);
- if (resolvedFileName == null) {
- // Cannot resolve
- // Trace.err("cannot resolve file: " + resolvedFileName);
- } else {
- File f = new File(resolvedFileName);
- if ( !f.isAbsolute() ) {
- // Relative path
- if ( ! f.exists() ) {
- // Can NOT find file.
- // Try to find it within CURRENT DIRECTORY
- f = new File (currentDir, resolvedFileName);
- if ( ! f.exists() ) {
- Trace.trace("*** ERROR: Cannot find file: " + resolvedFileName);
- error = STATUS_DEPLOYMENT_NODE_ERROR;
- details = STATUS_DETAILS_FILE_NOT_FOUND;
- }
- resolvedFileName = f.getAbsolutePath();
- newFileLocation = resolvedFileName;
- }
- // Trace.trace("+++ New xml:" + resolvedFileName);
- }
- }
- UimaCollectionReader u = UimaCollectionReader.createUimaCasProcessor (collRdrs[i],
- newFileLocation/*resolvedFileName*/, this);
- // Need to check duplication
-// UimaCasProcessor u = getUimaCasProcessor(collRdrs[i].getName());
-// if (u != null) {
-// UimaCasProcessor_impl.createUimaCasProcessorFrom(u, casProcs[i], specifier, this);
-// } else {
-// u = UimaCasProcessor_impl.createUimaCasProcessor(casProcs[i], specifier, this);
-// uimaCasProcessors.add(u);
-// }
-
- if (error > 0) {
- u.setStatus(error);
- u.setStatusDetails(details);
- }
- uimaCollectionReaders.add(u);
- } // for
-
- // ONLY 1 Cas Initializer is allowed (Also true for Collection Reader)
- CpeCollectionReaderCasInitializer casInit = null;
- try {
- casInit = collRdrs[0].getCasInitializer();
- } catch (CpeDescriptorException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- if (casInit != null) {
- // Create a NEW UimaCasInitializer for its Xml descriptor
- String xml = casInit.getDescriptor().getInclude().get();
- if (xml == null || xml.trim().length() == 0) {
- // EMPTY Cas Initializer
- // Trace.err("EMPTY Cas Initializer");
- } else {
- String newFileLocation = xml;
- String resolvedFileName = resolveUimaXmlDescriptor(xml);
- File f = new File(resolvedFileName);
- error = 0;
- details = 0;
- if ( !f.isAbsolute() ) {
- // Relative path
- if ( ! f.exists() ) {
- // Can NOT find file.
- // Try to find it within CURRENT DIRECTORY
- f = new File (currentDir, resolvedFileName);
- if ( ! f.exists() ) {
- // Trace.trace("*** ERROR: Cannot find file: " + resolvedFileName);
- error = STATUS_DEPLOYMENT_NODE_ERROR;
- details = STATUS_DETAILS_FILE_NOT_FOUND;
- }
- resolvedFileName = f.getAbsolutePath();
- newFileLocation = resolvedFileName;
- }
- // Trace.trace("+++ New xml:" + resolvedFileName);
- }
-
- UimaCasInitializer u = UimaCasInitializer.createUimaCasProcessor (casInit,
- newFileLocation/*resolvedFileName*/, this);
- if (error > 0) {
- u.setStatus(error);
- u.setStatusDetails(details);
- }
- uimaCasInitializers.add(u);
- }
- }
- }
-
- /*****************************************************************/
- if (cpeCasProcessorsSettings == null) {
- cpeCasProcessorsSettings = new CpeCasProcessorsSettings();
- }
- try {
- cpeCasProcessorsSettings.setCasPoolSize(((CpeCasProcessorsImpl) cpeDescription.getCpeCasProcessors()).getPoolSize());
- // Cannot get processingUnitThreadCount
- cpeCasProcessorsSettings.setDropCasOnException(((CpeCasProcessorsImpl) cpeDescription.getCpeCasProcessors()).getDropCasOnException());
- } catch (CpeDescriptorException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
-
- // CPE Cas Processors
- CpeCasProcessor[] casProcs = null;
- try {
- casProcs = cpeDescription.getCpeCasProcessors().getAllCpeCasProcessors();
- } catch (CpeDescriptorException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- if (casProcs == null) {
- // Empty Cpe Descriptor
- return ;
- }
-
- // Get list of CpeCasProcessor which can be an AE or a Cas Consumer
- // For each CpeCasProcessor, get its type system (insert in cpeModel.typeSystemList)
- // cpeModel.cpeCasProcessorModelList = new ArrayList();
-// List specifierList = new ArrayList();
-// List aeList = new ArrayList();
-// List consumerList = new ArrayList();
- // cpeModel.typeSystemList = new ArrayList();
- for (int i=0; i < casProcs.length; i++) {
- CpeComponentDescriptor cpeComponentDescriptor = casProcs[i].getCpeComponentDescriptor();
- String newFileLocation = null;
- if (cpeComponentDescriptor.getInclude() != null) {
- newFileLocation = cpeComponentDescriptor.getInclude().get();
- } else if (cpeComponentDescriptor.getImport() != null) {
- newFileLocation = cpeComponentDescriptor.getImport().getLocation();
- if (newFileLocation == null) {
- newFileLocation = cpeComponentDescriptor.getImport().getName();
- }
- }
- String specifierFile = resolveUimaXmlDescriptor(newFileLocation);
-
- ResourceSpecifier specifier = null;
- // Check for file existence
- if ( specifierFile == null || specifierFile.trim().length() == 0 ) {
- // Trace.err("EMPTY (no xml desc) Cas Processor " + casProcs[i].getName());
- continue;
- } else {
- File f = new File(specifierFile);
- error = 0;
- details = 0;
- if ( !f.isAbsolute() ) {
- // Relative path
- if ( ! f.exists() ) {
- // Can NOT find file.
- // Try to find it within CURRENT DIRECTORY
- f = new File (currentDir, specifierFile);
- if ( ! f.exists() ) {
- // Trace.err("*** ERROR: Cannot find file: " + specifierFile);
- error = STATUS_DEPLOYMENT_NODE_ERROR;
- details = STATUS_DETAILS_FILE_NOT_FOUND;
- // continue;
- }
- specifierFile = f.getAbsolutePath();
- newFileLocation = specifierFile;
- }
- } else {
- // Absolute Path
- if ( ! f.exists() ) {
- // Trace.err ("Cannot find xml file for " + casProcs[i].getName()
- // + ": " + specifierFile);
- error = STATUS_DEPLOYMENT_NODE_ERROR;
- details = STATUS_DETAILS_FILE_NOT_FOUND;
- // continue;
- }
- }
-
- if (error == 0) {
- // No error.
- try {
- specifier = UIMAFramework.getXMLParser().
- parseResourceSpecifier(new XMLInputSource(specifierFile));
- } catch (InvalidXMLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- continue;
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- continue;
- }
- }
- }
-// if (specifier != null) {
-// specifierList.add(specifier);
-//
-// if (isCasConsumerSpecifier(specifier)) {
-// consumerList.add(specifier);
-// } else {
-// aeList.add(specifier);
-// }
-// }
- // Need to check duplication
- UimaCasProcessor u = getUimaCasProcessor(casProcs[i].getName());
- if (u != null) {
- Trace.err("Duplicate with CasProcessor from CPE: " + casProcs[i].getName());
- // Should we call the following code ?
- if (testIt) {
- UimaCasProcessor_impl.createUimaCasProcessorFrom(u, casProcs[i], specifier, this);
- } else {
- u.setCpeCasProcessor(casProcs[i]);
- }
- } else {
- u = UimaCasProcessor_impl.createUimaCasProcessor(casProcs[i], specifier, this);
- uimaCasProcessors.add(u);
- }
- if (error > 0) {
- u.setStatus(error);
- u.setStatusDetails(details);
- }
- // File path may be changed
- // ((AbstractUimaCasProcessor) u).setXmlDescriptor(specifierFile);
- ((AbstractUimaCasProcessor) u).setXmlDescriptor(newFileLocation);
-
- // Get CasProcessorErrorHandling
- if (cpeDefaultErrorHandling == null) {
- // Trace.bug("NO pre-setting for cpeDefaultErrorHandling");
- cpeDefaultErrorHandling = CpeDescriptorFactory.produceCasProcessorErrorHandling();
- }
- // printErrorHandling(cpeDefaultErrorHandling);
-
- if ( ! compareWithCpeDefaultErrorHandling(casProcs[i].getErrorHandling()) ) {
- // Not the same values as CPE defaults
- u.setCasProcessorErrorHandling(casProcs[i].getErrorHandling());
- }
- u.setBatchSize(casProcs[i].getBatchSize());
-
- // Get type system
- // cpeModel.typeSystemList.add(getTypeSystemDescription(specifier));
- } // for
- } // addCpeDescription
-
- /*************************************************************************/
- /* Add Collection Reader or Cas Processor */
- /**
- * @throws ResourceInitializationException
- * @throws InvalidXMLException
- * ***********************************************************************/
-
- public Object addXMLizable (String xmlizableXmlFile, XMLizable xmlizable)
- throws InvalidXMLException, ResourceInitializationException, CpeDescriptorException
- {
- Object component = null;
-
- // Create a NEW CpeCasProcessor
- // CPE BUG!!! Need to call CpeDescriptorFactory.produceDescriptor();
-// CpeDescription cpeDesc = CpeDescriptorFactory.produceDescriptor();
-
- // Trace.trace("xmlizableXmlFile:" + xmlizableXmlFile);
- if (xmlizable instanceof CollectionReaderDescription) {
- UimaCollectionReader u = UimaCollectionReader
- .createUimaCasProcessor ((CollectionReaderDescription) xmlizable,
- xmlizableXmlFile, this);
- uimaCollectionReaders.add(u);
- component = u;
- } else if (xmlizable instanceof CasInitializerDescription) {
- // Trace.err("CasInitializerDescription");
- UimaCasInitializer ci = UimaCasInitializer
- .createUimaCasProcessor ((CasInitializerDescription) xmlizable,
- xmlizableXmlFile, this);
- uimaCasInitializers.add(ci);
- component = ci;
- } else if (xmlizable instanceof CpeDescription) {
- addCpeDescription(xmlizableXmlFile, (CpeDescription) xmlizable);
- component = this;
- } else {
- CpeCasProcessor cpeCasProcessor;
-// if (xmlizable instanceof URISpecifier) {
-// cpeCasProcessor = CpeDescriptorFactory.produceRemoteCasProcessor("xmlizableXmlFile");
-// } else {
-// cpeCasProcessor = CpeDescriptorFactory.produceCasProcessor("xmlizableXmlFile");
-// }
- cpeCasProcessor = CpeDescriptorFactory.produceCasProcessor("xmlizableXmlFile");
- cpeCasProcessor.setDescriptor(xmlizableXmlFile);
- UimaCasProcessor u = UimaCasProcessor_impl.createUimaCasProcessor(cpeCasProcessor,
- xmlizable, this);
- uimaCasProcessors.add(u);
- // Reset cpeCasProcessor's name
- cpeCasProcessor.setName(u.getInstanceName());
- component = u;
- }
-
- return component;
- } // addXMLizable
-
- /**
- * Check if the specified is valid for addition
- *
- */
- static public boolean isValidXMLizableComponent (XMLizable xmlizable)
- {
- if (xmlizable instanceof CollectionReaderDescription
- || xmlizable instanceof CasInitializerDescription
- || xmlizable instanceof AnalysisEngineDescription
- || xmlizable instanceof TaeDescription
- || xmlizable instanceof CasConsumerDescription
- || xmlizable instanceof URISpecifier
- || xmlizable instanceof CustomResourceSpecifier
- || xmlizable instanceof CpeDescription) {
- return true;
- }
- return false;
- }
-
- /*************************************************************************/
-
- public UimaCollectionReader getUimaCollectionReader ()
- {
- if (uimaCollectionReaders != null && uimaCollectionReaders.size() > 0) {
- return (UimaCollectionReader)uimaCollectionReaders.get(0);
- }
-
- return null;
- } // getUimaCollectionReader
-
- public UimaCollectionReader getUimaCollectionReader (String name)
- {
- if (uimaCollectionReaders != null) {
- for (int i=0; i<uimaCollectionReaders.size(); ++i) {
- if (name.equalsIgnoreCase(((UimaCollectionReader)uimaCollectionReaders.get(i)).getInstanceName())) {
- return (UimaCollectionReader)uimaCollectionReaders.get(i);
- }
- }
- }
-
- return null;
- } // getUimaCollectionReader
-
- public UimaCasProcessor getUimaCasProcessor (String name)
- {
- if (uimaCasProcessors != null) {
- for (int i=0; i<uimaCasProcessors.size(); ++i) {
- if (name.equalsIgnoreCase(((UimaCasProcessor)uimaCasProcessors.get(i)).getInstanceName())) {
- return (UimaCasProcessor)uimaCasProcessors.get(i);
- }
- }
- }
-
- return null;
- } // getUimaCasProcessor
-
- public boolean deleteUimaCasProcessor (AbstractUimaCasProcessor u)
- {
- List list;
- if (u.isUimaCollectionReader()) {
- list = uimaCollectionReaders;
- } else if (u.isUimaCasInitializer()) {
- list = uimaCasInitializers;
- } else {
- list = uimaCasProcessors;
- }
- for (int i=0; i<list.size(); ++i) {
- if (u == list.get(i)) {
- list.remove(i);
- return true;
- }
- }
- // Trace.bug("CANNOT find for deletion: " + u.getInstanceName());
- return false;
- } // deleteUimaCasProcessor
-
- public boolean moveUimaCasProcessor (AbstractUimaCasProcessor u, boolean moveUp)
- {
- List list;
- if (u.isUimaCollectionReader()) {
- list = uimaCollectionReaders;
- } else {
- list = uimaCasProcessors;
- }
-
- int index = list.indexOf(u);
- if (moveUp) {
- // Move Up if NOT 1st element
- if (index != 0) {
- list.remove(index);
- list.add(index-1, u);
- return true;
- }
- } else {
- // Move Down if NOT last element
- if (index != (list.size()-1)) {
- list.remove(index);
- list.add(index+1, u);
- return true;
- }
- }
- return false;
- }
-
- /**
- * Check if AbstractUimaCasProcessor is movable
- *
- * @param u
- * @return int 0: non-movable; 0x01: up; 0x02: down; 0x003; both dir
- */
- public int isMovable (AbstractUimaCasProcessor u)
- {
- List list;
- if (u.isUimaCollectionReader()) {
- list = uimaCollectionReaders;
- } else if (u.isUimaCasInitializer()) {
- list = uimaCasInitializers;
- } else {
- list = uimaCasProcessors;
- }
- int index = list.indexOf(u);
-
- int flags = 0;
- // Move Up if NOT 1st element
- if (index != 0) {
- flags = 0x01;
- }
-
- // Move Down if NOT last element
- if (index != (list.size()-1)) {
- flags = flags | 0x02;
- }
- return flags;
- }
-
- public boolean deleteUimaCasProcessor_1 (UimaCasProcessor u)
- {
- for (int i=0; i<uimaCasProcessors.size(); ++i) {
- if (u == uimaCasProcessors.get(i)) {
- uimaCasProcessors.remove(i);
- // Trace.trace("Delete " + u.getInstanceName());
- return true;
- }
- }
- Trace.bug("CANNOT find for deletion: " + u.getInstanceName());
- return false;
- } // deleteUimaCasProcessor
-
- public boolean moveUimaCasProcessor_1 (UimaCasProcessor u, boolean moveUp)
- {
- int index = uimaCasProcessors.indexOf(u);
- if (moveUp) {
- // Move Up if NOT 1st element
- if (index != 0) {
- uimaCasProcessors.remove(index);
- uimaCasProcessors.add(index-1, u);
- return true;
- }
- } else {
- // Move Down if NOT last element
- if (index != (uimaCasProcessors.size()-1)) {
- uimaCasProcessors.remove(index);
- uimaCasProcessors.add(index+1, u);
- return true;
- }
- }
- return false;
- }
-
- /*************************************************************************/
-
- public String prettyPrintModel (XMLizable trueDescriptor) {
- StringWriter writer = new StringWriter();
- String parsedText = null;
- try {
- XMLSerializer xmlSerializer = new XMLSerializer(true);
- xmlSerializer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
- xmlSerializer.setWriter(writer);
- ContentHandler contentHandler = xmlSerializer.getContentHandler();
- contentHandler.startDocument();
-
- if (trueDescriptor instanceof AnalysisEngineDescription) {
- AnalysisEngineDescription aed = (AnalysisEngineDescription) trueDescriptor;
- aed.toXML(contentHandler, true, true);
- } else {
- trueDescriptor.toXML(contentHandler, true);
- }
- contentHandler.endDocument();
- writer.close();
- parsedText = writer.toString();
-
- } catch (SAXException e) {
- // throw new InternalErrorCDE(Messages.getString("MultiPageEditor.22"), e); //$NON-NLS-1$
- } catch (IOException e) {
- // throw new InternalErrorCDE(Messages.getString("MultiPageEditor.23"), e); //$NON-NLS-1$
- }
- return parsedText;
- }
-
-
- /*************************************************************************/
-
- /**
- * Overridden to provide custom XML representation.
- * @see org.apache.uima.util.XMLizable#toXML(ContentHandler)
- */
- public void toXML(ContentHandler aContentHandler,
- boolean aWriteDefaultNamespaceAttribute)
- throws SAXException
- {
- AttributesImpl attrs = new AttributesImpl();
- aContentHandler.startElement(getXmlizationInfo().namespace,
- "uimaApplication", "uimaApplication", attrs);
-
- if (getCpeDescriptor() != null){
- attrs.addAttribute("","href", "href", null, getCpeDescriptor());
- }
-
- aContentHandler.startElement(getXmlizationInfo().namespace,
- "", "cpeDescription", attrs);
- aContentHandler.endElement(getXmlizationInfo().namespace,
- "", "cpeDescription");
-
- attrs.clear();
- aContentHandler.startElement(getXmlizationInfo().namespace,
- "", TAG_DEPLOYMENT_DEFAULT_SETTINGS, attrs);
-/*
- <errorHandling>
- <errorRateThreshold action="terminate" count="100" sample_size=1000"/>
- <maxConsecutiveRestarts action="terminate" value="30"/>
- <timeout max="10000"/>
- </errorHandling>
- <checkpoint batch="10000" frequency="" />
-
-*/
- aContentHandler.startElement(getXmlizationInfo().namespace,
- "", "errorHandling", attrs);
-
- attrs.clear();
- CasProcessorErrorHandling errorHandling = getDefaultCasProcessorSettings().getErrorHandling();
- if (errorHandling != null) {
-
- attrs.addAttribute("","action","action",null,errorHandling.getErrorRateThreshold().getAction());
- attrs.addAttribute("","count","count",null, ""+errorHandling.getErrorRateThreshold().getMaxErrorCount());
- attrs.addAttribute("","sample_size","sample_size",null, ""+errorHandling.getErrorRateThreshold().getMaxErrorSampleSize());
- aContentHandler.startElement(getXmlizationInfo().namespace,
- "", "errorRateThreshold", attrs);
- aContentHandler.endElement(getXmlizationInfo().namespace, "","errorRateThreshold");
- }
- aContentHandler.endElement(getXmlizationInfo().namespace,
- "","errorHandling");
-
- attrs.clear();
- attrs.addAttribute("","batch","batch",null, ""+getDefaultCasProcessorSettings().getCasProcBatchSize());
- aContentHandler.startElement(getXmlizationInfo().namespace,
- "","checkpoint",attrs);
- aContentHandler.endElement(getXmlizationInfo().namespace,
- "","checkpoint");
-
- aContentHandler.endElement(getXmlizationInfo().namespace,
- "", TAG_DEPLOYMENT_DEFAULT_SETTINGS);
-
- // Add Collection Reader)
- List list = getUimaCollectionReaders();
- for (int i=0; i<list.size(); ++i) {
- ((UimaCollectionReader) list.get(i)).toXML(aContentHandler,
- aWriteDefaultNamespaceAttribute);
- }
-
- // Add Cas Initializer
- list = getUimaCasInitializers();
- for (int i=0; i<list.size(); ++i) {
- attrs.clear();
- UimaCasInitializer u = (UimaCasInitializer) list.get(i);
- attrs.addAttribute("", TAG_NAME, TAG_NAME,
- null, ""+u.getInstanceName());
- aContentHandler.startElement(getXmlizationInfo().namespace,
- "", TAG_DEPLOYMENT_OVERRIDES,attrs);
- attrs.clear();
-
- // <casProcessorSettings>
- aContentHandler.startElement(getXmlizationInfo().namespace,
- "", TAG_DEPLOYMENT_SETTINGS, attrs);
- // </casProcessorSettings>
- aContentHandler.endElement(getXmlizationInfo().namespace,
- "", TAG_DEPLOYMENT_SETTINGS);
-
- // Add Configuration Parameter Overrides for CPE
- List cpeOverrideList = u.getConfigParamsModel().getCpeParamModelList();
- if (cpeOverrideList != null && cpeOverrideList.size() > 0) {
- // <configurationParameterSettings>
- aContentHandler.startElement(getXmlizationInfo().namespace,
- "","configurationParameterSettings",attrs);
-
- CasProcessorConfigurationParameterSettings settings =
- CpeDescriptorFactory.produceCasProcessorConfigurationParameterSettings();
- // casProc.setConfigurationParameterSettings(settings);
- for (int k=0; k<cpeOverrideList.size(); ++k) {
- ConfigParameterModel m = (ConfigParameterModel) cpeOverrideList.get(k);
- if (m.getCpeValue() != null) {
- settings.setParameterValue (m.getName(), m.getCpeValue());
- m.toXML(aContentHandler, aWriteDefaultNamespaceAttribute);
- }
- }
-
- // </configurationParameterSettings>
- aContentHandler.endElement(getXmlizationInfo().namespace,
- "","configurationParameterSettings");
- }
- aContentHandler.endElement(getXmlizationInfo().namespace,
- "", TAG_DEPLOYMENT_OVERRIDES);
- }
-
- // Add Cas Processors
- list = getUimaCasProcessors();
- for (int i=0; i<list.size(); ++i) {
- ((UimaCasProcessor) list.get(i)).toXML(aContentHandler,
- aWriteDefaultNamespaceAttribute);
- }
- aContentHandler.endElement(getXmlizationInfo().namespace,
- "uimaApplication","uimaApplication");
- }
-
- protected XmlizationInfo getXmlizationInfo() {
- // return XMLIZATION_INFO;
- return new XmlizationInfo(null, null);
- //this object has custom XMLization routines
- }
-
- static final private XmlizationInfo XMLIZATION_INFO =
- new XmlizationInfo("uimaApplication",
- new PropertyXmlInfo[]{
- new PropertyXmlInfo("cpeDescriptor", false),
- new PropertyXmlInfo("defaultCasProcessorSettings", false)
- });
-
-
-
- /**
- * Overridden to provide custom XMLization.
- * @see org.apache.uima.util.XMLizable#buildFromXMLElement(org.w3c.dom.Element, org.apache.uima.util.XMLParser)
- */
- public void buildFromXMLElement (Element aElement, XMLParser aParser, XMLParser.ParsingOptions aOptions)
- throws InvalidXMLException
- {
- // Trace.trace();
- NodeList childNodes = aElement.getChildNodes();
- for (int i = 0; i < childNodes.getLength(); i++) {
- Node curNode = childNodes.item(i);
- if (curNode instanceof Element) {
- Element elem = (Element)curNode;
- if ("cpeDescription".equals(elem.getTagName())) {
- setCpeDescriptor(elem.getAttribute("href"));
- // Trace.trace("HRef: " + getCpeDescriptor());
-
- } else if (TAG_COLLECTION_READER.equals(elem.getTagName())) {
- uimaCollectionReaders.add(aParser.buildObject(elem, aOptions));
-
- } else if (TAG_CAS_PROCESSOR.equals(elem.getTagName())) {
- uimaCasProcessors.add(aParser.buildObject(elem, aOptions));
-
- } else if (TAG_DEPLOYMENT_DEFAULT_SETTINGS.equals(elem.getTagName())) {
- // defaultCasProcessorSettings ALWAYS exists
- buildDefaultCasProcessorSettings(elem, aParser);
- } else {
- Trace.err("Unknown Tag: " + elem.getTagName());
-// throw new InvalidXMLException(
-// InvalidXMLException.UNKNOWN_ELEMENT,
-// new Object[]{elem.getTagName()});
- }
- }
- }
-// UimaCasProcessor[] paramArr =
-// new UimaCasProcessor[uimaCasProcessors.size()];
-// if (uimaCasProcessors.size() > 0) {
-// uimaCasProcessors.toArray(paramArr);
-// }
-// setUimaCasProcessors(paramArr);
- }
-
- private void buildCasProcessorSettingsOverride (Element aElement, XMLParser aParser)
- throws InvalidXMLException
- {
- NodeList childNodes = aElement.getChildNodes();
- for (int i = 0; i < childNodes.getLength(); i++) {
- Node curNode = childNodes.item(i);
- if (!(curNode instanceof Element)) {
- continue;
- }
- Element elem = (Element)curNode;
- if ("errorHandling".equals(elem.getTagName())) {
- }
- }
- }
-
- /**
- *
- *
- * @param aElement
- * @param aParser
- * @throws InvalidXMLException
- * @return void
- *
- * <defaultCasProcessorSettings>
- * <errorHandling>
- * <errorRateThreshold action="terminate" count="100" sample_size=1000"/>
- * <maxConsecutiveRestarts action="terminate" value="30"/>
- * <timeout max="10000"/>
- * </errorHandling>
- * <checkpoint batch="10000" frequency="" />
- * </defaultCasProcessorSettings>
- *
- */
- private void buildDefaultCasProcessorSettings (Element aElement, XMLParser aParser)
- throws InvalidXMLException
- {
- NodeList childNodes = aElement.getChildNodes();
- for (int i = 0; i < childNodes.getLength(); i++) {
- Node curNode = childNodes.item(i);
- if (!(curNode instanceof Element)) {
- continue;
- }
- Element elem = (Element)curNode;
- if ("errorHandling".equals(elem.getTagName())) {
- NodeList cNodes = elem.getChildNodes();
-
- CasProcessorErrorHandling errorHandling = null;
- for (int j = 0; j < cNodes.getLength(); j++) {
- Node node = cNodes.item(j);
- if (!(node instanceof Element)) {
- continue;
- }
- Element e = (Element) node;
- if ("errorRateThreshold".equals(e.getTagName())) {
- if (errorHandling == null) {
- errorHandling = UimaApplication_Impl.getCpeDefaultErrorHandling();
- }
- errorHandling.getErrorRateThreshold().setAction(e.getAttribute("action"));
- errorHandling.getErrorRateThreshold().setMaxErrorCount(Integer.parseInt(e.getAttribute("count")));
- errorHandling.getErrorRateThreshold().setMaxErrorSampleSize(Integer.parseInt(e.getAttribute("sample_size")));
-
-
- // Trace.trace("errorRateThreshold action=" + action);
- } else if ("maxConsecutiveRestarts".equals(e.getTagName())) {
- if (errorHandling == null) {
- errorHandling = UimaApplication_Impl.getCpeDefaultErrorHandling();
- }
-
-
-
- } else if ("timeout".equals(e.getTagName())) {
- if (errorHandling == null) {
- errorHandling = UimaApplication_Impl.getCpeDefaultErrorHandling();
- }
-
-
- }
- }
- // Set ErrorHandling ?
- if (errorHandling != null) {
- getDefaultCasProcessorSettings().setErrorHandling(errorHandling);
- }
- } else if ("checkpoint".equals(elem.getTagName())) {
-
- } else {
- throw new InvalidXMLException(
- InvalidXMLException.UNKNOWN_ELEMENT,
- new Object[]{elem.getTagName()});
- }
- }
-
-
-
-
-
- }
-
- /*************************************************************************/
-
- /**
- * Get UIMA application descriptor.
- *
[... 2317 lines stripped ...]