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 11:54:26 UTC

git commit: CAMEL-7754: Add QuartzConstants.QUARTZ_TRIGGER_CRON_TIMEZONE to the QuartzEndpoint if it exists

Repository: camel
Updated Branches:
  refs/heads/master 68d0f1419 -> 253af883b


CAMEL-7754: Add QuartzConstants.QUARTZ_TRIGGER_CRON_TIMEZONE to the QuartzEndpoint if it exists


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/253af883
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/253af883
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/253af883

Branch: refs/heads/master
Commit: 253af883b461ddc6b50cbbb58509eeaaf8abdcb6
Parents: 68d0f14
Author: Charles Moulliard <ch...@gmail.com>
Authored: Wed Aug 27 11:54:10 2014 +0200
Committer: Charles Moulliard <ch...@gmail.com>
Committed: Wed Aug 27 11:54:10 2014 +0200

----------------------------------------------------------------------
 .../camel/component/quartz/QuartzComponent.java | 10 +++---
 .../quartz/QuartzCronTriggerRouteTest.java      | 34 ++++++++++++++++++++
 2 files changed, 39 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/253af883/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
index 63f9dad..559b9fd 100644
--- a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
+++ b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
@@ -20,11 +20,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.URI;
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.CamelContext;
@@ -169,6 +165,10 @@ public class QuartzComponent extends UriEndpointComponent implements StartupList
         if (cron != null) {
             answer.getJobDetail().getJobDataMap().put(QuartzConstants.QUARTZ_TRIGGER_TYPE, "cron");
             answer.getJobDetail().getJobDataMap().put(QuartzConstants.QUARTZ_TRIGGER_CRON_EXPRESSION, cron);
+            String timeZone = EndpointHelper.resloveStringParameter(getCamelContext(), (String)triggerParameters.get("timeZone"), String.class);
+            if (timeZone != null) {
+                answer.getJobDetail().getJobDataMap().put(QuartzConstants.QUARTZ_TRIGGER_CRON_TIMEZONE, timeZone);
+            }
         } else {
             answer.getJobDetail().getJobDataMap().put(QuartzConstants.QUARTZ_TRIGGER_TYPE, "simple");
             Long interval = EndpointHelper.resloveStringParameter(getCamelContext(), (String)triggerParameters.get("repeatInterval"), Long.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/253af883/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzCronTriggerRouteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzCronTriggerRouteTest.java b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzCronTriggerRouteTest.java
new file mode 100644
index 0000000..2e62406
--- /dev/null
+++ b/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzCronTriggerRouteTest.java
@@ -0,0 +1,34 @@
+package org.apache.camel.component.quartz;
+
+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("quartz://myGroup/myTimerName?cron=0/2+*+*+*+*+?&trigger.timeZone=UTC").to("mock:result");
+            }
+        };
+    }
+}
\ No newline at end of file