Package gov.usgs.earthquake.distribution
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 Summary
FieldsModifier and TypeFieldDescriptionstatic final StringHow long to wait until checking for expired notifications/products.static final StringProperty for concurrentProductsstatic final StringDefault time to wait for cleanup.static final StringHow many products to process at a time.static final StringDefault for process duplicates.static final StringProperty for exludePathsstatic final StringFilter products based on content paths they contain.static final StringProperty for listener index filestatic final StringProperty referencing a notification index config section.static final StringWhether or not to process products more than once.Fields inherited from class gov.usgs.earthquake.product.AbstractListener
ATTEMPT_COUNT_PROPERTY, DEFAULT_ATTEMPT_COUNT, DEFAULT_RETRY_DELAY, DEFAULT_TIMEOUT, EXCLUDE_SOURCES_PROPERTY, EXCLUDE_TYPES_PROPERTY, INCLUDE_ACTUALS_PROPERTY, INCLUDE_DEVELOPMENTS_PROPERTY, INCLUDE_INTERNALS_PROPERTY, INCLUDE_SCENARIOS_PROPERTY, INCLUDE_SOURCES_PROPERTY, INCLUDE_TESTS_PROPERTY, INCLUDE_TYPES_PROPERTY, MAX_TRIES_PROPERTY, RETRY_DELAY_PROPERTY, TIMEOUT_PROPERTY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcleanup()Periodic cleanup task.voidRead the include and exclude types from config.intbooleanprotected voidonAfterProcessNotification(Notification notification) Called when this listener has successfully processed a notification.protected booleanonBeforeProcessNotification(Notification notification) Called just before this listener processes a notification.protected booleanonBeforeProcessProduct(Product product) Called after a product has been downloaded, but before onProduct is called.voidonExpiredNotification(Notification notification) Called when an expired notification is being removed from the index.voidonNotification(NotificationEvent event) Implement the NotificationListener interface.voidCalled by onNotification when a product is retrieved.voidsetCleanupInterval(Long cleanupInterval) voidsetConcurrentProducts(int concurrentProducts) voidsetNotificationIndex(NotificationIndex notificationIndex) voidsetProcessDuplicates(boolean processDuplicates) voidshutdown()Stop any processing/background threads.voidstartup()Start any processing/background threads.Methods inherited from class gov.usgs.earthquake.product.AbstractListener
accept, getExcludeSources, getExcludeTypes, getIncludeSources, getIncludeTypes, getMaxTries, getRetryDelay, getTimeout, isIncludeActuals, isIncludeDevelopments, isIncludeInternals, isIncludeScenarios, isIncludeTests, setIncludeActuals, setIncludeDevelopments, setIncludeInternals, setIncludeScenarios, setIncludeTests, setMaxTries, setRetryDelay, setTimeoutMethods inherited from class gov.usgs.util.DefaultConfigurable
getName, setNameMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface gov.usgs.util.Configurable
getName, setNameMethods inherited from interface gov.usgs.earthquake.distribution.NotificationListener
getMaxTries, getTimeout
-
Field Details
-
NOTIFICATION_INDEX_PROPERTY
Property referencing a notification index config section.- See Also:
-
INDEX_FILE_PROPERTY
Property for listener index file- See Also:
-
CLEANUP_INTERVAL_PROPERTY
How long to wait until checking for expired notifications/products.- See Also:
-
DEFAULT_CLEANUP_INTERVAL
Default time to wait for cleanup. 1h- See Also:
-
CONCURRENT_PRODUCTS_PROPERTY
Property for concurrentProducts- See Also:
-
DEFAULT_CONCURRENT_PRODUCTS
How many products to process at a time.- See Also:
-
PROCESS_DUPLICATES
Whether or not to process products more than once.- See Also:
-
DEFAULT_PROCESS_DUPLICATES
Default for process duplicates. False- See Also:
-
INCLUDE_PATHS_PROPERTY
Filter products based on content paths they contain.- See Also:
-
EXCLUDE_PATHS_PROPERTY
Property for exludePaths- See Also:
-
-
Constructor Details
-
DefaultNotificationListener
public DefaultNotificationListener()
-
-
Method Details
-
onNotification
Implement the NotificationListener interface. This method calls accept, and if accept returns true, retrieves the product and calls onProduct.- Specified by:
onNotificationin interfaceNotificationListener- 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
Called by onNotification when a product is retrieved.- Parameters:
product- a product whose notification was accepted.- Throws:
Exception- if error occurs
-
onBeforeProcessNotification
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
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
Called when this listener has successfully processed a notification.- Parameters:
notification- notification that was processed.- Throws:
Exception- if error occurs
-
onExpiredNotification
Called when an expired notification is being removed from the index.- Specified by:
onExpiredNotificationin interfaceNotificationIndexCleanup.Listener- Parameters:
notification- to be removed- Throws:
Exception- if error occurs
-
cleanup
Periodic cleanup task. Called every cleanupInterval milliseconds.- Throws:
Exception- if could not create new notificationCleanup
-
startup
Description copied from class:DefaultConfigurableStart any processing/background threads.- Specified by:
startupin interfaceConfigurable- Overrides:
startupin classDefaultConfigurable- Throws:
Exception- if exceptions occur while starting.
-
shutdown
Description copied from class:DefaultConfigurableStop any processing/background threads.- Specified by:
shutdownin interfaceConfigurable- Overrides:
shutdownin classDefaultConfigurable- Throws:
Exception- if exceptions occur while starting.
-
configure
Description copied from class:AbstractListenerRead the include and exclude types from config.- Specified by:
configurein interfaceConfigurable- Overrides:
configurein classAbstractListener- Parameters:
config- the Config object with settings.- Throws:
Exception- if configuration exceptions occur.
-
getNotificationIndex
- Returns:
- notificationIndex
-
setNotificationIndex
- Parameters:
notificationIndex- to set
-
getCleanupInterval
- Returns:
- cleanupInterval
-
setCleanupInterval
- 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
- Returns:
- the includePaths
-
getExcludePaths
- Returns:
- the excludePaths
-