Repository: karaf-decanter
Updated Branches:
  refs/heads/master e5992a37f -> 2855ecfe0


Make sure scheduler tracks changes in collectors


Project: http://git-wip-us.apache.org/repos/asf/karaf-decanter/repo
Commit: http://git-wip-us.apache.org/repos/asf/karaf-decanter/commit/d0759ad1
Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/d0759ad1
Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/d0759ad1

Branch: refs/heads/master
Commit: d0759ad1e8938507b57fa52a4739ed0bf5ebebb1
Parents: e5992a3
Author: Christian Schneider <[email protected]>
Authored: Fri Feb 19 09:37:10 2016 +0100
Committer: Christian Schneider <[email protected]>
Committed: Fri Feb 19 09:41:28 2016 +0100

----------------------------------------------------------------------
 .../scheduler/simple/SimpleScheduler.java        | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/karaf-decanter/blob/d0759ad1/scheduler/simple/src/main/java/org/apache/karaf/decanter/scheduler/simple/SimpleScheduler.java
----------------------------------------------------------------------
diff --git 
a/scheduler/simple/src/main/java/org/apache/karaf/decanter/scheduler/simple/SimpleScheduler.java
 
b/scheduler/simple/src/main/java/org/apache/karaf/decanter/scheduler/simple/SimpleScheduler.java
index d06840e..0268264 100644
--- 
a/scheduler/simple/src/main/java/org/apache/karaf/decanter/scheduler/simple/SimpleScheduler.java
+++ 
b/scheduler/simple/src/main/java/org/apache/karaf/decanter/scheduler/simple/SimpleScheduler.java
@@ -27,6 +27,7 @@ import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.component.annotations.ReferenceCardinality;
+import org.osgi.service.component.annotations.ReferencePolicy;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -73,17 +74,21 @@ public class SimpleScheduler implements Runnable, Scheduler 
{
                     LOGGER.warn("Can't collect data", e);
                 }
             }
-            try {
-                Thread.sleep(period);
-            } catch (InterruptedException e) {
-                Thread.currentThread().interrupt();
-                running.set(false);
-            }
+            sleep();
         }
 
         LOGGER.debug("Decanter SimpleScheduler thread stopped ...");
     }
 
+    private void sleep() {
+        try {
+            Thread.sleep(period);
+        } catch (InterruptedException e) {
+            running.set(false);
+            Thread.currentThread().interrupt();
+        }
+    }
+
     @Override
     public void stop() {
         running.set(false);
@@ -107,7 +112,7 @@ public class SimpleScheduler implements Runnable, Scheduler 
{
         return running.get() ? "Started" : "Stopped";
     }
 
-    @Reference(target="(decanter.collector.name=*)", 
cardinality=ReferenceCardinality.MULTIPLE)
+    @Reference(target="(decanter.collector.name=*)", 
cardinality=ReferenceCardinality.MULTIPLE, policy=ReferencePolicy.DYNAMIC)
     public void setCollector(Runnable collector) {
         this.collectors.add(collector);
     }

Reply via email to