Repository: karaf-decanter Updated Branches: refs/heads/DS-target 629395e78 -> fe8a0400a
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/f2e56cf4 Tree: http://git-wip-us.apache.org/repos/asf/karaf-decanter/tree/f2e56cf4 Diff: http://git-wip-us.apache.org/repos/asf/karaf-decanter/diff/f2e56cf4 Branch: refs/heads/DS-target Commit: f2e56cf4a9c259f5cfb64332ba49a5bf882014be Parents: 629395e Author: Christian Schneider <[email protected]> Authored: Fri Feb 19 09:37:10 2016 +0100 Committer: Christian Schneider <[email protected]> Committed: Fri Feb 19 09:37:10 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/f2e56cf4/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); }
