Repository: camel Updated Branches: refs/heads/master 65534ed75 -> ff51cff8f
CAMEL-10104: Mail consumer does not work with quartz scheduler. Thanks to Ivo Kulms for the patch. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ff51cff8 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ff51cff8 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ff51cff8 Branch: refs/heads/master Commit: ff51cff8f62f6a20bfa555f8b60b23c3fd678a22 Parents: 65534ed Author: Stephan Siano <[email protected]> Authored: Wed Jun 29 15:48:52 2016 +0200 Committer: Stephan Siano <[email protected]> Committed: Thu Jun 30 08:17:43 2016 +0200 ---------------------------------------------------------------------- components/camel-mail/pom.xml | 11 ++++++++++ .../camel/component/mail/MailComponent.java | 1 + .../camel/component/mail/MailComponentTest.java | 22 ++++++++++++++++++++ 3 files changed, 34 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/ff51cff8/components/camel-mail/pom.xml ---------------------------------------------------------------------- diff --git a/components/camel-mail/pom.xml b/components/camel-mail/pom.xml index 2405c1d..5cb509f 100644 --- a/components/camel-mail/pom.xml +++ b/components/camel-mail/pom.xml @@ -102,6 +102,17 @@ <artifactId>commons-io</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.quartz-scheduler</groupId> + <artifactId>quartz</artifactId> + <version>${quartz2-version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-quartz2</artifactId> + <scope>test</scope> + </dependency> </dependencies> </project> http://git-wip-us.apache.org/repos/asf/camel/blob/ff51cff8/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java index 693d686..081d364 100644 --- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java +++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java @@ -65,6 +65,7 @@ public class MailComponent extends UriEndpointComponent { MailEndpoint endpoint = new MailEndpoint(uri, this, config); endpoint.setContentTypeResolver(contentTypeResolver); setProperties(endpoint.getConfiguration(), parameters); + setProperties(endpoint, parameters); Map<String, Object> sstParams = IntrospectionSupport.extractProperties(parameters, "searchTerm."); if (!sstParams.isEmpty()) { http://git-wip-us.apache.org/repos/asf/camel/blob/ff51cff8/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java ---------------------------------------------------------------------- diff --git a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java index 8b7f21e..fa5c8b2 100644 --- a/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java +++ b/components/camel-mail/src/test/java/org/apache/camel/component/mail/MailComponentTest.java @@ -19,6 +19,7 @@ package org.apache.camel.component.mail; import javax.mail.Message; import org.apache.camel.Endpoint; +import org.apache.camel.pollconsumer.quartz2.QuartzScheduledPollConsumerScheduler; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; @@ -318,5 +319,26 @@ public class MailComponentTest extends CamelTestSupport { assertEquals("secret", endpoint.getConfiguration().getPassword()); assertEquals("myhost", endpoint.getConfiguration().getHost()); } + + @Test + public void testMailComponentWithQuartzScheduler() throws Exception { + MailConfiguration config = new MailConfiguration(); + config.setUsername("james"); + config.setPassword("secret"); + + MailComponent comp = new MailComponent(config); + comp.setCamelContext(context); + + assertSame(config, comp.getConfiguration()); + assertNull(comp.getContentTypeResolver()); + + MailEndpoint endpoint = (MailEndpoint)comp.createEndpoint("imap://myhost?scheduler=quartz2&scheduler.cron=0%2F5+*+0-23+%3F+*+*+*&scheduler.timeZone=Europe%2FBerlin"); + assertEquals("james", endpoint.getConfiguration().getUsername()); + assertEquals("secret", endpoint.getConfiguration().getPassword()); + assertEquals("myhost", endpoint.getConfiguration().getHost()); + + assertNotNull("Scheduler not set", endpoint.getScheduler()); + assertTrue("Wrong scheduler class", endpoint.getScheduler() instanceof QuartzScheduledPollConsumerScheduler); + } }
