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

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

Introduction

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

Prototype

public FileAlterationObserver(File directory, FileFilter fileFilter) 

Source Link

Document

Construct an observer for the specified directory and file filter.

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();/*from w w w.  ja v a 2 s . c om*/

    // 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;
    }/* w  ww.  j  a v  a2  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.prototype.utils.IndexChangeMonitorUtil.java

/**
 * The indexing monitoring thread/*from   w  w w .j a va 2 s  .  c om*/
 * 
 * @param client
 *            StompMessageClient used for routing messages to a subscribed
 *            endpoint
 * 
 * @throws Exception
 */
public static FileAlterationMonitor monitorSolr(StompMessageClient client) throws Exception {
    File directory = new File(AppConstants.INDEX_FOLDER);

    // Create an instance of a FileAlterationObserver that is given a
    // SolrIndexFileFilter.
    FileAlterationObserver observer = new FileAlterationObserver(directory, new SolrIndexFileFilter());

    // Add a IndexChangeListenerImpl that has a reference to an instance of
    // a StompMessageClient. The listener is invoked when an index change event happens, 
    // and uses StompMessageClient to send a message to a Websocket topic endpoint.
    observer.addListener(new IndexChangeListenerImpl(client));

    FileAlterationMonitor monitor = new FileAlterationMonitor(AppConstants.POLL_INTERVAL);

    // The FileAlterationObserver will observe file alterations and then
    // invoke the IndexChangeListenerImpl
    monitor.addObserver(observer);

    // Start the FileAlterationMonitor thread
    monitor.start();

    LOGGER.info("monitorSolr() The FileAlterationMonitor thread was started");

    return monitor;
}

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

@PostConstruct
public void start() {
    try {//w  w w  .j  a v 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.cloudera.gertrude.file.FileExperimentSpaceLoader.java

private FileAlterationMonitor getMonitor(long pollIntervalMillis) {
    FileAlterationObserver observer = new FileAlterationObserver(dataFile.getParentFile(), new FileFilter() {
        @Override// w  ww  .  ja  v  a 2s .  com
        public boolean accept(File file) {
            return dataFile.equals(file);
        }
    });

    observer.addListener(new FileAlterationListenerAdaptor() {
        @Override
        public void onFileChange(File file) {
            file.setLastModified(System.currentTimeMillis());
            reload(false);
        }
    });
    FileAlterationMonitor m = new FileAlterationMonitor(pollIntervalMillis);
    m.addObserver(observer);
    return m;
}

From source file:ch.ivyteam.ivy.maven.engine.deploy.FileLogForwarder.java

public synchronized void activate() throws MojoExecutionException {
    IOFileFilter logFilter = FileFilterUtils.and(FileFilterUtils.fileFileFilter(),
            FileFilterUtils.nameFileFilter(engineLog.getName()));
    FileAlterationObserver fileObserver = new FileAlterationObserver(engineLog.getParent(), logFilter);
    fileObserver.addListener(new LogModificationListener());
    monitor = new FileAlterationMonitor(100);
    monitor.addObserver(fileObserver);/*from  ww  w.  ja  v a2  s  .  co  m*/
    try {
        monitor.start();
    } catch (Exception ex) {
        throw new MojoExecutionException("Failed to activate deploy log forwarder", ex);
    }
}

From source file:ddf.security.pdp.realm.xacml.processor.PollingPolicyFinderModule.java

private void initialize(long pollingInterval) {
    LOGGER.debug("initializing polling: {}, every {}", xacmlPolicyDirectories, pollingInterval);
    monitor = new FileAlterationMonitor(pollingInterval * MULTIPLIER);

    for (String xacmlPolicyDirectory : xacmlPolicyDirectories) {
        File directoryToMonitor = new File(xacmlPolicyDirectory);
        FileAlterationObserver observer = new FileAlterationObserver(directoryToMonitor, getXmlFileFilter());
        observer.addListener(this);
        monitor.addObserver(observer);//from w  ww .j  av a2 s.  c om
        LOGGER.debug("Monitoring directory: " + directoryToMonitor);
    }
}

From source file:ddf.security.pdp.xacml.processor.PollingPolicyFinderModule.java

private void initialize(Set<String> xacmlPolicyDirectories, long pollingInterval) {
    LOGGER.debug("initializing polling: {}, every {}", xacmlPolicyDirectories, pollingInterval);
    monitor = new FileAlterationMonitor(pollingInterval * MULTIPLIER);

    Iterator<String> iterator = xacmlPolicyDirectories.iterator();

    while (iterator.hasNext()) {
        File directoryToMonitor = new File(iterator.next());
        FileAlterationObserver observer = new FileAlterationObserver(directoryToMonitor, getXmlFileFilter());
        observer.addListener(this);
        monitor.addObserver(observer);/*from www  .j a v a  2  s . com*/
        LOGGER.debug("Monitoring directory: " + directoryToMonitor);
    }
}

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 {/*from w w w.j  a v  a 2s  .co  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.amazonaws.eclipse.core.accounts.profiles.SdkCredentialsFileContentMonitor.java

public SdkCredentialsFileContentMonitor(File target, long pollingIntervalInMillis,
        FileAlterationListener listener) {

    _target = target;//w w  w  . ja  v  a  2 s.c o m

    // IllegalArgumentException is expected if target.getParentFile == null
    _observer = new FileAlterationObserver(target.getParentFile(), new FileFilter() {
        public boolean accept(File file) {
            return file.equals(_target);
        }
    });

    _monitor = new FileAlterationMonitor(pollingIntervalInMillis);
    _listener = listener;

    _observer.addListener(_listener);
    _monitor.addObserver(_observer);

    // Use daemon thread to avoid thread leakage
    _monitor.setThreadFactory(new ThreadFactory() {
        public Thread newThread(Runnable runnable) {
            Thread t = new Thread(runnable);
            t.setDaemon(true);
            t.setName("aws-credentials-file-monitor-thread");
            return t;
        }
    });
}