/** * Use this method for stopping the thread * * @param terminated */ public void setTerminate(boolean terminated) { resource.removeListener(this); synchronized (terminateLock) { this.terminate = terminated; // will ignore any last minuet events } }
@Override public void removeListener(ResourceListener listener) { delegate.removeListener(listener); }
@Override public void changed(ResourceNotification notify) { styleCache.remove(info); styleResource.removeListener(this); } });
@Override public void changed(ResourceNotification notify) { sldCache.remove(info); styleResource.removeListener(this); } });
@Test public void fileEvents() throws Exception { File fileD = Paths.toFile(store.baseDirectory, "DirC/FileD"); AwaitResourceListener listener = new AwaitResourceListener(); store.get("DirC/FileD").addListener(listener); store.watcher.schedule(30, TimeUnit.MILLISECONDS); long before = fileD.lastModified(); long after = touch(fileD); assertTrue("touched", after > before); ResourceNotification n = listener.await(5, TimeUnit.SECONDS); assertNotNull("detected event", n); assertEquals("file modified", Kind.ENTRY_MODIFY, n.getKind()); assertTrue("Resource only", n.events().isEmpty()); listener.reset(); fileD.delete(); n = listener.await(5, TimeUnit.SECONDS); assertEquals("file removed", Kind.ENTRY_DELETE, n.getKind()); listener.reset(); fileD.createNewFile(); n = listener.await(5, TimeUnit.SECONDS); assertEquals("file created", Kind.ENTRY_CREATE, n.getKind()); store.get("DirC/FileD").removeListener(listener); } /**
assertEquals("FileA", e.getPath()); store.get(Paths.BASE).removeListener(listener);
@Override public void setObject(Boolean object) { if (object != null && object.booleanValue()) { expanded.add(resource.path()); if (resource.parent() != null) { resource.parent().addListener(this); } } else { expanded.remove(resource.path()); if (resource.parent() != null) { resource.parent().removeListener(this); } } }
@Test public void fileEvents() throws Exception { File fileD = Paths.toFile(store.baseDirectory, "DirC/FileD"); AwaitResourceListener listener = new AwaitResourceListener(); store.get("DirC/FileD").addListener(listener); store.watcher.schedule(30, TimeUnit.MILLISECONDS); long before = fileD.lastModified(); long after = touch(fileD); assertTrue("touched", after > before); ResourceNotification n = listener.await(5, TimeUnit.SECONDS); assertNotNull("detected event", n); assertEquals("file modified", Kind.ENTRY_MODIFY, n.getKind()); assertTrue("Resource only", n.events().isEmpty()); listener.reset(); fileD.delete(); n = listener.await(5, TimeUnit.SECONDS); assertEquals("file removed", Kind.ENTRY_DELETE, n.getKind()); listener.reset(); fileD.createNewFile(); n = listener.await(5, TimeUnit.SECONDS); assertEquals("file created", Kind.ENTRY_CREATE, n.getKind()); store.get("DirC/FileD").removeListener(listener); } /**
assertEquals("FileA", e.getPath()); store.get(Paths.BASE).removeListener(listener);
fileD.removeListener(listener);
store.get("DirC").removeListener(listener); store.get(Paths.BASE).removeListener(listener);