You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by pd...@apache.org on 2014/11/07 22:44:47 UTC
svn commit: r1637461 - in
/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep:
Activator.java PathDependency.java PathTracker.java
Author: pderop
Date: Fri Nov 7 21:44:47 2014
New Revision: 1637461
URL: http://svn.apache.org/r1637461
Log:
fixed bugs in this sample
Modified:
felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/Activator.java
felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathDependency.java
felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathTracker.java
Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/Activator.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/Activator.java?rev=1637461&r1=1637460&r2=1637461&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/Activator.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/Activator.java Fri Nov 7 21:44:47 2014
@@ -11,6 +11,6 @@ public class Activator extends Dependenc
m.add(createComponent()
.setImplementation(PathTracker.class)
.add(createServiceDependency().setService(LogService.class).setRequired(true))
- .add(new PathDependency("/tmp").setCallbacks("add", "change", "remove")));
+ .add(new PathDependency("/tmp").setCallbacks("add", "remove")));
}
}
Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathDependency.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathDependency.java?rev=1637461&r1=1637460&r2=1637461&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathDependency.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathDependency.java Fri Nov 7 21:44:47 2014
@@ -4,6 +4,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchEvent;
+import java.nio.file.WatchEvent.Kind;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;
import java.util.Dictionary;
@@ -12,6 +13,7 @@ import java.util.List;
import org.apache.felix.dm.context.AbstractDependency;
import org.apache.felix.dm.context.DependencyContext;
import org.apache.felix.dm.context.Event;
+import org.osgi.service.log.LogService;
public class PathDependency extends AbstractDependency<PathDependency> implements Runnable {
private final String m_path;
@@ -104,15 +106,28 @@ public class PathDependency extends Abst
try {
WatchService watcher = myDir.getFileSystem().newWatchService();
- myDir.register(watcher, StandardWatchEventKinds.ENTRY_MODIFY);
- WatchKey watckKey = watcher.take();
- List<WatchEvent<?>> events = watckKey.pollEvents();
-
- for (WatchEvent event : events) {
- add(new PathEvent(event.context().toString()));
+ myDir.register(watcher, StandardWatchEventKinds.ENTRY_CREATE, StandardWatchEventKinds.ENTRY_DELETE);
+ while (! Thread.currentThread().isInterrupted()) {
+ WatchKey watckKey = watcher.take();
+
+ List<WatchEvent<?>> events = watckKey.pollEvents();
+
+ for (WatchEvent event : events) {
+ final Kind<?> kind = event.kind();
+ if (StandardWatchEventKinds.OVERFLOW == kind) {
+ continue;
+ }
+ if (StandardWatchEventKinds.ENTRY_CREATE == kind) {
+ add(new PathEvent(event.context().toString()));
+ } else if (StandardWatchEventKinds.ENTRY_DELETE == kind) {
+ remove(new PathEvent(event.context().toString()));
+ }
+ }
+
+ watckKey.reset();
}
- } catch (Exception e) {
- System.out.println("Error: " + e.toString());
+ } catch (Throwable e) {
+ e.printStackTrace();
}
}
}
\ No newline at end of file
Modified: felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathTracker.java
URL: http://svn.apache.org/viewvc/felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathTracker.java?rev=1637461&r1=1637460&r2=1637461&view=diff
==============================================================================
--- felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathTracker.java (original)
+++ felix/sandbox/pderop/dependencymanager-prototype/org.apache.felix.dependencymanager.samples/src/org/apache/felix/dependencymanager/samples/customdep/PathTracker.java Fri Nov 7 21:44:47 2014
@@ -8,4 +8,8 @@ public class PathTracker {
void add(String path) {
logService.log(LogService.LOG_INFO, "PathTracker.add: " + path);
}
+
+ void remove(String path) {
+ logService.log(LogService.LOG_INFO, "PathTracker.remove: " + path);
+ }
}