Class FileEventSource

    • Field Detail

      • pollTime

        protected Long pollTime
        The time in milliseconds this event source polls its data source.
      • startPoint

        protected Long startPoint
        The start point (in milliseconds) this event should start polling.
      • searchPath

        protected URL searchPath
        The path to the directory which causes an event when a new file is inserted.
      • filterName

        protected String filterName
        Regex for filtering on the file name or null if not set.
      • namePattern

        protected Pattern namePattern
        Pattern for filtering on the file name or null if not set.
      • skipDirectories

        protected boolean skipDirectories
        Whether directories should be skipped.
      • skipFiles

        protected boolean skipFiles
        Whether files should be skipped.
      • skipLocked

        protected boolean skipLocked
        Whether locked files should be skipped.
      • lockSuffix

        protected String lockSuffix
        The suffix that is used by the handler to lock files. Keep in sync with the corresponding event handler marking files by creating lock files so that the locked files will be skipped.
      • lockFileEvent

        protected boolean lockFileEvent
        Whether the lock file should also be part of the event.
      • isLockFile

        protected boolean isLockFile
        Whether the event occurs on the lock file or not.
      • eventManagerURIs

        protected final URI[] eventManagerURIs
        The event manager URIs to provide to the created events.
    • Constructor Detail

      • FileEventSource

        public FileEventSource​(org.apache.commons.configuration2.Configuration conf,
                               EventManager eventManager,
                               Registry registry)
                        throws ConfigurationException
        Default constructor for a plugin of an EventManager called by a service registry.

        Note that this constructor calls setConfiguration(Configuration, boolean); subclasses may not be fully initialised at this point.

        Parameters:
        conf - The configuration as provided from the registry.
        eventManager - The event manager this event source is a plugin of.
        registry - The registry of this plugin.
        Throws:
        ConfigurationException - If the configuration is not valid for a PollingFileSource, a ConfigurationException will be thrown.
    • Method Detail

      • setConfiguration

        protected void setConfiguration​(org.apache.commons.configuration2.Configuration conf,
                                        boolean completed)
                                 throws ConfigurationException
        Sets the internal fields according to the values of the designated configuration. Note that this method is called from the constructor and therefore this object may not be fully initialised!
        Parameters:
        conf - The configuration from which to get the configuration values.
        completed - Whether the configuration is complete after this setting and therefore the values should be verified.
        Throws:
        ConfigurationException - If there are problems with the configuration, for instance the configuration does not provide required values, a ConfigurationException may be thrown.
      • verifyConfigurationValues

        protected void verifyConfigurationValues()
                                          throws ConfigurationException
        This method verifies the configuration values that have been set yet. If a configuration value is missing or inappropriate, a ConfigurationException will be thrown.
        Throws:
        ConfigurationException - If there are problems with the configuration, for instance the configuration does not provide required values, a ConfigurationException may be thrown.
      • setConfiguration

        public void setConfiguration​(org.apache.commons.configuration2.Configuration conf,
                                     String id)
                              throws ConfigurationException
        Description copied from interface: EventSource
        Sets the (additional) configuration of this event source and its ID. The configuration is additional with respect to the configuration provided by the plugin load mechanism, if the event source is loaded as plugin.
        It is ensured that this method will be called before Runnable.run().
        Specified by:
        setConfiguration in interface EventSource<FileEvent>
        Overrides:
        setConfiguration in class AbstractEventSource<FileEvent>
        Parameters:
        conf - The configuration of this event source. This adheres (and overwrites) the configuration provided by the plugin loading, if this event source has been loaded as plugin. Whether this is allowed to be null depends on the implementation of the event source.
        id - The ID of this event source. This must not be null nor the empty string.
        Throws:
        ConfigurationException - If there are problems with the designated configuration (configuration is null although this is not allowed, a required configuration value is missing, ...), a ConfigurationException will be thrown.
      • getStartTime

        public long getStartTime()
        Description copied from interface: PollingSource
        Gets the absolute time in milliseconds since midnight, January 1, 1970 UTC when this polling source should start polling. This is used for calculating the first poll time by adding the time span defined in PollingSource.getPollTime().
        Specified by:
        getStartTime in interface PollingSource<FileEvent>
        Returns:
        The absolute time in milliseconds since midnight, January 1, 1970 UTC when this polling source should start polling.
      • init

        public void init()
        Description copied from interface: PollingSource
        Initialises this polling source. This is called once before polling is started the first time.
        Specified by:
        init in interface PollingSource<FileEvent>
      • terminate

        public void terminate()
        Description copied from interface: PollingSource
        Terminates this polling source. This is called once after polling has terminated and this source is removed.
        Note that this may be called any time, even when creating or handling an event. So take care to synchronise the implementation appropriately!
        Specified by:
        terminate in interface PollingSource<FileEvent>
      • createFileEvent

        protected FileEvent createFileEvent​(Path path)
                                     throws IOException
        Creates a FileEvent for the designated path.
        Parameters:
        path - The path for which to create a FileEvent.
        Returns:
        The FileEvent created for the designated path.
        Throws:
        IOException - If retrieving the basic file attributes of the designated path fails, an IOException will be thrown.
      • createLockFileEvent

        protected LockFileEvent createLockFileEvent​(Path path,
                                                    Path lockPath)
                                             throws IOException
        Creates a FileEvent for the designated file and its lock file.
        Parameters:
        path - The path for which to create a LockFileEvent.
        lockPath - The path for the corresponding lock file.
        Returns:
        The FileEvent created for the designated path and lock file.
        Throws:
        IOException - If retrieving the basic file attributes of the designated path fails, an IOException will be thrown.
      • nextHandler

        protected boolean nextHandler​(FileEvent event,
                                      boolean consumed,
                                      boolean concurrent)
        Description copied from class: AbstractEventSource
        This method is called right before an event is offered to the next handler. In case of concurrent handling, this method will only be called once for all concurrent handling but this will be indicated by the corresponding parameter.
        Specified by:
        nextHandler in class AbstractEventSource<FileEvent>
        Parameters:
        event - The event which is about to be handled by the next registered handler.
        consumed - Whether the event has been consumed yet.
        concurrent - Whether the next event handling is concurrent and thus the event will be offered to several event handler concurrently.
        Returns:
        Whether the event handling may continue. In case of serious problems preventing further event handling, return false here.