com.ibm.wsspi.kernel.filemonitor

Interface FileMonitor



  • public interface FileMonitor
    Components that want to monitor the file system for changes should implement the FileMonitor interface and register that implementation in the service registry.

    The properties associated with the registered service specify what resources are monitored and with what frequency. Valid service properties are listed as constants below with descriptive javadoc.

    • Field Detail

      • MONITOR_FILES

        static final java.lang.String MONITOR_FILES

        Service property

        The value should be a Collection, indicating what paths should be monitored. Elements of the collection will only be monitored while they do not exist, or exist as files.
        See Also:
        Constant Field Values
      • MONITOR_DIRECTORIES

        static final java.lang.String MONITOR_DIRECTORIES

        Service property

        The value should be a Collection, indicating what paths should be monitored. Elements of the collection will only be monitored while they do not exist, or exist as directories.
        See Also:
        Constant Field Values
      • MONITOR_INTERVAL

        static final java.lang.String MONITOR_INTERVAL

        Service property

        Poll/Scanning interval as a long with a time unit suffix:
        • ms - milliseconds
        • s - seconds
        • m - minutes
        • h - hours
        e.g. 2ms or 5s. This is not a compound interval (e.g. 5s2ms will not work)
        See Also:
        Constant Field Values
      • MONITOR_RECURSE

        static final java.lang.String MONITOR_RECURSE

        Service property

        The value of this property should be a boolean: if true, a the monitor will receive notifications for individual files in the directory tree that have changed. If false, the monitor will only receive notification for the immediate children of the specified directory.

        For example, given monitored directory A:

        • In all cases, the monitor will be notified if A/file is created, changed, or deleted.
        • When working with A/directory, if
          • monitor.recurse is true, the monitor will be notified when A/directory/file has been created, changed, or deleted.
          • monitor.recurse is false, the monitor will only be notified when A/directory is added or removed.
        See Also:
        Constant Field Values
      • MONITOR_INCLUDE_SELF

        static final java.lang.String MONITOR_INCLUDE_SELF

        Service property

        The value of this property should be a boolean: If true, the monitor will additionally notify for the creation/deletion of any directories being monitored. If false, the monitor will report only on any files monitored, and the content of any monitored directories.

        For example, given monitored directory A:

        • In all cases, the monitor will be notified if A/file is created, changed, or deleted.
        • When working with A, if
          • monitor.includeself is true, the monitor will be notified when A has been created, changed, or deleted.
          • monitor.includeself is false, the monitor will not be notified if A is created, changed, or deleted.
        See Also:
        Constant Field Values
      • MONITOR_FILTER

        static final java.lang.String MONITOR_FILTER

        Service property

        The value associated with this property is a collection, where each string is either a regex match of names, or a simple string: "files" for only watching files, and "directories" for only monitoring directories.

        This applies only to monitoring directories. Given monitored directory A:

        • "\\.xml" will monitor A/*.xml,
        • "directories" will only look for subdirectories of A
        • "files" will only look for files contained in A
        See Also:
        Constant Field Values
      • MONITOR_FILTER_DIRECTORIES_ONLY

        static final java.lang.String MONITOR_FILTER_DIRECTORIES_ONLY

        Property value

        Special filter string limiting the monitor to directories only.
        See Also:
        MONITOR_FILTER, Constant Field Values
      • MONITOR_FILTER_FILES_ONLY

        static final java.lang.String MONITOR_FILTER_FILES_ONLY

        Property value

        Special filter string limiting the monitor to files only
        See Also:
        MONITOR_FILTER, Constant Field Values
      • MONITOR_TYPE

        static final java.lang.String MONITOR_TYPE

        Service property

        The value of this property determines how the file monitoring is to be performed. Acceptable values are as follows:
        • "timed" will monitor the files and/or directories at regular intervals
        • "external" will defer monitoring to an external agent
        ("timed" is the default setting.)
        See Also:
        Constant Field Values
      • MONITOR_TYPE_TIMED

        static final java.lang.String MONITOR_TYPE_TIMED

        Property value

        Monitor at regular intervals.
        See Also:
        Constant Field Values
      • MONITOR_TYPE_EXTERNAL

        static final java.lang.String MONITOR_TYPE_EXTERNAL

        Property value

        Defer monitoring to an external agent.
        See Also:
        Constant Field Values
    • Method Detail

      • onBaseline

        void onBaseline(java.util.Collection<java.io.File> baseline)
        Called with the result of a scan of specified resources. Only resources that existed at the time of the scan will be included.
        Parameters:
        baseline - Collection of files which match the specified filters that were discovered during the scan.
        See Also:
        #MONITOR_BASELINE
      • onChange

        void onChange(java.util.Collection<java.io.File> createdFiles,
                      java.util.Collection<java.io.File> modifiedFiles,
                      java.util.Collection<java.io.File> deletedFiles)
        Called by the monitor service when a scheduled scan completes with changes (indicated by the presence of files in the corresponding collection).
        Parameters:
        createdFiles - A collection of files that were created since the last scan.
        modifiedFiles - A collection of files that were modified since the last scan.
        deletedFiles - A collection of files that were deleted since the last scan.