Example usage for org.apache.commons.io.monitor FileAlterationMonitor FileAlterationMonitor

List of usage examples for org.apache.commons.io.monitor FileAlterationMonitor FileAlterationMonitor

Introduction

In this page you can find the example usage for org.apache.commons.io.monitor FileAlterationMonitor FileAlterationMonitor.

Prototype

public FileAlterationMonitor(long interval, FileAlterationObserver... observers) 

Source Link

Document

Construct a monitor with the specified interval and set of observers.

Usage

From source file:eu.optimis.ics.p2p.MyFileAlterationObserver.java

public static void main(String[] args) throws Exception {
    System.out.println("Present Working Directory is : " + System.getProperty("user.dir"));
    File directory = new File(System.getProperty("user.dir") + "/data");

    IOFileFilter files = FileFilterUtils.and(FileFilterUtils.fileFileFilter(),
            FileFilterUtils.suffixFileFilter(".txt"));

    FileAlterationObserver observer = new FileAlterationObserver(directory, files);
    observer.initialize();/*  w w w  .j  a v  a  2s  .co  m*/

    // Add Listener
    MyFileAlterationListener listener = new MyFileAlterationListener();
    observer.addListener(listener);

    FileAlterationMonitor monitor = new FileAlterationMonitor(1000, observer);
    monitor.addObserver(observer);

    monitor.start();

}

From source file:com.puzzle.module.FileMonitorUtils.java

public static boolean monitorDircetory(String scanPath, long interval, FileFileFilter f,
        FileAlterationListenerAdaptor listener) {

    if (scanPath == null) {
        return false;
    }//from w  w w  .  j  av a 2  s  .  co m
    log.info("" + scanPath);
    FileAlterationObserver observer = new FileAlterationObserver(scanPath, f);

    observer.addListener(listener);

    FileAlterationMonitor fileMonitor = new FileAlterationMonitor(interval,
            new FileAlterationObserver[] { observer });
    try {
        fileMonitor.start();
    } catch (Exception ex) {
        ex.printStackTrace();
        return false;
    }

    return true;
}

From source file:com.enonic.cms.core.plugin.deploy.HotDeployTask.java

@PostConstruct
public void start() {
    try {// w ww.  jav  a  2 s.c o m
        final JarFileFilter filter = new JarFileFilter();

        final FileAlterationObserver observer = new FileAlterationObserver(this.deployDir, filter);
        observer.addListener(new HotDeployListener(this.pluginManager));
        observer.checkAndNotify();

        this.monitor = new FileAlterationMonitor(this.scanPeriod, observer);
        this.monitor.start();

        LOG.info("Hot deploying plugins from [{}]. Scanning every [{}] ms.", this.deployDir.getAbsolutePath(),
                this.scanPeriod);
    } catch (Exception e) {
        LOG.error("cannot start monitor.", e);
    }
}

From source file:com.carolinarollergirls.scoreboard.xml.MediaXmlDocumentManager.java

protected void startManagedDirectoryMonitor() {
    FileAlterationObserver faO = new FileAlterationObserver(managedDir, DirectoryFileFilter.INSTANCE);
    faO.addListener(new MediaDirAlterationListener());
    managedDirectoryMonitor = new FileAlterationMonitor(INTERVAL, faO);
    try {//  www  .j ava  2 s  .  c o  m
        managedDirectoryMonitor.start();
    } catch (Exception e) {
        ScoreBoardManager.printMessage("MediaXmlDocumentManager for " + getMediaName()
                + " ERROR: Could not start managed directory monitor : " + e.getMessage());
    }
    Iterator<File> types = Arrays.asList(managedDir.listFiles((FileFilter) DirectoryFileFilter.INSTANCE))
            .iterator();
    while (types.hasNext())
        monitorType(types.next());
}

From source file:com.hj.blog.common.utils.SensitiveWordMonitor.java

public void monitor(String directory, int interval) {
    FileAlterationObserver fileAlterationObserver = new FileAlterationObserver(directory,
            FileFilterUtils.and(FileFilterUtils.nameFileFilter(SENSITIVE_WORD_FILE_NAME)), null);
    fileAlterationObserver.addListener(this);
    FileAlterationMonitor fileAlterationMonitor = new FileAlterationMonitor(interval, fileAlterationObserver);

    try {//from  w w  w.  j av a2  s . c  o  m
        fileAlterationMonitor.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

From source file:com.mediaworx.intellij.opencmsplugin.opencms.OpenCmsConfiguration.java

/**
 * Creates a new OpenCmsConfiguration instance, prepares the XML helper for parsing configuration files, starts
 * a FileAlterationObserver used to handle changes to configuration files.
 * @param config the project level plugin configuration data
 *///from  w ww.  j ava2s.c om
public OpenCmsConfiguration(OpenCmsPluginConfigurationData config) {
    this.config = config;

    File configurationFolder = new File(config.getWebappRoot() + CONFIGPATH);
    this.moduleConfigurationFile = new File(config.getWebappRoot() + CONFIGPATH + MODULECONFIGFILE);

    // Create an Observer for configuration changes
    FileAlterationObserver configurationChangeObserver = new FileAlterationObserver(configurationFolder);
    configurationChangeObserver.addListener(new ConfigurationAlterationListener());
    configurationChangeMonitor = new FileAlterationMonitor(5000, configurationChangeObserver);

    try {
        xmlHelper = new XmlHelper();
    } catch (Exception e) {
        LOG.warn("Exception during initialization of the module configuration: " + e);
    }
}

From source file:com.carolinarollergirls.scoreboard.xml.MediaXmlDocumentManager.java

protected void monitorType(File typeDir) {
    String type = typeDir.getName();
    synchronized (typeMonitors) {
        if (typeMonitors.containsKey(type))
            return;
        update(editor.getElement(createXPathElement(), "Type", type));
        FileAlterationObserver faO = new FileAlterationObserver(typeDir, mediaFileFilter);
        faO.addListener(new MediaTypeDirAlterationListener(type));
        FileAlterationMonitor monitor = new FileAlterationMonitor(INTERVAL, faO);
        try {/*from  ww w .j av a 2 s  .  co m*/
            monitor.start();
        } catch (Exception e) {
            ScoreBoardManager.printMessage("MediaXmlDocumentManager for " + getMediaName()
                    + " ERROR: Could not start type " + type + " monitor : " + e.getMessage());
        }
        typeMonitors.put(type, monitor);
    }
    initializeType(typeDir);
}

From source file:net.roboconf.dm.templating.internal.templates.TemplateWatcher.java

/**
 * Constructor.//from  w w  w . j a va 2 s  . c om
 * @param manager the templating manager, to which event handling is delegated.
 * @param templateDir the templates directory to watch.
 * @param pollInterval the poll interval.
 * @throws IOException if there is a problem watching the template directory.
 */
public TemplateWatcher(final TemplatingManager manager, final File templateDir, final long pollInterval) {
    this.templateDir = templateDir;

    // Register the custom helpers.
    this.handlebars.registerHelper(AllHelper.NAME, new AllHelper());
    this.handlebars.registerHelper(IsKeyHelper.NAME, new IsKeyHelper());

    // Pretty formatting
    this.handlebars.prettyPrint(true);

    // Create the observer, register this object as the event listener.
    FileFilter fileFilter = FileFilterUtils.or(
            FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter(".tpl"),
                    CanReadFileFilter.CAN_READ, new TemplateFileFilter(templateDir)),
            FileFilterUtils.and(FileFilterUtils.directoryFileFilter(), CanReadFileFilter.CAN_READ,
                    new TemplateSubDirectoryFileFilter(templateDir)));

    FileAlterationObserver observer = new FileAlterationObserver(this.templateDir, fileFilter);
    observer.addListener(this);

    // Create the monitor.
    this.monitor = new FileAlterationMonitor(pollInterval, observer);
    this.monitor.setThreadFactory(THREAD_FACTORY);

    this.manager = manager;
    this.logger.fine("Template watcher is watching " + this.templateDir + " with an interval of " + pollInterval
            + " ms.");
}

From source file:org.ow2.chameleon.core.activators.DirectoryMonitor.java

private FileAlterationMonitor createFileAlterationMonitor(File directory, long polling) {
    FileAlterationObserver observer = new FileAlterationObserver(directory, TrueFileFilter.INSTANCE);
    observer.addListener(new FileMonitor(directory));
    LOGGER.debug("Creating file alteration monitor for " + directory.getAbsolutePath()
            + " with a polling period " + "of " + polling);
    final FileAlterationMonitor monitor = new FileAlterationMonitor(polling, observer);
    monitor.setThreadFactory(new MonitorThreadFactory(directory));
    monitors.put(directory, monitor);//from   ww  w .ja  v a2 s  .c  om
    return monitor;
}

From source file:org.ow2.chameleon.fuchsia.discovery.filebased.monitor.DirectoryMonitor.java

public DirectoryMonitor(String directorypath, long polling, String classname) {

    this.directory = new File(directorypath);
    this.trackedClassName = classname;
    this.polling = polling;

    if (!directory.isDirectory()) {
        LOG.info("Monitored directory {} not existing - creating directory", directory.getAbsolutePath());
        if (!this.directory.mkdirs()) {
            throw new IllegalStateException("Monitored directory doesn't exist and cannot be created.");
        }//from w  ww. j  a v  a 2 s . c o m
    }

    // We observes all files.
    FileAlterationObserver observer = new FileAlterationObserver(directory, TrueFileFilter.INSTANCE);
    observer.checkAndNotify();
    observer.addListener(new FileMonitor());
    monitor = new FileAlterationMonitor(polling, observer);

}