类org.apache.commons.io.monitor.FileAlterationObserver源码实例Demo

下面列出了怎么用org.apache.commons.io.monitor.FileAlterationObserver的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: canal-1.1.3   文件: ApplicationConfigMonitor.java
@PostConstruct
public void init() {
    File confDir = Util.getConfDirPath();
    try {
        FileAlterationObserver observer = new FileAlterationObserver(confDir,
            FileFilterUtils.and(FileFilterUtils.fileFileFilter(),
                FileFilterUtils.prefixFileFilter("application"),
                FileFilterUtils.suffixFileFilter("yml")));
        FileListener listener = new FileListener();
        observer.addListener(listener);
        fileMonitor = new FileAlterationMonitor(3000, observer);
        fileMonitor.start();

    } catch (Exception e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码2 项目: canal-1.1.3   文件: HbaseConfigMonitor.java
public void init(HbaseAdapter hbaseAdapter, Properties envProperties) {
    this.hbaseAdapter = hbaseAdapter;
    this.envProperties = envProperties;
    File confDir = Util.getConfDirPath(adapterName);
    try {
        FileAlterationObserver observer = new FileAlterationObserver(confDir,
            FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter("yml")));
        FileListener listener = new FileListener();
        observer.addListener(listener);
        fileMonitor = new FileAlterationMonitor(3000, observer);
        fileMonitor.start();

    } catch (Exception e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码3 项目: canal-1.1.3   文件: RdbConfigMonitor.java
public void init(String key, RdbAdapter rdbAdapter, Properties envProperties) {
    this.key = key;
    this.rdbAdapter = rdbAdapter;
    this.envProperties = envProperties;
    File confDir = Util.getConfDirPath(adapterName);
    try {
        FileAlterationObserver observer = new FileAlterationObserver(confDir,
            FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter("yml")));
        FileListener listener = new FileListener();
        observer.addListener(listener);
        fileMonitor = new FileAlterationMonitor(3000, observer);
        fileMonitor.start();

    } catch (Exception e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码4 项目: canal-1.1.3   文件: ESConfigMonitor.java
public void init(ESAdapter esAdapter, Properties envProperties) {
        this.esAdapter = esAdapter;
        this.envProperties = envProperties;
        File confDir = Util.getConfDirPath(adapterName);
        try {
            FileAlterationObserver observer = new FileAlterationObserver(confDir,
                FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter("yml")));
//            文件变化监听采用的common io的类库
            FileListener listener = new FileListener();
            observer.addListener(listener);
            fileMonitor = new FileAlterationMonitor(3000, observer);
            fileMonitor.start();

        } catch (Exception e) {
            logger.error(e.getMessage(), e);
        }
    }
 
源代码5 项目: t-io   文件: DefaultHttpRequestHandler.java
/**
 * 扫描文件变化
 * @throws Exception
 */
public void monitorFileChanged() throws Exception {
	if (httpConfig.monitorFileChange) {
		if (httpConfig.getPageRoot() != null) {
			File directory = new File(httpConfig.getPageRoot());//需要扫描的文件夹路径
			// 测试采用轮询间隔 5 秒
			long interval = TimeUnit.SECONDS.toMillis(5);
			FileAlterationObserver observer = new FileAlterationObserver(directory, new FileFilter() {
				@Override
				public boolean accept(File pathname) {
					return true;
				}
			});
			//设置文件变化监听器
			observer.addListener(new FileChangeListener(this));
			FileAlterationMonitor monitor = new FileAlterationMonitor(interval, observer);
			monitor.start();
		}
	}
}
 
源代码6 项目: util4j   文件: FileMonitor.java
/**
 * 只监控文件发送变化,如果是子目录的文件改变,则目录会变,由于没有过滤目录发生变化,则目录下的文件改变不会监控到
 * @param dir
 * @throws Exception 
 */
public void check1(String dir) throws Exception
{
	File directory = new File(dir);
    // 轮询间隔 5 秒
    long interval = TimeUnit.SECONDS.toMillis(5);
    // 创建一个文件观察器用于处理文件的格式
    IOFileFilter filter=FileFilterUtils.or(FileFilterUtils.suffixFileFilter(".class"),
    		FileFilterUtils.suffixFileFilter(".jar"));
    FileAlterationObserver observer = new FileAlterationObserver(directory,filter);
    //设置文件变化监听器
    observer.addListener(new MyFileListener());
    FileAlterationMonitor monitor = new FileAlterationMonitor(interval);
    monitor.addObserver(observer);//文件观察
    monitor.start();
}
 
源代码7 项目: util4j   文件: FileMonitor.java
public void check2(String dir) throws Exception
	{
		File directory = new File(dir);
	    // 轮询间隔 5 秒
	    long interval = TimeUnit.SECONDS.toMillis(5);
	    //后缀过滤器
	    IOFileFilter filefilter=FileFilterUtils.or(FileFilterUtils.suffixFileFilter(".class"),
	    		FileFilterUtils.suffixFileFilter(".jar"));
	    //子目录的后缀
	    IOFileFilter subFilefilter=FileFilterUtils.or(FileFilterUtils.directoryFileFilter(),filefilter);
	    //根目录和子目录变化
	    IOFileFilter filter = FileFilterUtils.or(filefilter,subFilefilter);
	    FileAlterationObserver observer = new FileAlterationObserver(directory,filter);
	    //设置文件变化监听器
	    observer.addListener(new MyFileListener());
	    FileAlterationMonitor monitor = new FileAlterationMonitor(interval);
	    monitor.addObserver(observer);//文件观察
	    monitor.start();
//	    monitor.addObserver(observer);//文件观察,如果在start后面加,则会触发所有文件创建
	}
 
源代码8 项目: MercuryTrade   文件: FileMonitor.java
public void start() {
    String gamePath = Configuration.get().applicationConfiguration().get().getGamePath();

    File folder = new File(gamePath + "logs");
    this.fileHandler = new MessageFileHandler(gamePath + "logs/Client.txt");
    FileAlterationObserver observer = new FileAlterationObserver(folder);
    monitor = new FileAlterationMonitor(POLLING_INTERVAL);
    FileAlterationListener listener = new FileAlterationListenerAdaptor() {
        @Override
        public void onFileChange(File file) {
            fileHandler.parse();
        }
    };

    observer.addListener(listener);
    monitor.addObserver(observer);
    try {
        monitor.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
 
源代码9 项目: roboconf-platform   文件: TemplateWatcher.java
@Override
public void onStart( final FileAlterationObserver observer ) {

	if( this.alreadyStarted.getAndSet( true ))
		return;

	this.logger.fine("Initial provisioning of templates...");
	final Collection<File> templateFiles = FileUtils.listFiles(
			this.templateDir,

			// Find readable template files.
			FileFilterUtils.and(
					FileFilterUtils.suffixFileFilter( ".tpl" ),
					CanReadFileFilter.CAN_READ),

			// Directory filter: go through the root template directory and its direct children.
			new TemplateDirectoryFileFilter( this.templateDir ));

	process( templateFiles );
}
 
源代码10 项目: canal   文件: ApplicationConfigMonitor.java
@PostConstruct
public void init() {
    File confDir = Util.getConfDirPath();
    try {
        FileAlterationObserver observer = new FileAlterationObserver(confDir,
            FileFilterUtils.and(FileFilterUtils.fileFileFilter(),
                FileFilterUtils.prefixFileFilter("application"),
                FileFilterUtils.suffixFileFilter("yml")));
        FileListener listener = new FileListener();
        observer.addListener(listener);
        fileMonitor = new FileAlterationMonitor(3000, observer);
        fileMonitor.start();

    } catch (Exception e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码11 项目: canal   文件: HbaseConfigMonitor.java
public void init(HbaseAdapter hbaseAdapter, Properties envProperties) {
    this.hbaseAdapter = hbaseAdapter;
    this.envProperties = envProperties;
    File confDir = Util.getConfDirPath(adapterName);
    try {
        FileAlterationObserver observer = new FileAlterationObserver(confDir,
            FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter("yml")));
        FileListener listener = new FileListener();
        observer.addListener(listener);
        fileMonitor = new FileAlterationMonitor(3000, observer);
        fileMonitor.start();

    } catch (Exception e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码12 项目: canal   文件: RdbConfigMonitor.java
public void init(String key, RdbAdapter rdbAdapter, Properties envProperties) {
    this.key = key;
    this.rdbAdapter = rdbAdapter;
    this.envProperties = envProperties;
    File confDir = Util.getConfDirPath(adapterName);
    try {
        FileAlterationObserver observer = new FileAlterationObserver(confDir,
            FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter("yml")));
        FileListener listener = new FileListener();
        observer.addListener(listener);
        fileMonitor = new FileAlterationMonitor(3000, observer);
        fileMonitor.start();

    } catch (Exception e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码13 项目: canal   文件: ESConfigMonitor.java
public void init(ESAdapter esAdapter, Properties envProperties) {
    this.esAdapter = esAdapter;
    this.envProperties = envProperties;
    this.adapterName = envProperties.getProperty("es.version");
    File confDir = Util.getConfDirPath(adapterName);
    try {
        FileAlterationObserver observer = new FileAlterationObserver(confDir,
            FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter("yml")));
        FileListener listener = new FileListener();
        observer.addListener(listener);
        fileMonitor = new FileAlterationMonitor(3000, observer);
        fileMonitor.start();

    } catch (Exception e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码14 项目: fuchsia   文件: 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.");
            }
        }

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

    }
 
源代码15 项目: arcusplatform   文件: DefaultWatchService.java
@Nullable
private FileAlterationObserver find(File file) {
   File parent = file.getParentFile();
   if (parent != null && parent != file) {
      FileAlterationObserver result = find(parent);
      if (result != null) {
         return result;
      }
   }

   return watches.get(file);
}
 
源代码16 项目: util4j   文件: DefaultClassSource.java
private void checkFileChange()
{
	for (int i=0;i<observers.size();i++) {
		 FileAlterationObserver observer =observers.get(i);
		 observer.checkAndNotify();
     }
}
 
源代码17 项目: util4j   文件: DefaultClassSource.java
/**
 * 监视目录
 * @param directory
 * @param filter
 * @throws Exception 
 */
protected void monitorDir(String directory,IOFileFilter filter) throws Exception
{
	FileAlterationObserver observer=new FileAlterationObserver(directory,filter);
	observer.initialize();
	observer.addListener(fileListener);
	observers.add(observer);
}
 
源代码18 项目: util4j   文件: DefaultScriptSource.java
protected void init() throws Exception
{
	FileAlterationObserver observer=buildFileAlterationObserver(scriptDir);
	observer.addListener(new FileListener());
	FileAlterationMonitor monitor=new FileAlterationMonitor(updateInterval);
	monitor.addObserver(observer);
	monitor.start();
	scanResources();
}
 
源代码19 项目: util4j   文件: DefaultScriptSource.java
protected FileAlterationObserver buildFileAlterationObserver(String directory)
{
    //后缀过滤器
    IOFileFilter suffixFileFilter=FileFilterUtils.or(FileFilterUtils.suffixFileFilter(".class"),FileFilterUtils.suffixFileFilter(".jar"));
    //子目录变化
    IOFileFilter rootAndSubFilefilter=FileFilterUtils.or(FileFilterUtils.directoryFileFilter(),suffixFileFilter);
    return new FileAlterationObserver(directory,rootAndSubFilefilter);
}
 
源代码20 项目: joal   文件: TorrentFileWatcher.java
TorrentFileWatcher(final FileAlterationListener listener, final Path monitoredFolder, final Integer interval) {
    Preconditions.checkNotNull(listener, "listener cannot be null");
    Preconditions.checkNotNull(monitoredFolder, "monitoredFolder cannot be null");
    Preconditions.checkArgument(Files.exists(monitoredFolder), "Folder '" + monitoredFolder.toAbsolutePath() + "' does not exists.");
    Preconditions.checkNotNull(interval, "interval cannot be null");
    Preconditions.checkArgument(interval > 0, "interval cannot be less than 1");
    this.listener = listener;
    this.monitoredFolder = monitoredFolder.toFile();
    this.monitor = new FileAlterationMonitor(interval);
    this.monitor.setThreadFactory(new ThreadFactoryBuilder().setNameFormat("torrent-file-watcher-%d").build());
    this.observer = new FileAlterationObserver(this.monitoredFolder, TORRENT_FILE_FILTER);

    this.observer.addListener(this.listener);
    monitor.addObserver(this.observer);
}
 
源代码21 项目: everyone-java-blog   文件: 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 {
        fileAlterationMonitor.start();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
 
源代码22 项目: bonita-ui-designer   文件: ObserverFactoryTest.java
@Test
public void should_create_an_observer_that_notify_when_a_file_is_created() throws Exception {

    FileAlterationObserver observer = factory.create(monitoredFolder, listener);
    Path aFile = Files.write(monitoredFolder.resolve("aFile"), "coucou".getBytes());
    observer.checkAndNotify();

    assertThat(listener.getChanged()).containsExactly(aFile);
}
 
源代码23 项目: bonita-ui-designer   文件: ObserverFactoryTest.java
@Test
public void should_create_an_observer_that_notify_when_a_file_is_modified() throws Exception {
    Files.write(monitoredFolder.resolve("aFile"), "coucou".getBytes());

    FileAlterationObserver observer = factory.create(monitoredFolder, listener);
    Files.write(monitoredFolder.resolve("aFile"), "modified content".getBytes());
    observer.checkAndNotify();

    assertThat(listener.getChanged()).containsExactly(monitoredFolder.resolve("aFile"));
}
 
源代码24 项目: roboconf-platform   文件: TemplateWatcher.java
/**
 * Constructor.
 * @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." );
}
 
源代码25 项目: opoopress   文件: WatchableDirectory.java
@Override
public void initialize() {
    this.fileAlterationObserver = new FileAlterationObserver(directory, fileFilter);
    this.fileAlterationObserver.addListener(this);
    try {
        this.fileAlterationObserver.initialize();
    } catch (Exception e) {
    }
}
 
源代码26 项目: canal   文件: KuduConfigMonitor.java
public void init(KuduAdapter kuduAdapter, Properties envProperties) {
    this.kuduAdapter = kuduAdapter;
    this.envProperties = envProperties;
    File confDir = Util.getConfDirPath(adapterName);
    try {
        FileAlterationObserver observer = new FileAlterationObserver(confDir,
            FileFilterUtils.and(FileFilterUtils.fileFileFilter(), FileFilterUtils.suffixFileFilter("yml")));
        FileListener listener = new FileListener();
        observer.addListener(listener);
        fileMonitor = new FileAlterationMonitor(3000, observer);
        fileMonitor.start();
    } catch (Exception e) {
        logger.error(e.getMessage(), e);
    }
}
 
源代码27 项目: wisdom   文件: Pipeline.java
/**
 * Starts the watching.
 *
 * @return the current pipeline.
 */
public Pipeline watch() {
    // Delete all error reports before starting the watcher.
    error = new File(baseDir, "target/pipeline");
    FileUtils.deleteQuietly(error);
    mojo.getLog().debug("Creating the target/pipeline directory : " + error.mkdirs());

    // Start the watching process.
    watcher = new FileAlterationMonitor(Integer.getInteger("watch.period", 2) * 1000);
    watcher.setThreadFactory(new DefensiveThreadFactory("wisdom-pipeline-watcher", mojo));
    FileAlterationObserver srcObserver = new FileAlterationObserver(new File(baseDir, "src"),
            TrueFileFilter.INSTANCE);
    PipelineWatcher listener = new PipelineWatcher(this);
    srcObserver.addListener(listener);
    watcher.addObserver(srcObserver);

    if (pomFileMonitoring) {
        FileAlterationObserver pomObserver = new FileAlterationObserver(baseDir, new FileFilter() {
            @Override
            public boolean accept(File file) {
                return file.equals(new File(baseDir, "pom.xml"));
            }
        });
        pomObserver.addListener(listener);
        watcher.addObserver(pomObserver);
    }

    try {
        mojo.getLog().info("Start watching " + baseDir.getAbsolutePath());
        watcher.start();
    } catch (Exception e) {
        mojo.getLog().error("Cannot start the watcher", e);
    }
    return this;
}
 
源代码28 项目: arcusplatform   文件: DefaultWatchHandle.java
public DefaultWatchHandle(File file, FileAlterationObserver obs) {
   this.file = file;
   this.path = this.file.toPath();
   this.obs = obs;
}
 
源代码29 项目: arcusplatform   文件: DefaultWatchHandle.java
@Override
public void onStart(@Nullable FileAlterationObserver observer) {
}
 
源代码30 项目: arcusplatform   文件: DefaultWatchHandle.java
@Override
public void onStop(@Nullable FileAlterationObserver observer) {
}
 
 类所在包
 同包方法