Class CPEFactory
java.lang.Object
org.apache.uima.collection.impl.cpm.container.CPEFactory
Component responsible for generating objects representing cpe descriptor configuration. Provides
various ways to instantiate object model representing cpe configuration. In the simplest form it
ingests an xml file (cpe descriptor), parses it and creates an object for every element in the
xml file.
Using objects representing configuration, this component creates CollectionReader CasInitializer, Analysis Engines, and Cas Consumers.
In addition to creating object, this component provides read/write access to the object model allowing for dynamic or programmatic modifications. It facilitates plugging in existing CollectionReaders and CasProcessors.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate CpeDescription
static final String
private HashMap
private String
private boolean
private boolean
private boolean
private int
private UimaContextAdmin
-
Constructor Summary
ConstructorsConstructorDescriptionCPEFactory
(CpeDescription aDescriptor, ResourceManager aResourceManager) Create a new CPEFactory for a CpeDescription that's already been parsed.CPEFactory
(ResourceManager aResourceManager) Create a new CPEFactory on which we will later call parse(String) to parse a CPE descriptor. -
Method Summary
Modifier and TypeMethodDescriptionprivate CpeCasProcessor
addCasProcessor
(String aCasProcessorName) Adds new Cas Processor with given name.void
addCasProcessor
(CasProcessor aCasProcessor) Appends given Cas Processor to the list of CasProcessorsvoid
addCollectionReader
(BaseCollectionReader collectionReader) private void
Checks if cpe description has been createdprivate void
copyCasProcessor
(CpeCasProcessor aProcDesc, String aName) private NameValuePair
findMatchingNameValuePair
(ConfigurationParameterSettings aCps, String aParamName) Find a parameter with a given name in the in-memory component descriptorReturns an array of Cas Processors instantiated from the cpe descriptorReturns Collection Reader instantiated from configuration in the cpe descriptor.Returns an object containing global CPE configuration including: Number of documents to process Checkpoint configuration id of the document begin processingReturns Cpe DescriptorgetDescriptor
(List aList) getDescriptorURL
(CpeCasProcessor aCasProcessorCfg) Returns a descriptor path associated with Cas Processorint
Returns number of processing threads (Processing Units)Gets the ResourceManager that all components of this CPE should share.getSpecifier
(URL aDescriptorUrl) Instantiates a ResourceSpecifier from a given URL.boolean
boolean
isDefinitionInstanceOf
(Class aResourceClass, ResourceSpecifier resourceSpecifier, String aDescriptor) Check if a class has appropriate typeprivate boolean
isUniqueName
(String aName) Checks uniqueness of a given name.private boolean
overrideParameterIfExists
(ResourceSpecifier aResourceSpecifier, NameValuePair aCPE_nvp, String aComponentName) Override component's parameters.private void
overrideParameterSettings
(ResourceSpecifier aResourceSpecifier, CasProcessorConfigurationParameterSettings aCpe_cps, String aComponentName) Replace component's parameters.void
parse()
Creates an object representation from default cpe descriptor.void
parse
(InputStream aDescriptorStream) Creates an object representation for configuration in a given streamvoid
Creates an object representation for configuration in a given cpe descriptor file.produceCasDataConsumer
(Class aResourceClass, ResourceSpecifier aSpecifier, Map aAdditionalParams) Instantiates CasData Consumer from a given class.private Object
produceInitializer
(ResourceSpecifier aSpecifier, Map aAdditionalParams) Instantiates Cas Initializer from a given class.private CasProcessor
produceIntegratedCasProcessor
(CpeCasProcessor aCasProcessorType) Instantiates integrated Cas Processorprivate CasProcessor
produceLocalCasProcessor
(CpeCasProcessor aCasProcessorCfg) Instantiates a local (managed) Cas Processorprivate CasProcessor
produceRemoteCasProcessor
(CpeCasProcessor aCasProcessorType) Instantiates remote Cas Processorprivate void
replaceArray
(String aType, boolean aMandatoryParam, ConfigurationParameterSettings aCps, NameValuePair aCPE_nvp, String aComponentName) Replace array values found in the component's descriptor with values found in the CPE descriptorprivate void
replacePrimitive
(String aType, boolean aMandatoryParam, ConfigurationParameterSettings aCps, NameValuePair aCPE_nvp, String aComponentName) Replace a primitive value of a given parameter with a value defined in the CPE descriptorprivate void
setCpeDescriptor
(CpeDescription description) Assigns Cpe configuration to useprivate void
verifyDeploymentParams
(String aCasProcessorName, CasProcessorDeploymentParams aDepParams) Checks for existance of two parameters required to launch remote Cas Processor vnsHost and vnsPort.
-
Field Details
-
CPM_HOME
- See Also:
-
processorCount
private int processorCount -
DEFAULT_CONFIG_FILE
-
defaultConfig
private boolean defaultConfig -
casProcessorConfigMap
-
cpeDescriptor
-
initialized
private boolean initialized -
uimaContext
-
firstTime
private boolean firstTime -
cpMap
-
-
Constructor Details
-
CPEFactory
Create a new CPEFactory on which we will later call parse(String) to parse a CPE descriptor. -
CPEFactory
public CPEFactory(CpeDescription aDescriptor, ResourceManager aResourceManager) throws ResourceInitializationException Create a new CPEFactory for a CpeDescription that's already been parsed.- Parameters:
aDescriptor
-aResourceManager
- the resource manager that all components of this CPE will share If null, a new ResourceManager will be created.- Throws:
ResourceInitializationException
-
-
Method Details
-
parse
Creates an object representation for configuration in a given cpe descriptor file.- Parameters:
aDescriptor
- - path to the descriptor- Throws:
InstantiationException
- -
-
parse
Creates an object representation for configuration in a given stream- Parameters:
aDescriptorStream
- - stream containing cpe description- Throws:
InstantiationException
- -
-
parse
public void parse()Creates an object representation from default cpe descriptor.- Throws:
InstantiationException
- -
-
checkForErrors
Checks if cpe description has been created- Throws:
ConfigurationException
- -ResourceConfigurationException
-
getCollectionReader
Returns Collection Reader instantiated from configuration in the cpe descriptor. It also creates and intializes the Cas Initializer if one is defined and associates it with the CollectionReader.- Returns:
- - CollectionReader instance
- Throws:
ConfigurationException
- -ResourceConfigurationException
-
getCasProcessors
Returns an array of Cas Processors instantiated from the cpe descriptor- Returns:
- - array of CasProcessor instances
- Throws:
ResourceConfigurationException
- -
-
isDefinitionInstanceOf
public boolean isDefinitionInstanceOf(Class aResourceClass, ResourceSpecifier resourceSpecifier, String aDescriptor) throws ResourceConfigurationException Check if a class has appropriate type- Parameters:
aResourceClass
- - class to checkresourceSpecifier
- - specifier containing expected typeaDescriptor
- - descriptor name- Returns:
- true - if class matches type
- Throws:
ResourceConfigurationException
- -
-
produceCasDataConsumer
public CasProcessor produceCasDataConsumer(Class aResourceClass, ResourceSpecifier aSpecifier, Map aAdditionalParams) throws ResourceInitializationException Instantiates CasData Consumer from a given class.- Parameters:
aResourceClass
- - CasDataConsumer classaSpecifier
- - specifieraAdditionalParams
- - parameters used to initialize CasDataConsumer- Returns:
- - instance of CasProcessor
- Throws:
ResourceInitializationException
- -
-
produceInitializer
private Object produceInitializer(ResourceSpecifier aSpecifier, Map aAdditionalParams) throws ResourceInitializationException Instantiates Cas Initializer from a given class. It return- Parameters:
aSpecifier
- - configuration for Cas InitializeraAdditionalParams
- - parameters to initialize Cas Initializer- Returns:
- instance of CasDataInitializer or CasInitializer
- Throws:
ResourceInitializationException
- -
-
getDescriptorURL
Returns a descriptor path associated with Cas Processor- Parameters:
aCasProcessorCfg
- - Cas Processor configuration- Returns:
- - Descriptor path
- Throws:
ResourceConfigurationException
- -
-
getSpecifier
Instantiates a ResourceSpecifier from a given URL.- Parameters:
aDescriptorUrl
- - URL of descriptor- Returns:
- - ResourceSpecifier
- Throws:
Exception
- -
-
produceLocalCasProcessor
private CasProcessor produceLocalCasProcessor(CpeCasProcessor aCasProcessorCfg) throws ResourceConfigurationException Instantiates a local (managed) Cas Processor- Parameters:
aCasProcessorCfg
- - Cas Processor configuration- Returns:
- - Local CasProcessor
- Throws:
ResourceConfigurationException
- -
-
findMatchingNameValuePair
private NameValuePair findMatchingNameValuePair(ConfigurationParameterSettings aCps, String aParamName) throws Exception Find a parameter with a given name in the in-memory component descriptor- Parameters:
aCps
- - parameter settings from the component's descriptoraParamName
- - name of the parameter to look for- Returns:
- - parameter as
NameValuePair
instance. If not found, returns null. - Throws:
Exception
- - any error
-
replacePrimitive
private void replacePrimitive(String aType, boolean aMandatoryParam, ConfigurationParameterSettings aCps, NameValuePair aCPE_nvp, String aComponentName) throws Exception Replace a primitive value of a given parameter with a value defined in the CPE descriptor- Parameters:
aType
- - type of the primitive value ( String, Integer, Boolean, or Float)aCps
- - parameter settings from the component's descriptoraCPE_nvp
- - parameter containing array of values to replace values in the component's descriptor- Throws:
Exception
- -
-
replaceArray
private void replaceArray(String aType, boolean aMandatoryParam, ConfigurationParameterSettings aCps, NameValuePair aCPE_nvp, String aComponentName) throws Exception Replace array values found in the component's descriptor with values found in the CPE descriptor- Parameters:
aType
- - primitive type of the array (Sting, Integer, Float, or Boolean)aCps
- - parameter settings from the component's descriptoraCPE_nvp
- - parameter containing array of values to replace values in the component's descriptor- Throws:
Exception
- - any error
-
overrideParameterIfExists
private boolean overrideParameterIfExists(ResourceSpecifier aResourceSpecifier, NameValuePair aCPE_nvp, String aComponentName) throws Exception Override component's parameters. This overridde effects the in-memory settings. The actual component's descriptor will not be changed.- Parameters:
aResourceSpecifier
- - in-memory descriptor of the componentaCPE_nvp
- - parameter represented as name-value pair. If the name of the parameter is found in the component's descriptor its value will be changed.- Throws:
Exception
- - error during processing
-
overrideParameterSettings
private void overrideParameterSettings(ResourceSpecifier aResourceSpecifier, CasProcessorConfigurationParameterSettings aCpe_cps, String aComponentName) throws Exception Replace component's parameters. Its parameter values will be changed to match those defined in the CPE descriptor.- Parameters:
aResourceSpecifier
- - component's descriptor containing parameters to overrideaCasProcessorCPEConfig
- - cas processor configuration containing optional parameters to be used for overriding parameters in the descriptor- Throws:
Exception
- - failure during processing
-
produceIntegratedCasProcessor
private CasProcessor produceIntegratedCasProcessor(CpeCasProcessor aCasProcessorType) throws ResourceConfigurationException Instantiates integrated Cas Processor- Parameters:
aCasProcessorCfg
- - Cas processor configuration- Returns:
- - Integrated CasProcessor
- Throws:
ResourceConfigurationException
- -
-
produceRemoteCasProcessor
private CasProcessor produceRemoteCasProcessor(CpeCasProcessor aCasProcessorType) throws ResourceConfigurationException Instantiates remote Cas Processor- Parameters:
aCasProcessorCfg
- - Cas Processor Configuration- Returns:
- - Remote CasProcessor
- Throws:
ResourceConfigurationException
- -
-
getCPEConfig
Returns an object containing global CPE configuration including:- Number of documents to process
- Checkpoint configuration
- id of the document begin processing
- Returns:
- - Global CPE Configuration
- Throws:
InstantiationException
- -
-
getProcessingUnitThreadCount
Returns number of processing threads (Processing Units)- Returns:
- Number of processing threads
- Throws:
ResourceConfigurationException
- -
-
isDefault
public boolean isDefault()- Returns:
- true if the configuration is the default
-
getCpeDescriptor
Returns Cpe Descriptor- Returns:
- the Cpe Descriptor
-
setCpeDescriptor
Assigns Cpe configuration to use- Parameters:
description
-
-
isUniqueName
Checks uniqueness of a given name. This name is compared against all Cas Processors already defined. Cas Processor names must be unique.- Parameters:
aName
- - name to check- Returns:
- - true if name is unique, false otherwise
- Throws:
CpeDescriptorException
-
verifyDeploymentParams
private void verifyDeploymentParams(String aCasProcessorName, CasProcessorDeploymentParams aDepParams) throws ResourceConfigurationException Checks for existance of two parameters required to launch remote Cas Processor vnsHost and vnsPort. If not found the remote CasProcessor can not be located since the VNS is not specified. In this case an exception is thrown.- Parameters:
aCasProcessorName
-aDepParams
-- Throws:
ResourceConfigurationException
- -
-
addCasProcessor
Appends given Cas Processor to the list of CasProcessors- Parameters:
aCasProcessor
- - CasProcessor to add- Throws:
ResourceConfigurationException
-
addCasProcessor
private CpeCasProcessor addCasProcessor(String aCasProcessorName) throws ResourceConfigurationException Adds new Cas Processor with given name.- Parameters:
aCasProcessorName
- - name of the CasProcessor to add- Returns:
- -
- Throws:
ResourceConfigurationException
-
getDescriptor
- Parameters:
aList
-- Returns:
- the cpe descriptor constructed from the list
- Throws:
ResourceConfigurationException
- -
-
copyCasProcessor
- Parameters:
newProcessor
-aCasProcessor
-
-
addCollectionReader
- Parameters:
collectionReader
- - collection reader to use by the CPM
-
getResourceManager
Gets the ResourceManager that all components of this CPE should share.- Returns:
- the resource manager
-