List of usage examples for org.apache.commons.io.monitor FileAlterationObserver initialize
public void initialize() throws Exception
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(); // Add Listener MyFileAlterationListener listener = new MyFileAlterationListener(); observer.addListener(listener);//from ww w. j a va2 s . co m FileAlterationMonitor monitor = new FileAlterationMonitor(1000, observer); monitor.addObserver(observer); monitor.start(); }
From source file:de.adorsys.forge.plugins.ct.ContinuousTestingPlugin.java
@Command(help = "listens to file-changes in project-root/src and triggers mvn test") public void run(final PipeOut out) { String sourceDir = project.getProjectRoot().getFullyQualifiedName() + "/src"; if (!new File(sourceDir).exists()) { ShellMessages.error(out, "SourceDirectory " + sourceDir + " is missing!"); }/* w w w .ja v a 2 s.c o m*/ final FileAlterationObserver observer = new FileAlterationObserver(sourceDir); observer.addListener(listener); try { observer.initialize(); } catch (Exception ex) { handleError(out, ex); } ShellMessages.info(out, "Monitoring " + sourceDir); ShellMessages.info(out, "Cancel with CTRL+C"); new Thread(new Runnable() { @Override public void run() { while (!shouldExit) { observer.checkAndNotify(); try { Thread.sleep(1000); } catch (InterruptedException ex) { handleError(out, ex); } } } }).start(); if (shell.scan() == 10) { shouldExit = true; } }
From source file:info.fetter.logstashforwarder.FileWatcher.java
private void initializeWatchMap(File directory, IOFileFilter fileFilter, Event fields) throws Exception { if (!directory.isDirectory()) { logger.warn("Directory " + directory + " does not exist"); return;//w w w . j av a2 s.co m } FileAlterationObserver observer = new FileAlterationObserver(directory, fileFilter); FileModificationListener listener = new FileModificationListener(this, fields); observer.addListener(listener); observerList.add(observer); observer.initialize(); for (File file : FileUtils.listFiles(directory, fileFilter, null)) { addFileToWatchMap(newWatchMap, file, fields); } }
From source file:it.geosolutions.filesystemmonitor.neutral.monitorpolling.GBFileSystemMonitorJob.java
/** * Try to build the Observer using informations stored into the JobDataMap * /* w ww. j a v a 2 s . c o m*/ * @note this method is not sync * @param jdm * @return * @throws JobExecutionException */ private static FileAlterationObserver buildObserver(JobDataMap jdm) throws JobExecutionException { FileAlterationObserver observer = null; final GBEventNotifier notifier; // first time build try { final File directory = new File(jdm.getString(FileSystemMonitorSPI.SOURCE_KEY)); observer = new FileAlterationObserver(directory, new WildcardFileFilter(jdm.getString(FileSystemMonitorSPI.WILDCARD_KEY))); notifier = (GBEventNotifier) jdm.get(EVENT_NOTIFIER_KEY); final FileAlterationListener fal = new GBFileAlterationListener(notifier); observer.addListener(fal); } catch (ClassCastException cce) { // ClassCastException - if the identified object is not a String. throw exceptionPolicy(ExcPolicy.IMMEDIATELY, "The identified object is not a String.\n" + cce.getLocalizedMessage(), cce); } catch (NullPointerException npe) { // NullPointerException - If the pathname argument is null throw exceptionPolicy(ExcPolicy.IMMEDIATELY, "The pathname argument is null.\n" + npe.getLocalizedMessage(), npe); } catch (IllegalArgumentException iae) { // IllegalArgumentException - if the pattern is null throw exceptionPolicy(ExcPolicy.IMMEDIATELY, "The pattern is null.\n" + iae.getLocalizedMessage(), iae); } catch (Throwable e) { throw exceptionPolicy(ExcPolicy.IMMEDIATELY, "Probably the consumer cannot start.\n" + e.getLocalizedMessage(), e); } try { observer.initialize(); } catch (Throwable t) { throw exceptionPolicy(ExcPolicy.IMMEDIATELY, "An error occurs.\n" + t.getLocalizedMessage(), t); } jdm.put(OBSERVER_KEY, observer); return observer; }
From source file:org.cytoscape.app.internal.manager.AppManager.java
private void setupAlterationMonitor() { // Set up the FileAlterationMonitor to install/uninstall apps when apps are moved in/out of the // installed/uninstalled app directories fileAlterationMonitor = new FileAlterationMonitor(2000L); File installedAppsPath = new File(getInstalledAppsPath()); FileAlterationObserver installAlterationObserver = new FileAlterationObserver(installedAppsPath, new SingleLevelFileFilter(installedAppsPath), IOCase.SYSTEM); final AppManager appManager = this; // Listen for events on the "installed apps" folder installAlterationObserver.addListener(new FileAlterationListenerAdaptor() { @Override// w ww . java 2 s . c o m public void onFileCreate(File file) { App parsedApp = null; try { parsedApp = appParser.parseApp(file); } catch (AppParsingException e) { return; } App registeredApp = null; for (App app : apps) { if (parsedApp.heuristicEquals(app)) { registeredApp = app; // Delete old file if it was still there File oldFile = registeredApp.getAppFile(); if (oldFile.exists() && !registeredApp.getAppFile().equals(parsedApp.getAppFile())) { FileUtils.deleteQuietly(oldFile); } // Update file reference to reflect file having been moved registeredApp.setAppFile(file); } } try { if (registeredApp == null) { apps.add(parsedApp); parsedApp.install(appManager); } else { registeredApp.install(appManager); } } catch (AppInstallException e) { logger.warn(e.getLocalizedMessage()); } fireAppsChangedEvent(); } @Override public void onFileChange(File file) { // Can treat file replacements/changes as old file deleted, new file added this.onFileDelete(file); this.onFileCreate(file); fireAppsChangedEvent(); } @Override public void onFileDelete(File file) { // System.out.println(file + " on delete"); DebugHelper.print(this + " installObserverDelete", file.getAbsolutePath() + " deleted."); for (App app : apps) { if (app.getAppFile().equals(file)) { app.setStatus(AppStatus.FILE_MOVED); } } fireAppsChangedEvent(); } }); FileAlterationObserver disableAlterationObserver = new FileAlterationObserver(getDisabledAppsPath(), new SingleLevelFileFilter(new File(getDisabledAppsPath())), IOCase.SYSTEM); // Listen for events on the "disabled apps" folder disableAlterationObserver.addListener(new FileAlterationListenerAdaptor() { @Override public void onFileCreate(File file) { App parsedApp = null; try { parsedApp = appParser.parseApp(file); } catch (AppParsingException e) { logger.warn(e.getLocalizedMessage()); return; } DebugHelper.print(this + " disableObserver Create", parsedApp.getAppName() + " parsed"); App registeredApp = null; for (App app : apps) { if (parsedApp.heuristicEquals(app)) { registeredApp = app; // Delete old file if it was still there // TODO: Possible rename from filename-2 to filename? File oldFile = registeredApp.getAppFile(); if (oldFile.exists() && !registeredApp.getAppFile().equals(parsedApp.getAppFile())) { DebugHelper.print(this + " disableObserverCreate", registeredApp.getAppName() + " moved from " + registeredApp.getAppFile().getAbsolutePath() + " to " + parsedApp.getAppFile().getAbsolutePath() + ". deleting: " + oldFile); FileUtils.deleteQuietly(oldFile); } // Update file reference to reflect file having been moved registeredApp.setAppFile(file); } } try { if (registeredApp == null) { apps.add(parsedApp); parsedApp.disable(appManager); } else { registeredApp.disable(appManager); } fireAppsChangedEvent(); } catch (AppDisableException e) { } // System.out.println(file + " on create"); } @Override public void onFileChange(File file) { // Can treat file replacements/changes as old file deleted, new file added this.onFileDelete(file); this.onFileCreate(file); fireAppsChangedEvent(); } @Override public void onFileDelete(File file) { // System.out.println(file + " on delete"); DebugHelper.print(this + " disableObserverDelete", file.getAbsolutePath() + " deleted."); for (App app : apps) { // System.out.println("checking " + app.getAppFile().getAbsolutePath()); if (app.getAppFile().equals(file)) { // System.out.println(app + " moved"); app.setStatus(AppStatus.FILE_MOVED); } } fireAppsChangedEvent(); } }); FileAlterationObserver uninstallAlterationObserver = new FileAlterationObserver(getUninstalledAppsPath(), new SingleLevelFileFilter(new File(getUninstalledAppsPath())), IOCase.SYSTEM); // Listen for events on the "uninstalled apps" folder uninstallAlterationObserver.addListener(new FileAlterationListenerAdaptor() { @Override public void onFileCreate(File file) { App parsedApp = null; try { parsedApp = appParser.parseApp(file); } catch (AppParsingException e) { return; } DebugHelper.print(this + " uninstallObserverCreate", parsedApp.getAppName() + " parsed"); App registeredApp = null; for (App app : apps) { if (parsedApp.heuristicEquals(app)) { registeredApp = app; // Delete old file if it was still there // TODO: Possible rename from filename-2 to filename? File oldFile = registeredApp.getAppFile(); if (oldFile.exists() && !registeredApp.getAppFile().equals(parsedApp.getAppFile())) { DebugHelper.print(this + " uninstallObserverCreate", registeredApp.getAppName() + " moved from " + registeredApp.getAppFile().getAbsolutePath() + " to " + parsedApp.getAppFile().getAbsolutePath() + ". deleting: " + oldFile); FileUtils.deleteQuietly(oldFile); } // Update file reference to reflect file having been moved registeredApp.setAppFile(file); } } try { // Checks if the app file moved here belonged to a known app, if so, uninstall it. if (registeredApp == null) { apps.add(parsedApp); parsedApp.uninstall(appManager); } else { registeredApp.uninstall(appManager); } fireAppsChangedEvent(); } catch (AppUninstallException e) { } // System.out.println(file + " on create"); } @Override public void onFileChange(File file) { // Can treat file replacements/changes as old file deleted, new file added this.onFileDelete(file); this.onFileCreate(file); fireAppsChangedEvent(); } @Override public void onFileDelete(File file) { // System.out.println(file + " on delete"); DebugHelper.print(this + " uninstallObserverDelete", file.getAbsolutePath() + " deleted."); for (App app : apps) { // System.out.println("checking " + app.getAppFile().getAbsolutePath()); if (app.getAppFile().equals(file)) { // System.out.println(app + " moved"); app.setStatus(AppStatus.FILE_MOVED); } } fireAppsChangedEvent(); } }); // setupKarafDeployMonitor(fileAlterationMonitor); try { installAlterationObserver.initialize(); fileAlterationMonitor.addObserver(installAlterationObserver); disableAlterationObserver.initialize(); fileAlterationMonitor.addObserver(disableAlterationObserver); uninstallAlterationObserver.initialize(); fileAlterationMonitor.addObserver(uninstallAlterationObserver); fileAlterationMonitor.start(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
From source file:org.jboss.forge.addon.resource.monitor.FileMonitor.java
public ResourceMonitor registerMonitor(final ResourceFactory resourceFactory, final FileResource<?> resource, final ResourceFilter resourceFilter) { final DirectoryResource dirResource; IOFileFilter filter;/* w ww .j av a 2s. c o m*/ if (resource instanceof DirectoryResource) { dirResource = (DirectoryResource) resource; filter = null; } else { dirResource = resource.getParent(); filter = FileFilterUtils.nameFileFilter(resource.getName()); } if (resourceFilter != null) { FileFilterResourceAdapter adapter = new FileFilterResourceAdapter(resourceFactory, resourceFilter); if (filter == null) { filter = adapter; } else { filter = FileFilterUtils.and(filter, adapter); } } File directory = dirResource.getUnderlyingResourceObject(); FileAlterationObserver observer = new FileAlterationObserver(directory, filter); try { observer.initialize(); } catch (Exception e) { log.log(Level.SEVERE, "Error while initializing File observer", e); } alterationMonitor.addObserver(observer); return new ResourceMonitorImpl(dirResource, resourceFactory, alterationMonitor, observer); }
From source file:org.openbase.bco.manager.device.binding.openhab.util.configgen.OpenHABConfigGenerator.java
public OpenHABConfigGenerator() throws InstantiationException, InterruptedException { try {/*from w ww. j av a2 s . com*/ Registries.waitForData(); this.itemConfigGenerator = new OpenHABItemConfigGenerator(); this.recurrenceGenerationFilter = new RecurrenceEventFilter(TIMEOUT) { @Override public void relay() throws Exception { internalGenerate(); } }; FileAlterationObserver fileAlterationObserver = new FileAlterationObserver( JPService.getProperty(JPOpenHABItemConfig.class).getValue().getParent()); fileAlterationObserver.initialize(); fileAlterationObserver.addListener(new FileAlterationListenerAdaptor() { @Override public void onFileDelete(File file) { logger.warn("Detect config file deletion!"); try { generate(); } catch (CouldNotPerformException ex) { ExceptionPrinter.printHistory("Coult not regenerate config file after deletion!", ex, logger); } } }); final FileAlterationMonitor monitor = new FileAlterationMonitor(10000); monitor.addObserver(fileAlterationObserver); monitor.start(); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { @Override public void run() { shutdown(); try { monitor.stop(); } catch (Exception ex) { ExceptionPrinter.printHistory(ex, logger); } } })); } catch (InterruptedException ex) { throw ex; } catch (Exception ex) { throw new InstantiationException(this, ex); } }