Author: nfilotto
Date: 2010-09-10 07:21:11 -0400 (Fri, 10 Sep 2010)
New Revision: 3103
Modified:
kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java
kernel/trunk/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java
Log:
EXOJCR-950: The scheduler is put in "standby" mode during the whole ExoContainer
creation to ensure that no Jobs are launched too early even when the scheduler is launched
by an external application
Modified:
kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java
===================================================================
---
kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java 2010-09-10
10:51:52 UTC (rev 3102)
+++
kernel/trunk/exo.kernel.component.common/src/main/java/org/exoplatform/services/scheduler/impl/QuartzSheduler.java 2010-09-10
11:21:11 UTC (rev 3103)
@@ -44,6 +44,9 @@
{
SchedulerFactory sf = new StdSchedulerFactory();
scheduler_ = sf.getScheduler();
+ // If the scheduler has already been started, it is necessary to put the scheduler
+ // in standby mode to ensure that the jobs of the ExoContainer won't launched
too early
+ scheduler_.standby();
// This will launch the scheduler when all the components will be started
ctx.getContainer().addContainerLifecylePlugin(new BaseContainerLifecyclePlugin()
{
Modified:
kernel/trunk/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java
===================================================================
---
kernel/trunk/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java 2010-09-10
10:51:52 UTC (rev 3102)
+++
kernel/trunk/exo.kernel.component.common/src/test/java/org/exoplatform/services/scheduler/test/TestSchedulerService.java 2010-09-10
11:21:11 UTC (rev 3103)
@@ -279,6 +279,7 @@
public void startContainer(ExoContainer container) throws Exception
{
MyComponent component =
(MyComponent)container.getComponentInstanceOfType(MyComponent.class);
+ component.doneSignal.await(2, TimeUnit.SECONDS);
component.started = true;
}
}
@@ -286,7 +287,7 @@
public static class MyComponent
{
public boolean started;
- private final CountDownLatch doneSignal = new CountDownLatch(1);
+ public final CountDownLatch doneSignal = new CountDownLatch(1);
public Boolean result;
public void doSomething()
Show replies by date