You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by cm...@apache.org on 2014/08/27 12:27:11 UTC
git commit: CAMEL-7754: Add support for TimeZone
Repository: camel
Updated Branches:
refs/heads/master 253af883b -> d4a930623
CAMEL-7754: Add support for TimeZone
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/d4a93062
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/d4a93062
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/d4a93062
Branch: refs/heads/master
Commit: d4a9306232ab633b8a38de87a56b308296c4b5a7
Parents: 253af88
Author: Charles Moulliard <ch...@gmail.com>
Authored: Wed Aug 27 12:27:02 2014 +0200
Committer: Charles Moulliard <ch...@gmail.com>
Committed: Wed Aug 27 12:27:02 2014 +0200
----------------------------------------------------------------------
.../camel/component/quartz2/QuartzEndpoint.java | 25 ++++++++++----
.../quartz2/QuartzCronTriggerRouteTest.java | 34 ++++++++++++++++++++
2 files changed, 53 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/d4a93062/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java
index c4cb731..7552c4c 100644
--- a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java
+++ b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.quartz2;
import java.util.Date;
import java.util.Map;
+import java.util.TimeZone;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@@ -282,16 +283,28 @@ public class QuartzEndpoint extends DefaultEndpoint {
}
if (cron != null) {
LOG.debug("Creating CronTrigger: {}", cron);
- result = TriggerBuilder.newTrigger()
- .withIdentity(triggerKey)
- .startAt(startTime)
- .withSchedule(cronSchedule(cron).withMisfireHandlingInstructionFireAndProceed())
- .build();
+ String timeZone = (String)triggerParameters.get("timeZone");
+ if (timeZone != null) {
+ result = TriggerBuilder.newTrigger()
+ .withIdentity(triggerKey)
+ .startAt(startTime)
+ .withSchedule(cronSchedule(cron)
+ .withMisfireHandlingInstructionFireAndProceed()
+ .inTimeZone(TimeZone.getTimeZone(timeZone)))
+ .build();
+ jobDetail.getJobDataMap().put(QuartzConstants.QUARTZ_TRIGGER_CRON_TIMEZONE, timeZone);
+ } else {
+ result = TriggerBuilder.newTrigger()
+ .withIdentity(triggerKey)
+ .startAt(startTime)
+ .withSchedule(cronSchedule(cron)
+ .withMisfireHandlingInstructionFireAndProceed())
+ .build();
+ }
// enrich job map with details
jobDetail.getJobDataMap().put(QuartzConstants.QUARTZ_TRIGGER_TYPE, "cron");
jobDetail.getJobDataMap().put(QuartzConstants.QUARTZ_TRIGGER_CRON_EXPRESSION, cron);
-
} else {
LOG.debug("Creating SimpleTrigger.");
int repeat = SimpleTrigger.REPEAT_INDEFINITELY;
http://git-wip-us.apache.org/repos/asf/camel/blob/d4a93062/components/camel-quartz2/src/test/java/org/apache/camel/component/quartz2/QuartzCronTriggerRouteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz2/src/test/java/org/apache/camel/component/quartz2/QuartzCronTriggerRouteTest.java b/components/camel-quartz2/src/test/java/org/apache/camel/component/quartz2/QuartzCronTriggerRouteTest.java
new file mode 100644
index 0000000..bd31fec
--- /dev/null
+++ b/components/camel-quartz2/src/test/java/org/apache/camel/component/quartz2/QuartzCronTriggerRouteTest.java
@@ -0,0 +1,34 @@
+package org.apache.camel.component.quartz2;
+
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.test.junit4.CamelTestSupport;
+import org.junit.Test;
+import org.quartz.JobDetail;
+
+public class QuartzCronTriggerRouteTest extends CamelTestSupport {
+
+ @Test
+ public void testQuartzCronRoute() throws Exception {
+ MockEndpoint mock = getMockEndpoint("mock:result");
+ mock.expectedMinimumMessageCount(3);
+
+ assertMockEndpointsSatisfied();
+
+ JobDetail job = mock.getReceivedExchanges().get(0).getIn().getHeader("jobDetail", JobDetail.class);
+ assertNotNull(job);
+
+ assertEquals("cron", job.getJobDataMap().get(QuartzConstants.QUARTZ_TRIGGER_TYPE));
+ assertEquals("UTC", job.getJobDataMap().get(QuartzConstants.QUARTZ_TRIGGER_CRON_TIMEZONE));
+ assertEquals("0/2 * * * * ?", job.getJobDataMap().get(QuartzConstants.QUARTZ_TRIGGER_CRON_EXPRESSION));
+ }
+
+ @Override
+ protected RouteBuilder createRouteBuilder() {
+ return new RouteBuilder() {
+ public void configure() {
+ from("quartz2://myGroup/myTimerName?cron=0/2+*+*+*+*+?&trigger.timeZone=UTC").to("mock:result");
+ }
+ };
+ }
+}