/** * Starts watching the file system for changes to trigger a bake. * * @param config JBakeConfiguration settings */ public void start(JBakeConfiguration config) { try { FileSystemManager fsMan = VFS.getManager(); FileObject listenPath = fsMan.resolveFile(config.getContentFolder().toURI()); FileObject templateListenPath = fsMan.resolveFile(config.getTemplateFolder().toURI()); FileObject assetPath = fsMan.resolveFile(config.getAssetFolder().toURI()); logger.info("Watching for (content, template, asset) changes in [{}]", config.getSourceFolder().getPath()); DefaultFileMonitor monitor = new DefaultFileMonitor(new CustomFSChangeListener(config)); monitor.setRecursive(true); monitor.addFile(listenPath); monitor.addFile(templateListenPath); monitor.addFile(assetPath); monitor.start(); } catch (FileSystemException e) { logger.error("Problems watching filesystem changes", e); } } }
public AccumuloReloadingVFSClassLoader(String uris, FileSystemManager vfs, ReloadingClassLoader parent, long monitorDelay, boolean preDelegate) throws FileSystemException { this.uris = uris; this.parent = parent; this.preDelegate = preDelegate; ArrayList<FileObject> pathsToMonitor = new ArrayList<>(); files = AccumuloVFSClassLoader.resolve(vfs, uris, pathsToMonitor); if (preDelegate) cl = new VFSClassLoader(files, vfs, parent.getClassLoader()); else cl = new PostDelegatingVFSClassLoader(files, vfs, parent.getClassLoader()); monitor = new DefaultFileMonitor(this); monitor.setDelay(monitorDelay); monitor.setRecursive(false); for (FileObject file : pathsToMonitor) { monitor.addFile(file); log.debug("monitoring {}", file); } monitor.start(); }
e.printStackTrace(); DefaultFileMonitor fm = new DefaultFileMonitor(new FileListener() {
public class PropertyManager implements FileListener{ @Override public void fileChanged(FileChangeEvent fileChangeEvent) { //Reload here into memory } } private register(STring fileName){ String pathToPropertyFile = new ClassPathResource(fileName).getFile().getPath(); FileSystemManager fsManager = VFS.getManager(); FileObject listenFile = fsManager.resolveFile(pathToPropertyFile); DefaultFileMonitor fm = new DefaultFileMonitor(this); fm.setRecursive(true); fm.addFile(listenFile); fm.setDelay(15000); fm.start(); } }
/** * set up the monitor so that when the file system data is changed, our singleton will be refreshed */ public void init() { for (String metadataTableName : this.metadataTableNames) { DefaultFileMonitor monitor = new DefaultFileMonitor(this); try { monitor.setDelay(delay); monitor.setRecursive(false); monitor.addFile(this.bridge.getFileObject(metadataTableName)); log.debug("monitoring " + this.bridge.getFileObject(metadataTableName)); monitor.start(); this.monitors.put(metadataTableName, monitor); } catch (Exception ex) { monitor.stop(); throw new RuntimeException("Failed to create TypeMetadataProvider with " + this.bridge.getUri() + this.bridge.getDir() + "/" + this.bridge.getFileName(), ex); } } }
/** * Starts watching the file system for changes to trigger a bake. * * @param config JBakeConfiguration settings */ public void start(JBakeConfiguration config) { try { FileSystemManager fsMan = VFS.getManager(); FileObject listenPath = fsMan.resolveFile(config.getContentFolder().toURI()); FileObject templateListenPath = fsMan.resolveFile(config.getTemplateFolder().toURI()); FileObject assetPath = fsMan.resolveFile(config.getAssetFolder().toURI()); logger.info("Watching for (content, template, asset) changes in [{}]", config.getSourceFolder().getPath()); DefaultFileMonitor monitor = new DefaultFileMonitor(new CustomFSChangeListener(config)); monitor.setRecursive(true); monitor.addFile(listenPath); monitor.addFile(templateListenPath); monitor.addFile(assetPath); monitor.start(); } catch (FileSystemException e) { logger.error("Problems watching filesystem changes", e); } } }
public AccumuloReloadingVFSClassLoader(String uris, FileSystemManager vfs, ReloadingClassLoader parent, long monitorDelay, boolean preDelegate) throws FileSystemException { this.uris = uris; this.parent = parent; this.preDelegate = preDelegate; ArrayList<FileObject> pathsToMonitor = new ArrayList<>(); files = AccumuloVFSClassLoader.resolve(vfs, uris, pathsToMonitor); if (preDelegate) cl = new VFSClassLoader(files, vfs, parent.getClassLoader()); else cl = new PostDelegatingVFSClassLoader(files, vfs, parent.getClassLoader()); monitor = new DefaultFileMonitor(this); monitor.setDelay(monitorDelay); monitor.setRecursive(false); for (FileObject file : pathsToMonitor) { monitor.addFile(file); log.debug("monitoring " + file); } monitor.start(); }
public void testFileModified() throws Exception { writeToFile(testFile); final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { // Need a long delay to insure the new timestamp doesn't truncate to be the same as // the current timestammp. Java only guarantees the timestamp will be to 1 second. Thread.sleep(1000); final long value = System.currentTimeMillis(); final boolean rc = testFile.setLastModified(value); assertTrue("setLastModified succeeded", rc); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event", changeStatus == 1); } finally { monitor.stop(); } }
public void testFileModified() throws Exception { writeToFile(testFile); final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { // Need a long delay to insure the new timestamp doesn't truncate to be the same as // the current timestammp. Java only guarantees the timestamp will be to 1 second. Thread.sleep(1000); final long value = System.currentTimeMillis(); final boolean rc = testFile.setLastModified(value); assertTrue("setLastModified succeeded", rc); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event", changeStatus == 1); } finally { monitor.stop(); } }
public void testFileCreated() throws Exception { final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { writeToFile(testFile); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event", changeStatus == 3); } finally { monitor.stop(); } }
public void testFileDeleted() throws Exception { writeToFile(testFile); final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { testFile.delete(); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event", changeStatus == 2); } finally { monitor.stop(); } }
public void testFileModified() throws Exception { writeToFile(testFile); final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { // Need a long delay to insure the new timestamp doesn't truncate to be the same as // the current timestammp. Java only guarantees the timestamp will be to 1 second. Thread.sleep(1000); final long value = System.currentTimeMillis(); final boolean rc = testFile.setLastModified(value); assertTrue("setLastModified succeeded",rc); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event", changeStatus == 1); } finally { monitor.stop(); } }
public void testFileDeleted() throws Exception { writeToFile(testFile); final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { testFile.delete(); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event", changeStatus == 2); } finally { monitor.stop(); } }
public void testFileCreated() throws Exception { final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { writeToFile(testFile); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event", changeStatus == 3); } finally { monitor.stop(); } }
public void testChildFileRecreated() throws Exception { writeToFile(testFile); final FileObject fileObj = fsManager.resolveFile(testDir.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); monitor.setDelay(2000); monitor.addFile(fileObj); monitor.start(); try { changeStatus = 0; Thread.sleep(300); testFile.delete(); Thread.sleep(3000); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event " + changeStatus, changeStatus == 2); changeStatus = 0; Thread.sleep(300); writeToFile(testFile); Thread.sleep(3000); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event " + changeStatus, changeStatus == 3); } finally { monitor.stop(); } }
public void testFileCreated() throws Exception { final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { writeToFile(testFile); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event", changeStatus == 3); } finally { monitor.stop(); } }
public void testFileDeleted() throws Exception { writeToFile(testFile); final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { testFile.delete(); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event", changeStatus == 2); } finally { monitor.stop(); } }
public void testChildFileRecreated() throws Exception { writeToFile(testFile); final FileObject fileObj = fsManager.resolveFile(testDir.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); monitor.setDelay(2000); monitor.addFile(fileObj); monitor.start(); try { changeStatus = 0; Thread.sleep(300); testFile.delete(); Thread.sleep(3000); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event " + changeStatus, changeStatus == 2); changeStatus = 0; Thread.sleep(300); writeToFile(testFile); Thread.sleep(3000); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event " + changeStatus, changeStatus == 3); } finally { monitor.stop(); } }
public void testChildFileRecreated() throws Exception { writeToFile(testFile); final FileObject fileObj = fsManager.resolveFile(testDir.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); monitor.setDelay(2000); monitor.addFile(fileObj); monitor.start(); try { changeStatus = 0; Thread.sleep(300); testFile.delete(); Thread.sleep(3000); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event " + changeStatus, changeStatus == 2); changeStatus = 0; Thread.sleep(300); writeToFile(testFile); Thread.sleep(3000); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event " + changeStatus, changeStatus == 3); } finally { monitor.stop(); } }
public void testFileRecreated() throws Exception { final FileObject fileObj = fsManager.resolveFile(testFile.toURI().toURL().toString()); final DefaultFileMonitor monitor = new DefaultFileMonitor(new TestFileListener()); // TestFileListener manipulates changeStatus monitor.setDelay(100); monitor.addFile(fileObj); monitor.start(); try { writeToFile(testFile); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event " + changeStatus, changeStatus == 3); changeStatus = 0; testFile.delete(); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event " + changeStatus, changeStatus == 2); changeStatus = 0; Thread.sleep(500); monitor.addFile(fileObj); writeToFile(testFile); Thread.sleep(300); assertTrue("No event occurred", changeStatus != 0); assertTrue("Incorrect event " + changeStatus, changeStatus == 3); } finally { monitor.stop(); } }