public class MultiprocessingAnalysisEngine_impl extends AnalysisEngineImplBase implements TextAnalysisEngine
AnalysisEngine
implementation that can process multiple CAS
objects
simultaneously. This is accomplished by maintaining a pool of AnalysisEngine
instances. When initialized, this class checks for the parameter
AnalysisEngine.PARAM_NUM_SIMULTANEOUS_REQUESTS
to determine how many AnalysisEngine
instances to put in the pool.LOG_RESOURCE_BUNDLE, PARAM_VERIFICATION_MODE
MDC_ANNOTATOR_CONTEXT_NAME, MDC_ANNOTATOR_IMPL_NAME, MDC_CAS_ID, MDC_ROOT_CONTEXT_ID, PARAM_CONFIG_PARAM_SETTINGS, PARAM_MBEAN_NAME_PREFIX, PARAM_MBEAN_SERVER, PARAM_NUM_SIMULTANEOUS_REQUESTS, PARAM_RESOURCE_MANAGER, PARAM_THROTTLE_EXCESSIVE_ANNOTATOR_LOGGING, PARAM_TIMEOUT_PERIOD
PARAM_AGGREGATE_SOFA_MAPPINGS, PARAM_CONFIG_MANAGER, PARAM_EXTERNAL_OVERRIDE_SETTINGS, PARAM_PERFORMANCE_TUNING_SETTINGS, PARAM_UIMA_CONTEXT
Constructor and Description |
---|
MultiprocessingAnalysisEngine_impl() |
Modifier and Type | Method and Description |
---|---|
void |
batchProcessComplete()
Notifies this AnalysisEngine that processing of a batch has completed.
|
void |
collectionProcessComplete()
Notifies this AnalysisEngine that processing of an entire collection has completed.
|
void |
destroy()
Releases all resources held by this
Resource . |
protected org.apache.uima.internal.util.AnalysisEnginePool |
getPool()
Gets the AnalysisEngine pool used to serve process requests.
|
protected int |
getTimeout()
Gets the timeout period, after which an exception will be thrown if no AnalysisEngine is
available in the pool.
|
boolean |
initialize(ResourceSpecifier aSpecifier,
Map<String,Object> aAdditionalParams)
Initializes this
Resource from a ResourceSpecifier . |
ProcessTrace |
process(CAS aCAS)
Invokes this AnalysisEngine's analysis logic.
|
ProcessTrace |
process(CAS aCAS,
ResultSpecification aResultSpec)
Invokes this AnalysisEngine's analysis logic.
|
void |
process(CAS aCAS,
ResultSpecification aResultSpec,
ProcessTrace aTrace)
Invokes this AnalysisEngine's analysis logic.
|
ProcessTrace |
process(JCas aJCas)
Similar to
AnalysisEngine.process(CAS) but uses the Java-object-based JCas interface instead
of the general CAS interface. |
ProcessTrace |
process(JCas aJCas,
ResultSpecification aResultSpec)
Similar to
AnalysisEngine.process(CAS,ResultSpecification) but uses the Java-object-based
JCas interface instead of the general CAS interface. |
void |
process(JCas aJCas,
ResultSpecification aResultSpec,
ProcessTrace aTrace)
Similar to
AnalysisEngine.process(CAS, ResultSpecification, ProcessTrace) but uses the
Java-object-based JCas interface instead of the general CAS interface. |
CasIterator |
processAndOutputNewCASes(CAS aCAS)
Processes a CAS, possibly producing multiple CASes as a result.
|
JCasIterator |
processAndOutputNewCASes(JCas aJCas)
Default implementation of processAndOutputNewCASes(JCas) method.
|
void |
reconfigure()
Instructs this Resource to re-read its configuration parameter settings.
|
void |
setLogger(Logger aLogger)
Set the logger in the current UimaContext for use by user annotators.
|
void |
setResultSpecification(ResultSpecification aResultSpec)
Sets the list of output types and features that the application wants this AnalysisEngine to
produce.
|
batchProcessComplete, buildProcessTraceFromMBeanStats, buildProcessTraceFromMBeanStats, callInitializeMethod, callProcessMethod, collectionProcessComplete, createResultSpecification, createResultSpecification, enterBatchProcessComplete, enterCollectionProcessComplete, enterProcess, exitBatchProcessComplete, exitCollectionProcessComplete, exitProcess, finalize, getAnalysisEngineMetaData, getCurrentConfigParameterSettings, getFeatureNamesForType, getManagementInterface, getMBean, getMBeanNamePrefix, getMBeanServer, getPerformanceTuningSettings, getProcessingResourceMetaData, isProcessTraceEnabled, isReadOnly, isStateless, newCAS, newJCas, normalizeIsoLangCodes, process, processCas, processCas, resetResultSpecificationToDefault, setMetaData, setPerformanceTuningSettings, typeSystemInit
getConfigParameterValue, getConfigParameterValue, setConfigParameterValue, setConfigParameterValue
getCasManager, getLogger, getMetaData, getRelativePathResolver, getResourceManager, getUimaContext, getUimaContextAdmin, loadUserClass, loadUserClassOrThrow, setContextHolder, setContextHolderX, withContextHolder
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
createResultSpecification, createResultSpecification, getAnalysisEngineMetaData, getFeatureNamesForType, getLogger, getManagementInterface, getPerformanceTuningSettings, getResourceManager, newCAS, newJCas, process
getConfigParameterValue, getConfigParameterValue, setConfigParameterValue, setConfigParameterValue
getMetaData, getUimaContext, getUimaContextAdmin
processCas, processCas, typeSystemInit
batchProcessComplete, collectionProcessComplete, getProcessingResourceMetaData, isReadOnly, isStateless
public boolean initialize(ResourceSpecifier aSpecifier, Map<String,Object> aAdditionalParams) throws ResourceInitializationException
Resource
Resource
from a ResourceSpecifier
. Applications
do not need to call this method. It is called automatically by the ResourceFactory
and cannot be called a second time.initialize
in interface AnalysisEngine
initialize
in interface Resource
initialize
in class AnalysisEngineImplBase
aSpecifier
- specifies how to create a resource or locate an existing resource service.aAdditionalParams
- a Map containing additional parameters. May be null
if there are no
parameters. Each class that implements this interface can decide what additional
parameters it supports.ResourceSpecifier
is not of an appropriate type for this Resource. If
the ResourceSpecifier
is of an appropriate type but is invalid or if
some other failure occurs, an exception should be thrown.ResourceInitializationException
- if a failure occurs during initialization.Resource.initialize(org.apache.uima.resource.ResourceSpecifier,
java.util.Map)
public ProcessTrace process(CAS aCAS, ResultSpecification aResultSpec) throws ResultNotSupportedException, AnalysisEngineProcessException
AnalysisEngine
Capability
specification.)
This version of the process
method takes a ResultSpecification
as an
argument. The ResultSpecification
is alist of output types and features that the
application wants this AnalysisEngine to produce. If you are going to use the same
ResultSpecification
for multiple calls to process
, it is not
recommended to use this method. Instead call
AnalysisEngine.setResultSpecification(ResultSpecification)
once and then call AnalysisEngine.process(CAS)
for each CAS that you want to process.
process
in interface AnalysisEngine
process
in class AnalysisEngineImplBase
aCAS
- the CAS containing the inputs to the processing. Analysis results will also be written
to this CAS.aResultSpec
- a list of outputs that this AnalysisEngine should produce.ResultNotSupportedException
- if this AnalysisEngine is not capable of producing the results requested in
aResultSpec
.AnalysisEngineProcessException
- if a failure occurs during processing.AnalysisEngine.process(org.apache.uima.cas.CAS,
org.apache.uima.analysis_engine.ResultSpecification)
public void process(CAS aCAS, ResultSpecification aResultSpec, ProcessTrace aTrace) throws ResultNotSupportedException, AnalysisEngineProcessException
AnalysisEngine
Capability
specification.)
This version of the process
method takes a ResultSpecification
as an
argument. The ResultSpecification
is a list of output types and features that the
application wants this AnalysisEngine to produce. If you are going to use the same
ResultSpecification
for multiple calls to process
, it is not
recommended to use this method. Instead call
AnalysisEngine.setResultSpecification(ResultSpecification)
once and then call AnalysisEngine.process(CAS)
for each CAS that you want to process.
This version of this method also takes a ProcessTrace
object as a parameter.
This allows trace events to be written to an existing ProcessTrace
rather than a
new one.
process
in interface AnalysisEngine
process
in class AnalysisEngineImplBase
aCAS
- the CAS containing the inputs to the processing. Analysis results will also be written
to this CAS.aResultSpec
- a list of outputs that this AnalysisEngine should produce.aTrace
- the object to which trace events will be recordedResultNotSupportedException
- if this AnalysisEngine is not capable of producing the results requested in
aResultSpec
.AnalysisEngineProcessException
- if a failure occurs during processing.AnalysisEngine.process(org.apache.uima.cas.CAS,
org.apache.uima.analysis_engine.ResultSpecification, org.apache.uima.util.ProcessTrace)
public CasIterator processAndOutputNewCASes(CAS aCAS) throws AnalysisEngineProcessException
AnalysisEngine
CasIterator
interface to step through the output CASes.
If this Analysis Engine does not produce output CASes, then the CasIterator
will
return no elements. You can check if an AnalysisEngine is capable of producing output CASes by
checking the
OperationalProperties.getOutputsNewCASes()
operational property (getAnalysisEngineMetaData().getOperationalProperties().getOutputsNewCASes()
).
Once this method is called, the AnalysisEngine "owns" aCAS
until such time as
the CasIterator.hasNext()
method returns false. That is, the caller should not attempt
to modify or access the input CAS until it has read all of the elements from the CasIterator.
If the caller wants to abort the processing before having read all of the output CASes, it may
call CasIterator.release()
, which will stop further processing from occurring, and
ownership of aCAS
will revert to the caller.
processAndOutputNewCASes
in interface AnalysisEngine
processAndOutputNewCASes
in class AnalysisEngineImplBase
aCAS
- the CAS to be processedAnalysisEngineProcessException
- if a failure occurs during processingpublic ProcessTrace process(CAS aCAS) throws AnalysisEngineProcessException
AnalysisEngine
Capability
specification.)
This version of process
does not take a ResultSpecification
parameter.
You may specify a ResultSpecification
by calling
AnalysisEngine.setResultSpecification(ResultSpecification)
prior to calling this method.
process
in interface AnalysisEngine
process
in class AnalysisEngineImplBase
aCAS
- the CAS containing the inputs to the processing. Analysis results will also be written
to this CAS.AnalysisEngineProcessException
- if a failure occurs during processing.public ProcessTrace process(JCas aJCas) throws AnalysisEngineProcessException
AnalysisEngine
AnalysisEngine.process(CAS)
but uses the Java-object-based JCas
interface instead
of the general CAS
interface.process
in interface AnalysisEngine
process
in class AnalysisEngineImplBase
aJCas
- the JCas containing the inputs to the processing. Analysis results will also be
written to this JCas.AnalysisEngineProcessException
- if a failure occurs during processing.AnalysisEngine.process(org.apache.uima.jcas.JCas)
public ProcessTrace process(JCas aJCas, ResultSpecification aResultSpec) throws ResultNotSupportedException, AnalysisEngineProcessException
AnalysisEngine
AnalysisEngine.process(CAS,ResultSpecification)
but uses the Java-object-based
JCas
interface instead of the general CAS
interface.
This version of the process
method takes a ResultSpecification
as an
argument. The ResultSpecification
is a list of output types and features that the
application wants this AnalysisEngine to produce. If you are going to use the same
ResultSpecification
for multiple calls to process
, it is not
recommended to use this method. Instead call
AnalysisEngine.setResultSpecification(ResultSpecification)
once and then call AnalysisEngine.process(JCas)
for each CAS that you want to process.
process
in interface AnalysisEngine
process
in class AnalysisEngineImplBase
aJCas
- the JCas containing the inputs to the processing. Analysis results will also be
written to this JCas.aResultSpec
- a list of outputs that this AnalysisEngine should produce.ResultNotSupportedException
- if this AnalysisEngine is not capable of producing the results requested in
aResultSpec
.AnalysisEngineProcessException
- if a failure occurs during processing.AnalysisEngine.process(org.apache.uima.jcas.JCas,
org.apache.uima.analysis_engine.ResultSpecification)
public void process(JCas aJCas, ResultSpecification aResultSpec, ProcessTrace aTrace) throws ResultNotSupportedException, AnalysisEngineProcessException
AnalysisEngine
AnalysisEngine.process(CAS, ResultSpecification, ProcessTrace)
but uses the
Java-object-based JCas
interface instead of the general CAS
interface.
This version of the process
method takes a ResultSpecification
as an
argument. The ResultSpecification
is a list of output types and features that the
application wants this AnalysisEngine to produce. If you are going to use the same
ResultSpecification
for multiple calls to process
, it is not
recommended to use this method. Instead call
AnalysisEngine.setResultSpecification(ResultSpecification)
once and then call AnalysisEngine.process(JCas)
for each CAS that you want to process.
This version of this method also takes a ProcessTrace
object as a parameter.
This allows trace events to be written to an existing ProcessTrace
rather than a
new one.
process
in interface AnalysisEngine
process
in class AnalysisEngineImplBase
aJCas
- the JCas containing the inputs to the processing. Analysis results will also be
written to this JCas.aResultSpec
- a list of outputs that this AnalysisEngine should produce.aTrace
- the object to which trace events will be recordedResultNotSupportedException
- if this AnalysisEngine is not capable of producing the results requested in
aResultSpec
.AnalysisEngineProcessException
- if a failure occurs during processing.AnalysisEngine.process(org.apache.uima.jcas.JCas,
org.apache.uima.analysis_engine.ResultSpecification, org.apache.uima.util.ProcessTrace)
public JCasIterator processAndOutputNewCASes(JCas aJCas) throws AnalysisEngineProcessException
AnalysisEngineImplBase
processAndOutputNewCASes
in interface AnalysisEngine
processAndOutputNewCASes
in class AnalysisEngineImplBase
aJCas
- the JCAS to be processedAnalysisEngineProcessException
- if a failure occurs during processingpublic void setResultSpecification(ResultSpecification aResultSpec)
AnalysisEngine
setResultSpecification
in interface AnalysisEngine
setResultSpecification
in class AnalysisEngineImplBase
aResultSpec
- specifies the list of output types and features that the application is interested in.public void reconfigure() throws ResourceConfigurationException
ConfigurableResource
reconfigure
in interface AnalysisEngine
reconfigure
in interface ConfigurableResource
reconfigure
in class ConfigurableResource_ImplBase
ResourceConfigurationException
- if the configuration is not validConfigurableResource.reconfigure()
public void destroy()
Resource
Resource
.destroy
in interface Resource
destroy
in class Resource_ImplBase
Resource.destroy()
public void setLogger(Logger aLogger)
Resource_ImplBase
setLogger
in interface AnalysisEngine
setLogger
in interface Resource
setLogger
in class Resource_ImplBase
aLogger
- the logger for this Resource to useAnalysisEngine.setLogger(org.apache.uima.util.Logger)
public void batchProcessComplete() throws AnalysisEngineProcessException
AnalysisEngine
batchProcessComplete
in interface AnalysisEngine
batchProcessComplete
in class AnalysisEngineImplBase
AnalysisEngineProcessException
- if an exception occurs during processingpublic void collectionProcessComplete() throws AnalysisEngineProcessException
AnalysisEngine
If this AnalysisEngine is an aggregate, this method will call the collectionProcessComplete method of
all components of that aggregate. If the aggregate descriptor declares a fixedFlow
or
capabilityLanguageFlow
, then the components' collectionProcessComplete methods will be called
in the order specified by that flow element. Once all components in the flow have been called, any components
not declared in the flow will be called, in arbitrary order. If there is no fixedFlow
or
capabilityLanguageFlow
, then all components in the aggregate will be called in arbitrary order.
collectionProcessComplete
in interface AnalysisEngine
collectionProcessComplete
in class AnalysisEngineImplBase
AnalysisEngineProcessException
- if an exception occurs during processingprotected org.apache.uima.internal.util.AnalysisEnginePool getPool()
protected int getTimeout()
Copyright © 2006–2021 The Apache Software Foundation. All rights reserved.