List of usage examples for org.apache.commons.jci.monitor FilesystemAlterationMonitor FilesystemAlterationMonitor
public FilesystemAlterationMonitor()
From source file:dk.cubing.liveresults.uploader.engine.ResultsEngine.java
public ResultsEngine() { config = new Configuration(this); fam = new FilesystemAlterationMonitor(); factory = new JaxWsProxyFactoryBean(); parser = new ResultsFileParser(); }
From source file:nz.net.catalyst.mobile.dds.WurflCapabilityServiceImpl.java
/** * create listeners and monitors for wurfl and its patches *///from w w w .ja v a 2 s . co m protected synchronized void startWatchingFiles() { famList.clear(); FilesystemAlterationMonitor fam = new FilesystemAlterationMonitor(); FileChangeListener wurflListener = new WurflFileListener(); fam.addListener(wurflFile, wurflListener); fam.start(); famList.add(fam); logger.debug("watching " + wurflFile.getAbsolutePath()); for (File patchFile : wurflPatchFiles) { fam = new FilesystemAlterationMonitor(); FileChangeListener wurflPatchListener = new WurflFileListener(); fam.addListener(patchFile, wurflPatchListener); fam.start(); famList.add(fam); logger.debug("watching " + patchFile.getAbsolutePath()); } }
From source file:org.apache.commons.jci.examples.serverpages.ServerPageServlet.java
public void init() throws ServletException { super.init(); final File serverpagesDir = new File( getServletContext().getRealPath("/") + getInitParameter("serverpagesDir")); log("Monitoring serverpages in " + serverpagesDir); final TransactionalResourceStore store = new TransactionalResourceStore(new MemoryResourceStore()) { private Set<String> newClasses; private Map<String, HttpServlet> newServletsByClassname; public void onStart() { super.onStart(); newClasses = new HashSet<String>(); newServletsByClassname = new HashMap<String, HttpServlet>(servletsByClassname); }/*from w ww. j av a2 s.com*/ public void onStop() { super.onStop(); boolean reload = false; for (String clazzName : newClasses) { try { final Class clazz = classloader.loadClass(clazzName); if (!HttpServlet.class.isAssignableFrom(clazz)) { log(clazzName + " is not a servlet"); continue; } // create new instance of jsp page final HttpServlet servlet = (HttpServlet) clazz.newInstance(); newServletsByClassname.put(clazzName, servlet); reload = true; } catch (Exception e) { log("", e); } } if (reload) { log("Activating new map of servlets " + newServletsByClassname); servletsByClassname = newServletsByClassname; } } public void write(String pResourceName, byte[] pResourceData) { super.write(pResourceName, pResourceData); if (pResourceName.endsWith(".class")) { // compiler writes a new class, remember the classes to reload newClasses.add(pResourceName.replace('/', '.').substring(0, pResourceName.length() - ".class".length())); } } }; // listener that generates the java code from the jsp page and provides that to the compiler jspListener = new CompilingListener(new JavaCompilerFactory().createCompiler("eclipse"), store) { private final JspGenerator transformer = new JspGenerator(); private final Map<String, byte[]> sources = new HashMap<String, byte[]>(); private final Set<String> resourceToCompile = new HashSet<String>(); public void onStart(FilesystemAlterationObserver pObserver) { super.onStart(pObserver); resourceToCompile.clear(); } public void onFileChange(File pFile) { if (pFile.getName().endsWith(".jsp")) { final String resourceName = ConversionUtils .stripExtension(getSourceNameFromFile(observer, pFile)) + ".java"; log("Updating " + resourceName); sources.put(resourceName, transformer.generateJavaSource(resourceName, pFile)); resourceToCompile.add(resourceName); } super.onFileChange(pFile); } public void onFileCreate(File pFile) { if (pFile.getName().endsWith(".jsp")) { final String resourceName = ConversionUtils .stripExtension(getSourceNameFromFile(observer, pFile)) + ".java"; log("Creating " + resourceName); sources.put(resourceName, transformer.generateJavaSource(resourceName, pFile)); resourceToCompile.add(resourceName); } super.onFileCreate(pFile); } public String[] getResourcesToCompile(FilesystemAlterationObserver pObserver) { // we only want to compile the jsp pages final String[] resourceNames = new String[resourceToCompile.size()]; resourceToCompile.toArray(resourceNames); return resourceNames; } public ResourceReader getReader(final FilesystemAlterationObserver pObserver) { return new JspReader(sources, super.getReader(pObserver)); } }; jspListener.addReloadNotificationListener(classloader); fam = new FilesystemAlterationMonitor(); fam.addListener(serverpagesDir, jspListener); fam.start(); }
From source file:org.apache.helix.filestore.FileSystemWatchService.java
public FileSystemWatchService(String root, long startTime, FileChangeWatcher... watchers) { File file = new File(root); System.out.println("Setting up watch service for path:" + file.getAbsolutePath()); fam = new FilesystemAlterationMonitor(); listener = new MyFilesystemAlterationListener(root, startTime, watchers); fam.addListener(file, listener);/* ww w . j a va 2s . c o m*/ }
From source file:org.apache.struts2.spring.ClassReloadingXMLWebApplicationContext.java
public void setupReloading(String[] watchList, String acceptClasses, ServletContext servletContext, boolean reloadConfig) { this.reloadConfig = reloadConfig; classLoader = new ReloadingClassLoader(ClassReloadingXMLWebApplicationContext.class.getClassLoader()); //make a list of accepted classes if (StringUtils.isNotBlank(acceptClasses)) { String[] splitted = acceptClasses.split(","); Set<Pattern> patterns = new HashSet<Pattern>(splitted.length); for (String pattern : splitted) patterns.add(Pattern.compile(pattern)); classLoader.setAccepClasses(patterns); }/*from ww w . ja va 2s.c om*/ fam = new FilesystemAlterationMonitor(); //setup stores for (String watch : watchList) { File file = new File(watch); //make it absolute, if it is a relative path if (!file.isAbsolute()) file = new File(servletContext.getRealPath(watch)); if (watch.endsWith(".jar")) { classLoader.addResourceStore(new JarResourceStore(file)); //register with the fam fam.addListener(file, this); if (LOG.isDebugEnabled()) { LOG.debug("Watching [#0] for changes", file.getAbsolutePath()); } } else { //get all subdirs List<File> dirs = new ArrayList<File>(); getAllPaths(file, dirs); classLoader.addResourceStore(new FileResourceStore(file)); for (File dir : dirs) { //register with the fam fam.addListener(dir, this); if (LOG.isDebugEnabled()) { LOG.debug("Watching [#0] for changes", dir.getAbsolutePath()); } } } } //setup the bean factory beanFactory = new ClassReloadingBeanFactory(); beanFactory.setInstantiationStrategy(new ClassReloadingInstantiationStrategy()); beanFactory.setBeanClassLoader(classLoader); //start watch thread fam.start(); }
From source file:org.openecard.addon.FileRegistry.java
private void startFileMonitor(String addonPath) throws WSMarshallerException { File f = new File(addonPath); logger.debug("Starting file alteration monitor on path: {}", f.getPath()); FilesystemAlterationMonitor fam = new FilesystemAlterationMonitor(); fam.addListener(f, new PluginDirectoryAlterationListener(this)); fam.start();//from w ww . j a v a 2 s .c o m }
From source file:org.openecomp.sdc.common.impl.ExternalConfiguration.java
public static void listenForChanges() { String watchingDir = configDir + File.separator + appName; if (enableReconfigure) { if (fam == null) { fam = new FilesystemAlterationMonitor(); fam.setInterval(1000);/*w w w. j a va2 s . c om*/ fam.addListener(new File(watchingDir), changeListener); fam.start(); } } }