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"),