Class FileWatcherResourceReloadStrategy

java.lang.Object
org.apache.camel.support.service.BaseService
org.apache.camel.support.service.ServiceSupport
org.apache.camel.support.ResourceReloadStrategySupport
org.apache.camel.support.FileWatcherResourceReloadStrategy
All Implemented Interfaces:
AutoCloseable, org.apache.camel.CamelContextAware, org.apache.camel.Service, org.apache.camel.ShutdownableService, org.apache.camel.spi.HasCamelContext, org.apache.camel.spi.ReloadStrategy, org.apache.camel.spi.ResourceReloadStrategy, org.apache.camel.StatefulService, org.apache.camel.StaticService, org.apache.camel.SuspendableService
Direct Known Subclasses:
RouteWatcherReloadStrategy

@ManagedResource(description="Managed FileWatcherResourceReloadStrategy") public class FileWatcherResourceReloadStrategy extends ResourceReloadStrategySupport
A file based ResourceReloadStrategy which watches a file folder for modified files and reload on file changes.

This implementation uses the JDK WatchService to watch for when files are created or modified. Mac OS X users should be noted the osx JDK does not support native file system changes and therefore the watch service is much slower than on Linux or Windows systems.

  • Constructor Details

    • FileWatcherResourceReloadStrategy

      public FileWatcherResourceReloadStrategy()
    • FileWatcherResourceReloadStrategy

      public FileWatcherResourceReloadStrategy(String directory)
    • FileWatcherResourceReloadStrategy

      public FileWatcherResourceReloadStrategy(String directory, boolean isRecursive)
  • Method Details

    • setFolder

      public void setFolder(String folder)
    • setRecursive

      public void setRecursive(boolean isRecursive)
    • setScheduler

      public void setScheduler(boolean scheduler)
    • setPollTimeout

      public void setPollTimeout(long pollTimeout)
      Sets the poll timeout in millis. The default value is 2000.
    • getFolder

      @ManagedAttribute(description="Folder being watched") public String getFolder()
    • isRecursive

      @ManagedAttribute(description="Whether the reload strategy watches directory recursively") public boolean isRecursive()
    • isRunning

      @ManagedAttribute(description="Whether the watcher is running") public boolean isRunning()
    • getFileFilter

      public FileFilter getFileFilter()
    • setFileFilter

      public void setFileFilter(FileFilter fileFilter)
      To use a custom filter for accepting files.
    • onReload

      public void onReload(Object source)
    • doStart

      protected void doStart() throws Exception
      Overrides:
      doStart in class org.apache.camel.support.service.BaseService
      Throws:
      Exception
    • startupMessage

      protected String startupMessage(File dir)
    • doStop

      protected void doStop() throws Exception
      Overrides:
      doStop in class org.apache.camel.support.service.BaseService
      Throws:
      Exception