Class BaseCPMImpl

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

public class BaseCPMImpl extends Object implements BaseCPM, 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 Details

    • cpmExecutorService

      public CPMExecutorService cpmExecutorService
      The CPE executor service.
  • Constructor Details

    • BaseCPMImpl

      public BaseCPMImpl(CpeDescription aDescriptor) throws Exception
      Instantiates and initializes CPE Factory with a given CPE Descriptor and defaults.
      Parameters:
      aDescriptor - - parsed CPE descriptor
      Throws:
      Exception - -
    • BaseCPMImpl

      public BaseCPMImpl(CpeDescription aDescriptor, ResourceManager aResourceManager, boolean aDefaultProcessTrace, Properties aProps) throws 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
      aProps - the a props
      Throws:
      Exception - -
    • BaseCPMImpl

      public BaseCPMImpl(Boolean mode, String aDescriptor, ResourceManager aResourceManager) throws 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:
      Exception - -
  • Method Details

    • setPerformanceTuningSettings

      public void setPerformanceTuningSettings(Properties aPerformanceTuningSettings)
      Plugs in custom perfomance tunning parameters.
      Parameters:
      aPerformanceTuningSettings - the new performance tuning settings
    • 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 - the new jedii report
    • init

      public void init(boolean aDummyCasProcessor, Properties aProps) throws Exception
      Instantiates and initializes a CPE.
      Parameters:
      aDummyCasProcessor - -
      aProps - the a props
      Throws:
      Exception - -
    • getCPEConfig

      public CpeConfiguration getCPEConfig() throws Exception
      Returns CPEConfig object holding current CPE configuration.
      Returns:
      CPEConfig instance
      Throws:
      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 - if this CPM is currently processing
    • 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 - if this CPM is currently processing
    • 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(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(String aCasProcessorName)
      Enable cas processor.
      Parameters:
      aCasProcessorName - the a cas processor name
    • 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 performing 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 performing 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 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.
      Parameters:
      aCollectionReader - the a collection reader
      Throws:
      ResourceInitializationException - the resource initialization exception
      See Also:
    • process

      public void process() throws ResourceInitializationException
      This method is called by an application to begin processing given Collection. It creates a new thread, adds it to a ThreadGroup and starts it.
      Specified by:
      process in interface BaseCPM
      Throws:
      ResourceInitializationException - if an error occurs during initialization
      See Also:
    • 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.
      Parameters:
      aCollectionReader - the a collection reader
      aBatchSize - the a batch size
      Throws:
      ResourceInitializationException - the resource initialization exception
      See Also:
    • 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()
      Asynch stop.
    • 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 - the a event
      aTotalTime - the a total time
    • 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:
      the performance report
    • getProgress

      public Progress[] getProgress()
      Returns current CPE progress. How many entities processed and bytes processed.
      Specified by:
      getProgress in interface BaseCPM
      Returns:
      the progress
    • getDescriptor

      public String getDescriptor(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 - the resource configuration exception
    • 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