Author: davsclaus
Date: Thu Oct 7 15:16:33 2010
New Revision: 1005489
URL: http://svn.apache.org/viewvc?rev=1005489&view=rev
Log:
CAMEL-3203: Fixed adding routes with quartz endpoints to already started camel
should add jobs to scheduler.
Added:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java
- copied, changed from r1005417,
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzStartDelayedTest.java
Modified:
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
Modified:
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java?rev=1005489&r1=1005488&r2=1005489&view=diff
==============================================================================
---
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
(original)
+++
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
Thu Oct 7 15:16:33 2010
@@ -186,9 +186,14 @@ public class QuartzComponent extends Def
}
}
- public void addJob(JobDetail job, Trigger trigger) {
- // add job to internal list because we will defer adding to the
scheduler when camel context has been fully started
- jobsToAdd.add(new JobToAdd(job, trigger));
+ public void addJob(JobDetail job, Trigger trigger) throws
SchedulerException {
+ if (scheduler == null) {
+ // add job to internal list because we will defer adding to the
scheduler when camel context has been fully started
+ jobsToAdd.add(new JobToAdd(job, trigger));
+ } else {
+ // add job directly to scheduler
+ doAddJob(job, trigger);
+ }
}
private void doAddJob(JobDetail job, Trigger trigger) throws
SchedulerException {
Copied:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java
(from r1005417,
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzStartDelayedTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java?p2=camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java&p1=camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzStartDelayedTest.java&r1=1005417&r2=1005489&rev=1005489&view=diff
==============================================================================
---
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzStartDelayedTest.java
(original)
+++
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java
Thu Oct 7 15:16:33 2010
@@ -19,37 +19,31 @@ package org.apache.camel.component.quart
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.apache.camel.test.junit4.CamelTestSupport;
-import org.apache.camel.util.StopWatch;
import org.junit.Test;
/**
* @version $Revision$
*/
-public class QuartzStartDelayedTest extends CamelTestSupport {
+public class QuartzAddRoutesAfterCamelContextStartedTest extends
CamelTestSupport {
@Test
- public void testStartDelayed() throws Exception {
- StopWatch watch = new StopWatch();
+ public void testAddRoutes() throws Exception {
+ // camel context should already be started
+ assertTrue(context.getStatus().isStarted());
MockEndpoint mock = getMockEndpoint("mock:result");
mock.expectedMessageCount(2);
- assertMockEndpointsSatisfied();
-
- long time = watch.stop();
- assertTrue("Should take longer than 3 seconds, was: " + time + "
millis.", time > 2500);
- }
-
- @Override
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
+ // add the quartz router after CamelContext has been started
+ context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
- QuartzComponent quartz = context.getComponent("quartz",
QuartzComponent.class);
- quartz.setStartDelayedSeconds(3);
-
-
from("quartz://myGroup/myTimerName?trigger.repeatInterval=2&trigger.repeatCount=1").routeId("myRoute").to("mock:result");
+
from("quartz://myGroup/myTimerName?trigger.repeatInterval=2&trigger.repeatCount=1").to("mock:result");
}
- };
+ });
+
+ // it should also work
+ assertMockEndpointsSatisfied();
}
+
}