Class DefaultNotificationListener

java.lang.Object
gov.usgs.util.DefaultConfigurable
gov.usgs.earthquake.product.AbstractListener
gov.usgs.earthquake.distribution.DefaultNotificationListener
All Implemented Interfaces:
NotificationIndexCleanup.Listener, NotificationListener, Configurable
Direct Known Subclasses:
ContentListener, DefaultNotificationSender, EIDSOutputWedge, ExternalNotificationListener, HeartbeatListener, Indexer, RelayProductListener, ShakeMapIndexerWedge

public class DefaultNotificationListener extends AbstractListener implements NotificationListener, NotificationIndexCleanup.Listener
A base implementation of a notification listener. Implements functionality that is useful for most notification listeners. Sub classes should override the onProduct(Product) method to add custom processing. The DefaultNotificationListener extends the AbstractListener and can use any of those configuration parameters.
See Also:
  • Field Details

    • NOTIFICATION_INDEX_PROPERTY

      public static final String NOTIFICATION_INDEX_PROPERTY
      Property referencing a notification index config section.
      See Also:
    • INDEX_FILE_PROPERTY

      public static final String INDEX_FILE_PROPERTY
      Property for listener index file
      See Also:
    • CLEANUP_INTERVAL_PROPERTY

      public static final String CLEANUP_INTERVAL_PROPERTY
      How long to wait until checking for expired notifications/products.
      See Also:
    • DEFAULT_CLEANUP_INTERVAL

      public static final String DEFAULT_CLEANUP_INTERVAL
      Default time to wait for cleanup. 1h
      See Also:
    • CONCURRENT_PRODUCTS_PROPERTY

      public static final String CONCURRENT_PRODUCTS_PROPERTY
      Property for concurrentProducts
      See Also:
    • DEFAULT_CONCURRENT_PRODUCTS

      public static final String DEFAULT_CONCURRENT_PRODUCTS
      How many products to process at a time.
      See Also:
    • PROCESS_DUPLICATES

      public static final String PROCESS_DUPLICATES
      Whether or not to process products more than once.
      See Also:
    • DEFAULT_PROCESS_DUPLICATES

      public static final String DEFAULT_PROCESS_DUPLICATES
      Default for process duplicates. False
      See Also:
    • INCLUDE_PATHS_PROPERTY

      public static final String INCLUDE_PATHS_PROPERTY
      Filter products based on content paths they contain.
      See Also:
    • EXCLUDE_PATHS_PROPERTY

      public static final String EXCLUDE_PATHS_PROPERTY
      Property for exludePaths
      See Also:
  • Constructor Details

    • DefaultNotificationListener

      public DefaultNotificationListener()
  • Method Details

    • onNotification

      public void onNotification(NotificationEvent event) throws Exception
      Implement the NotificationListener interface. This method calls accept, and if accept returns true, retrieves the product and calls onProduct.
      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:
    • onProduct

      public void onProduct(Product product) throws Exception
      Called by onNotification when a product is retrieved.
      Parameters:
      product - a product whose notification was accepted.
      Throws:
      Exception - if error occurs
    • onBeforeProcessNotification

      protected boolean onBeforeProcessNotification(Notification notification) throws Exception
      Called just before this listener processes a notification.
      Parameters:
      notification - notification about to be processed.
      Returns:
      true to process the notification, false to skip
      Throws:
      Exception - if error occurs
    • onBeforeProcessProduct

      protected boolean onBeforeProcessProduct(Product product) throws Exception
      Called after a product has been downloaded, but before onProduct is called. Sometimes a listener cannot tell whether it should process a product until its contents are available. This is where the "includePaths" and "excludePaths" are evaluated.
      Parameters:
      product - product about to be processed.
      Returns:
      true to process the product, false to skip
      Throws:
      Exception - if error occurs
    • onAfterProcessNotification

      protected void onAfterProcessNotification(Notification notification) throws Exception
      Called when this listener has successfully processed a notification.
      Parameters:
      notification - notification that was processed.
      Throws:
      Exception - if error occurs
    • onExpiredNotification

      public void onExpiredNotification(Notification notification) throws Exception
      Called when an expired notification is being removed from the index.
      Specified by:
      onExpiredNotification in interface NotificationIndexCleanup.Listener
      Parameters:
      notification - to be removed
      Throws:
      Exception - if error occurs
    • cleanup

      public void cleanup() throws Exception
      Periodic cleanup task. Called every cleanupInterval milliseconds.
      Throws:
      Exception - if could not create new notificationCleanup
    • startup

      public void startup() throws Exception
      Description copied from class: DefaultConfigurable
      Start any processing/background threads.
      Specified by:
      startup in interface Configurable
      Overrides:
      startup in class DefaultConfigurable
      Throws:
      Exception - if exceptions occur while starting.
    • shutdown

      public void shutdown() throws Exception
      Description copied from class: DefaultConfigurable
      Stop any processing/background threads.
      Specified by:
      shutdown in interface Configurable
      Overrides:
      shutdown in class DefaultConfigurable
      Throws:
      Exception - if exceptions occur while starting.
    • configure

      public void configure(Config config) throws Exception
      Description copied from class: AbstractListener
      Read the include and exclude types from config.
      Specified by:
      configure in interface Configurable
      Overrides:
      configure in class AbstractListener
      Parameters:
      config - the Config object with settings.
      Throws:
      Exception - if configuration exceptions occur.
    • getNotificationIndex

      public NotificationIndex getNotificationIndex()
      Returns:
      notificationIndex
    • setNotificationIndex

      public void setNotificationIndex(NotificationIndex notificationIndex)
      Parameters:
      notificationIndex - to set
    • getCleanupInterval

      public Long getCleanupInterval()
      Returns:
      cleanupInterval
    • setCleanupInterval

      public void setCleanupInterval(Long cleanupInterval)
      Parameters:
      cleanupInterval - long to set
    • getConcurrentProducts

      public int getConcurrentProducts()
      Returns:
      concurrentProducts
    • setConcurrentProducts

      public void setConcurrentProducts(int concurrentProducts)
      Parameters:
      concurrentProducts - int to set
    • isProcessDuplicates

      public boolean isProcessDuplicates()
      Returns:
      processDuplicates
    • setProcessDuplicates

      public void setProcessDuplicates(boolean processDuplicates)
      Parameters:
      processDuplicates - boolean to set
    • getIncludePaths

      public ArrayList<String> getIncludePaths()
      Returns:
      the includePaths
    • getExcludePaths

      public ArrayList<String> getExcludePaths()
      Returns:
      the excludePaths