Class FileTrackingListener

java.lang.Object
gov.usgs.util.DefaultConfigurable
gov.usgs.earthquake.aws.FileTrackingListener
All Implemented Interfaces:
NotificationListener, Configurable

public class FileTrackingListener extends DefaultConfigurable implements NotificationListener
This class is a stop-gap to store file-based tracking information in a TrackingIndex. It implements the NotificationListener interface so it can hook into startup/shutdown lifecycle calls used by ProductClient. Listeners are started before and shutdown after Receivers, and can put a tracking file in place before the receiver starts and save its state after a receiver stops.
  • Field Details

    • TRACKING_INDEX_PROPERTY

      public static final String TRACKING_INDEX_PROPERTY
      Tracking index property
      See Also:
    • TRACKING_INDEX_FILE_PROPERTY

      public static final String TRACKING_INDEX_FILE_PROPERTY
      Tracking index file property
      See Also:
    • TRACKING_FILE_PROEPRTY

      public static final String TRACKING_FILE_PROEPRTY
      Tracking file property
      See Also:
  • Constructor Details

    • FileTrackingListener

      public FileTrackingListener()
      FileTrackingListener constructor
    • FileTrackingListener

      public FileTrackingListener(File trackingFile, TrackingIndex trackingIndex)
      Initializable FileTrackingListener
      Parameters:
      trackingFile - file to be traacked
      trackingIndex - Index where contents are stored
  • Method Details

    • getTrackingFile

      public File getTrackingFile()
      Getter for trackingFile
      Returns:
      trackingFile
    • setTrackingFile

      public void setTrackingFile(File trackingFile)
      Setter for trackingFile
      Parameters:
      trackingFile - File to be tracked
    • getTrackingIndex

      public TrackingIndex getTrackingIndex()
      Getter for trackingIndex
      Returns:
      trackingIndex
    • setTrackingIndex

      public void setTrackingIndex(TrackingIndex trackingIndex)
      Setter for trackingIndex
      Parameters:
      trackingIndex - Index where contents are stored
    • configure

      public void configure(Config config) throws Exception
      Description copied from class: DefaultConfigurable
      Process configuration settings. Called before startup().
      Specified by:
      configure in interface Configurable
      Overrides:
      configure in class DefaultConfigurable
      Parameters:
      config - the Config object with settings.
      Throws:
      Exception - if configuration exceptions occur.
    • startup

      public void startup() throws Exception
      When starting, call loadTrackingFile to create/update file on disk.
      Specified by:
      startup in interface Configurable
      Overrides:
      startup in class DefaultConfigurable
      Throws:
      Exception - if exceptions occur while starting.
    • shutdown

      public void shutdown() throws Exception
      When shutting down, call storeTrackingFile to read from file on disk.
      Specified by:
      shutdown in interface Configurable
      Overrides:
      shutdown in class DefaultConfigurable
      Throws:
      Exception - if exceptions occur while starting.
    • loadTrackingFile

      public void loadTrackingFile() throws Exception
      Read trackingIndex and write trackingFile.
      Throws:
      Exception - Exception
    • storeTrackingFile

      public void storeTrackingFile() throws Exception
      Read trackingFile and write into trackingIndex.
      Throws:
      Exception - Exception
    • onNotification

      public void onNotification(NotificationEvent event) throws Exception
      Notification Listener method stubs. These are used only to gain access to lifecycle hooks above.
      Specified by:
      onNotification in interface NotificationListener
      Parameters:
      event - the event corresponding to the notification that is available.
      Throws:
      ContinuableListenerException - if redelivery should be attempted (depending on what getAttemptCount() returns).
      Exception
      See Also:
    • getMaxTries

      public int getMaxTries()
      Description copied from interface: NotificationListener
      A NotificationReceiver that generates a NotificationEvent will attempt to deliver the event up to this many times, if the listener throws an Exception while processing.
      Specified by:
      getMaxTries in interface NotificationListener
      Returns:
      A value of 1 or less means do not attempt more than once.
    • getTimeout

      public long getTimeout()
      Description copied from interface: NotificationListener
      A NotificationListener has this many milliseconds to process a notification before being interrupted.
      Specified by:
      getTimeout in interface NotificationListener
      Returns:
      number of milliseconds before timing out. A value of 0 or less means never time out.