org.apache.uima.collection.impl.cpm
Class BaseCPMImpl

java.lang.Object
  extended by org.apache.uima.collection.impl.cpm.BaseCPMImpl
All Implemented Interfaces:
java.lang.Runnable, BaseCPM
Direct Known Subclasses:
CPMImpl

public class BaseCPMImpl
extends java.lang.Object
implements BaseCPM, java.lang.Runnable

Main thread that launches CPE and manages it. An application interacts with the running CPE via this object. Through an API, an application may start, pause, resume, and stop a CPE.


Field Summary
 CPMThreadGroup cpmThreadGroup
           
 
Fields inherited from interface org.apache.uima.collection.base_cpm.BaseCPM
DOCUMENT_TEXT_FEATURE, DOCUMENT_TEXT_TYPE
 
Constructor Summary
BaseCPMImpl(java.lang.Boolean mode, java.lang.String aDescriptor, ResourceManager aResourceManager)
          Parses CPE descriptor
BaseCPMImpl(CpeDescription aDescriptor)
          Instantiates and initializes CPE Factory with a given CPE Descriptor and defaults.
BaseCPMImpl(CpeDescription aDescriptor, ResourceManager aResourceManager, boolean aDefaultProcessTrace, java.util.Properties aProps)
          Instantiates and initializes CPE Factory responsible for creating individual components that are part of the processing pipeline.
 
Method Summary
 void addCasProcessor(CasProcessor aCasProcessor)
          Adds a CasProcessor to this CPM's list of consumers.
 void addCasProcessor(CasProcessor aCasProcessor, int aIndex)
          Adds a CasProcessor to this CPM's list of consumers.
 void addStatusCallbackListener(BaseStatusCallbackListener aListener)
          Registers a listsner to receive status callbacks.
 void asynchStop()
           
 void buildEventTree(ProcessTraceEvent aEvent, int aTotalTime)
          Helper method to help build the CPM report
 void disableCasProcessor(java.lang.String aCasProcessorName)
          Disables a CasProcessor in this CPM's list of CasProcessors.
 void displayStats(ProcessTrace aProcessTrace, int aNumDocsProcessed)
          Helper method to display stats and totals
 void enableCasProcessor(java.lang.String aCasProcessorName)
           
 void finalizeIt()
          Called to cleanup CPE on shutdown
 CasProcessor[] getCasProcessors()
          Gets the CasProcessorss assigned to this CPM, in the order in which they will be called by the CPM.
 BaseCollectionReader getCollectionReader()
          Returns a Collection Reader for this CPE.
 CpeConfiguration getCPEConfig()
          Returns CPEConfig object holding current CPE configuration
 java.lang.String getDescriptor(java.util.List aList)
          Returns a CPE descriptor as a String
 ProcessTrace getPerformanceReport()
          Returns PerformanceReport for the CPM.
 Progress[] getProgress()
          Returns current CPE progress.
 SynchPoint getSynchPoint()
          Returns a SynchPoint object initialized by the Collection Reader if the Collection Reader implements RecoverableCollectionReader.
 void init(boolean aDummyCasProcessor, java.util.Properties aProps)
          Instantiates and initializes a CPE.
 boolean isPaused()
          Determines whether this CPM's processing is currently paused.
 boolean isPauseOnException()
          Gets whether this CPM will automatically pause processing if an exception occurs.
 boolean isProcessing()
          Determines whether this CPM is currently processing.
 boolean isSerialProcessingRequired()
          Gets whether this CPM is required to process the collection's elements serially (as opposed to perfoming parallelization).
 void kill()
          Kills the CPM hard.
 void pause()
          Pauses processing.
 void process()
          Initiates processing of a collection.
 void process(BaseCollectionReader aCollectionReader)
          Deprecated.  
 void process(BaseCollectionReader aCollectionReader, int aBatchSize)
          Deprecated.  
 void removeCasProcessor(CasProcessor aCasProcessor)
          Removes a CasProcessor to this CPM's list of consumers.
 void removeStatusCallbackListener(BaseStatusCallbackListener aListener)
          Unregisters a status callback listener.
 void resume()
          Resumes processing that has been paused.
 void resume(boolean aRetryFailed)
          Resumes processing that has been paused.
 void run()
           
 void setCollectionReader(BaseCollectionReader aCollectionReader)
          Sets the Collection Reader for this CPE.
 void setJediiReport(boolean aUseJediiReport)
          Sets Jedii-style reporting resources and sets the global flag to indicate what report-style to use at the end of processing.
 void setPauseOnException(boolean aPause)
          Sets whether this CPM will automatically pause processing if an exception occurs.
 void setPerformanceTuningSettings(java.util.Properties aPerformanceTuningSettings)
          Plugs in custom perfomance tunning parameters
 void setProcessControllerAdapter(ProcessControllerAdapter aPca)
          Plugs in a given ProcessControllerAdapter.
 void setSerialProcessingRequired(boolean aRequired)
          Sets whether this CPM is required to process the collection's elements serially (as opposed to perfoming parallelization).
 void stop()
          Stops processing.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

cpmThreadGroup

public CPMThreadGroup cpmThreadGroup
Constructor Detail

BaseCPMImpl

public BaseCPMImpl(CpeDescription aDescriptor)
            throws java.lang.Exception
Instantiates and initializes CPE Factory with a given CPE Descriptor and defaults.

Parameters:
aDescriptor - - parsed CPE descriptor
Throws:
java.lang.Exception

BaseCPMImpl

public BaseCPMImpl(CpeDescription aDescriptor,
                   ResourceManager aResourceManager,
                   boolean aDefaultProcessTrace,
                   java.util.Properties aProps)
            throws java.lang.Exception
Instantiates and initializes CPE Factory responsible for creating individual components that are part of the processing pipeline.

Parameters:
aDescriptor - - parsed CPE descriptor
aResourceManager - - ResourceManager instance to be used by the CPE
aDefaultProcessTrace - - ProcessTrace instance to capture events and stats
Throws:
java.lang.Exception

BaseCPMImpl

public BaseCPMImpl(java.lang.Boolean mode,
                   java.lang.String aDescriptor,
                   ResourceManager aResourceManager)
            throws java.lang.Exception
Parses CPE descriptor

Parameters:
mode - - indicates if the CPM should use a static descriptor or one provided
aDescriptor - - provided descriptor path
aResourceManager - ResourceManager to be used by CPM
Throws:
java.lang.Exception
Method Detail

setPerformanceTuningSettings

public void setPerformanceTuningSettings(java.util.Properties aPerformanceTuningSettings)
Plugs in custom perfomance tunning parameters

Parameters:
aPerformanceTuningSettings -

setProcessControllerAdapter

public void setProcessControllerAdapter(ProcessControllerAdapter aPca)
Plugs in a given ProcessControllerAdapter. The CPM uses this adapter to request Cas Processor restarts and shutdown.

Parameters:
aPca - - instance of the ProcessControllerAdapter

setJediiReport

public void setJediiReport(boolean aUseJediiReport)
Sets Jedii-style reporting resources and sets the global flag to indicate what report-style to use at the end of processing. Jedii-style reporting shows a summary for this run. The CPM default report shows more detail information.

Parameters:
aUseJediiReport -

init

public void init(boolean aDummyCasProcessor,
                 java.util.Properties aProps)
          throws java.lang.Exception
Instantiates and initializes a CPE.

Parameters:
aDummyCasProcessor - -
Throws:
java.lang.Exception

getCPEConfig

public CpeConfiguration getCPEConfig()
                              throws java.lang.Exception
Returns CPEConfig object holding current CPE configuration

Returns:
CPEConfig instance
Throws:
java.lang.Exception

getCasProcessors

public CasProcessor[] getCasProcessors()
Description copied from interface: BaseCPM
Gets the CasProcessorss assigned to this CPM, in the order in which they will be called by the CPM.

Specified by:
getCasProcessors in interface BaseCPM
Returns:
an array of CasProcessors

addCasProcessor

public void addCasProcessor(CasProcessor aCasProcessor)
                     throws ResourceConfigurationException
Description copied from interface: BaseCPM
Adds a CasProcessor to this CPM's list of consumers. The new CasProcessor will be added to the end of the list of CAS Processors.

Specified by:
addCasProcessor in interface BaseCPM
Parameters:
aCasProcessor - a CasProcessor to add
Throws:
ResourceConfigurationException

addCasProcessor

public void addCasProcessor(CasProcessor aCasProcessor,
                            int aIndex)
                     throws ResourceConfigurationException
Description copied from interface: BaseCPM
Adds a CasProcessor to this CPM's list of consumers. The new CasProcessor will be added at the specified index.

Specified by:
addCasProcessor in interface BaseCPM
Parameters:
aCasProcessor - the CasProcessor to add
aIndex - the index at which to add the CasProcessor
Throws:
ResourceConfigurationException

removeCasProcessor

public void removeCasProcessor(CasProcessor aCasProcessor)
Description copied from interface: BaseCPM
Removes a CasProcessor to this CPM's list of consumers.

Specified by:
removeCasProcessor in interface BaseCPM
Parameters:
aCasProcessor - the CasProcessor to remove

disableCasProcessor

public void disableCasProcessor(java.lang.String aCasProcessorName)
Description copied from interface: BaseCPM
Disables a CasProcessor in this CPM's list of CasProcessors.

Specified by:
disableCasProcessor in interface BaseCPM
Parameters:
aCasProcessorName - the name of the CasProcessor to disable

enableCasProcessor

public void enableCasProcessor(java.lang.String aCasProcessorName)

isSerialProcessingRequired

public boolean isSerialProcessingRequired()
Description copied from interface: BaseCPM
Gets whether this CPM is required to process the collection's elements serially (as opposed to perfoming parallelization). Note that a value of false does not guarantee that parallelization is performed; this is left up to the CPM implementation.

Specified by:
isSerialProcessingRequired in interface BaseCPM
Returns:
true if and only if serial processing is required

setSerialProcessingRequired

public void setSerialProcessingRequired(boolean aRequired)
Description copied from interface: BaseCPM
Sets whether this CPM is required to process the collection's elements serially (as opposed to perfoming parallelization). If this method is not called, the default is false. Note that a value of false does not guarantee that parallelization is performed; this is left up to the CPM implementation.

Specified by:
setSerialProcessingRequired in interface BaseCPM
Parameters:
aRequired - true if and only if serial processing is required

isPauseOnException

public boolean isPauseOnException()
Description copied from interface: BaseCPM
Gets whether this CPM will automatically pause processing if an exception occurs. If processing is paused it can be resumed by calling the BaseCPM.resume(boolean) method.

Specified by:
isPauseOnException in interface BaseCPM
Returns:
true if and only if this CPM will pause on exception

setPauseOnException

public void setPauseOnException(boolean aPause)
Description copied from interface: BaseCPM
Sets whether this CPM will automatically pause processing if an exception occurs. If processing is paused it can be resumed by calling the BaseCPM.resume(boolean) method.

Specified by:
setPauseOnException in interface BaseCPM
Parameters:
aPause - true if and only if this CPM should pause on exception

addStatusCallbackListener

public void addStatusCallbackListener(BaseStatusCallbackListener aListener)
Description copied from interface: BaseCPM
Registers a listsner to receive status callbacks.

Specified by:
addStatusCallbackListener in interface BaseCPM
Parameters:
aListener - the listener to add

removeStatusCallbackListener

public void removeStatusCallbackListener(BaseStatusCallbackListener aListener)
Description copied from interface: BaseCPM
Unregisters a status callback listener.

Specified by:
removeStatusCallbackListener in interface BaseCPM
Parameters:
aListener - the listener to remove

run

public void run()
Specified by:
run in interface java.lang.Runnable

finalizeIt

public void finalizeIt()
Called to cleanup CPE on shutdown


process

@Deprecated
public void process(BaseCollectionReader aCollectionReader)
             throws ResourceInitializationException
Deprecated. 

This method is called by an applications to begin CPM processing with a given Collection. It just creates a new thread and starts it.

Throws:
ResourceInitializationException
See Also:
org.apache.uima.collection.base_cpm.BaseCPM#process(org.apache.uima.collection.base_cpm.BaseCollectionReader)

process

public void process()
             throws ResourceInitializationException
Description copied from interface: BaseCPM
Initiates processing of a collection. This method starts the processing in another thread and returns immediately. Status of the processing can be obtained by registering a listener with the BaseCPM.addStatusCallbackListener(BaseStatusCallbackListener) method.

A CPM can only process one collection at a time. If this method is called while a previous processing request has not yet completed, a UIMA_IllegalStateException will result. To find out whether a CPM is free to begin another processing request, call the BaseCPM.isProcessing() method.

Specified by:
process in interface BaseCPM
Throws:
ResourceInitializationException - if an error occurs during initialization

process

@Deprecated
public void process(BaseCollectionReader aCollectionReader,
                               int aBatchSize)
             throws ResourceInitializationException
Deprecated. 

This method is called by an applications to begin CPM processing with a given Collection. It just creates a new thread and starts it.

Throws:
ResourceInitializationException
See Also:
org.apache.uima.collection.base_cpm.BaseCPM#process(org.apache.uima.collection.base_cpm.BaseCollectionReader, int)

setCollectionReader

public void setCollectionReader(BaseCollectionReader aCollectionReader)
Sets the Collection Reader for this CPE.

Specified by:
setCollectionReader in interface BaseCPM
Parameters:
aCollectionReader - the collection reader

getCollectionReader

public BaseCollectionReader getCollectionReader()
Returns a Collection Reader for this CPE.

Specified by:
getCollectionReader in interface BaseCPM
Returns:
the collection reader

isProcessing

public boolean isProcessing()
Description copied from interface: BaseCPM
Determines whether this CPM is currently processing. This means that a processing request has been submitted and has not yet completed or been BaseCPM.stop()ped. If processing is paused, this method will still return true.

Specified by:
isProcessing in interface BaseCPM
Returns:
true if and only if this CPM is currently processing.

pause

public void pause()
Description copied from interface: BaseCPM
Pauses processing. Processing can later be resumed by calling the BaseCPM.resume(boolean) method.

Specified by:
pause in interface BaseCPM

isPaused

public boolean isPaused()
Description copied from interface: BaseCPM
Determines whether this CPM's processing is currently paused.

Specified by:
isPaused in interface BaseCPM
Returns:
true if and only if this CPM's processing is currently paused.

resume

public void resume(boolean aRetryFailed)
Description copied from interface: BaseCPM
Resumes processing that has been paused.

Specified by:
resume in interface BaseCPM
Parameters:
aRetryFailed - if processing was paused because an exception occurred (see BaseCPM.setPauseOnException(boolean)), setting a value of true for this parameter will cause the failed entity to be retried. A value of false (the default) will cause processing to continue with the next entity after the failure.

resume

public void resume()
Description copied from interface: BaseCPM
Resumes processing that has been paused.

Specified by:
resume in interface BaseCPM

kill

public void kill()
Kills the CPM hard. CASes in transit are not processed.


stop

public void stop()
Description copied from interface: BaseCPM
Stops processing.

Specified by:
stop in interface BaseCPM

asynchStop

public void asynchStop()

displayStats

public void displayStats(ProcessTrace aProcessTrace,
                         int aNumDocsProcessed)
Helper method to display stats and totals

Parameters:
aProcessTrace - - trace containing stats
aNumDocsProcessed - - number of entities processed so far

buildEventTree

public void buildEventTree(ProcessTraceEvent aEvent,
                           int aTotalTime)
Helper method to help build the CPM report

Parameters:
aEvent -
aTotalTime -

getPerformanceReport

public ProcessTrace getPerformanceReport()
Returns PerformanceReport for the CPM. This report contains a snapshot of the CPM state.

Specified by:
getPerformanceReport in interface BaseCPM
Returns:
an object containing performance statistics

getProgress

public Progress[] getProgress()
Returns current CPE progress. How many entities processed and bytes processed.

Specified by:
getProgress in interface BaseCPM
Returns:
an array of Progress objects, each of which represents the progress in a different set of units (for example number of entities or bytes)

getDescriptor

public java.lang.String getDescriptor(java.util.List aList)
                               throws ResourceConfigurationException
Returns a CPE descriptor as a String

Parameters:
aList - - list of components
Returns:
- descriptor populated with a given components
Throws:
ResourceConfigurationException

getSynchPoint

public SynchPoint getSynchPoint()
Returns a SynchPoint object initialized by the Collection Reader if the Collection Reader implements RecoverableCollectionReader. The synchpoint object contains the current snapshot that includes the last document processed.

Returns:
- instance of SynchPoint if the Collection Reader is recoverable, null otherwise


Copyright © 2011. All Rights Reserved.