You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2010/10/07 17:16:39 UTC
svn commit: r1005489 - in /camel/trunk/components/camel-quartz/src:
main/java/org/apache/camel/component/quartz/QuartzComponent.java
test/java/org/apache/camel/component/quartz/QuartzAddRoutesAfterCamelContextStartedTest.java
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();
}
+
}