Author: cziegeler Date: Mon May 22 05:12:09 2017 New Revision: 1795773 URL: http://svn.apache.org/viewvc?rev=1795773&view=rev Log: SLING-6823 : Use Timer instead of scheduler for delayed execution
Modified: sling/trunk/bundles/extensions/event/resource/pom.xml sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/config/JobManagerConfigurationTest.java sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/it/AbstractJobHandlingTest.java Modified: sling/trunk/bundles/extensions/event/resource/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/resource/pom.xml?rev=1795773&r1=1795772&r2=1795773&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/resource/pom.xml (original) +++ sling/trunk/bundles/extensions/event/resource/pom.xml Mon May 22 05:12:09 2017 @@ -259,7 +259,7 @@ <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.discovery.commons</artifactId> - <version>1.0.12</version> + <version>1.0.20</version> <scope>provided</scope> </dependency> <dependency> Modified: sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java?rev=1795773&r1=1795772&r2=1795773&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java (original) +++ sling/trunk/bundles/extensions/event/resource/src/main/java/org/apache/sling/event/impl/jobs/config/JobManagerConfiguration.java Mon May 22 05:12:09 2017 @@ -33,7 +33,6 @@ import org.apache.sling.api.resource.Per import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.api.resource.ResourceResolverFactory; import org.apache.sling.commons.osgi.PropertiesUtil; -import org.apache.sling.commons.scheduler.Scheduler; import org.apache.sling.discovery.TopologyEvent; import org.apache.sling.discovery.TopologyEvent.Type; import org.apache.sling.discovery.TopologyEventListener; @@ -164,9 +163,6 @@ public class JobManagerConfiguration { private QueueConfigurationManager queueConfigManager; @Reference(policyOption=ReferencePolicyOption.GREEDY) - private Scheduler scheduler; - - @Reference(policyOption=ReferencePolicyOption.GREEDY) private ServiceUserMapped serviceUserMapped; /** Is this still active? */ @@ -226,7 +222,7 @@ public class JobManagerConfiguration { public void handleTopologyEvent(TopologyEvent event) { doHandleTopologyEvent(event); } - }, this.scheduler, logger); + }, logger); } else { logger.debug("activate: job manager will start without delay. ({}:{})", config.startup_delay(), this.startupDelay); } Modified: sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/config/JobManagerConfigurationTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/config/JobManagerConfigurationTest.java?rev=1795773&r1=1795772&r2=1795773&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/config/JobManagerConfigurationTest.java (original) +++ sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/impl/jobs/config/JobManagerConfigurationTest.java Mon May 22 05:12:09 2017 @@ -22,21 +22,13 @@ import static org.junit.Assert.assertEqu import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; -import java.util.Date; import java.util.List; -import java.util.Map; -import java.util.NoSuchElementException; -import java.util.Timer; -import java.util.TimerTask; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; -import org.apache.sling.commons.scheduler.ScheduleOptions; -import org.apache.sling.commons.scheduler.Scheduler; import org.apache.sling.discovery.ClusterView; import org.apache.sling.discovery.InstanceDescription; import org.apache.sling.discovery.TopologyEvent; @@ -69,7 +61,7 @@ public class JobManagerConfigurationTest private static class ChangeListener implements ConfigurationChangeListener { - public final List<Boolean> events = new ArrayList<Boolean>(); + public final List<Boolean> events = new ArrayList<>(); private volatile CountDownLatch latch; public void init(final int count) { @@ -90,132 +82,21 @@ public class JobManagerConfigurationTest } } - private Scheduler createScheduler() { - return new Scheduler() { - - @Override - public boolean unschedule(String jobName) { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean schedule(final Object job, ScheduleOptions options) { - if ( job instanceof Runnable ) { - final Timer t = new Timer(); - t.schedule(new TimerTask() { - - @Override - public void run() { - ((Runnable)job).run(); - } - }, 3000); - return true; - } - return false; - } - - @Override - public void removeJob(String name) throws NoSuchElementException { - // TODO Auto-generated method stub - - } - - @Override - public boolean fireJobAt(String name, Object job, Map<String, Serializable> config, Date date, int times, - long period) { - // TODO Auto-generated method stub - return false; - } - - @Override - public void fireJobAt(String name, Object job, Map<String, Serializable> config, Date date) throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public boolean fireJob(Object job, Map<String, Serializable> config, int times, long period) { - // TODO Auto-generated method stub - return false; - } - - @Override - public void fireJob(Object job, Map<String, Serializable> config) throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public void addPeriodicJob(String name, Object job, Map<String, Serializable> config, long period, - boolean canRunConcurrently, boolean startImmediate) throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public void addPeriodicJob(String name, Object job, Map<String, Serializable> config, long period, - boolean canRunConcurrently) throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public void addJob(String name, Object job, Map<String, Serializable> config, String schedulingExpression, - boolean canRunConcurrently) throws Exception { - // TODO Auto-generated method stub - - } - - @Override - public ScheduleOptions NOW(int times, long period) { - // TODO Auto-generated method stub - return null; - } - - @Override - public ScheduleOptions NOW() { - // TODO Auto-generated method stub - return null; - } - - @Override - public ScheduleOptions EXPR(String expression) { - // TODO Auto-generated method stub - return null; - } - - @Override - public ScheduleOptions AT(Date date, int times, long period) { - // TODO Auto-generated method stub - return null; - } - - @Override - public ScheduleOptions AT(Date date) { - // TODO Auto-generated method stub - return null; - } - }; - } - @Test public void testTopologyChange() throws Exception { // mock scheduler - final Scheduler scheduler = this.createScheduler(); final ChangeListener ccl = new ChangeListener(); // add change listener and verify ccl.init(1); final JobManagerConfiguration config = new JobManagerConfiguration(); - TestUtil.setFieldValue(config, "scheduler", scheduler); ((AtomicBoolean)TestUtil.getFieldValue(config, "active")).set(true); InitDelayingTopologyEventListener startupDelayListener = new InitDelayingTopologyEventListener(1, new TopologyEventListener() { - + @Override public void handleTopologyEvent(TopologyEvent event) { config.doHandleTopologyEvent(event); } - }, scheduler);; + }); TestUtil.setFieldValue(config, "startupDelayListener", startupDelayListener); config.addListener(ccl); Modified: sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/it/AbstractJobHandlingTest.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/it/AbstractJobHandlingTest.java?rev=1795773&r1=1795772&r2=1795773&view=diff ============================================================================== --- sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/it/AbstractJobHandlingTest.java (original) +++ sling/trunk/bundles/extensions/event/resource/src/test/java/org/apache/sling/event/it/AbstractJobHandlingTest.java Mon May 22 05:12:09 2017 @@ -206,12 +206,13 @@ public abstract class AbstractJobHandlin mavenBundle("org.apache.sling", "org.apache.sling.commons.json", "2.0.16"), mavenBundle("org.apache.sling", "org.apache.sling.commons.mime", "2.1.8"), mavenBundle("org.apache.sling", "org.apache.sling.commons.classloader", "1.3.2"), + mavenBundle("org.apache.sling", "org.apache.sling.commons.johnzon", "1.0.0"), mavenBundle("org.apache.sling", "org.apache.sling.commons.scheduler", "2.4.14"), mavenBundle("org.apache.sling", "org.apache.sling.commons.threads", "3.2.4"), mavenBundle("org.apache.sling", "org.apache.sling.auth.core", "1.3.12"), mavenBundle("org.apache.sling", "org.apache.sling.discovery.api", "1.0.2"), - mavenBundle("org.apache.sling", "org.apache.sling.discovery.commons", "1.0.12"), + mavenBundle("org.apache.sling", "org.apache.sling.discovery.commons", "1.0.20"), mavenBundle("org.apache.sling", "org.apache.sling.discovery.standalone", "1.0.2"), mavenBundle("org.apache.sling", "org.apache.sling.api", "2.14.2"),