Author: davsclaus
Date: Thu Feb 12 09:25:36 2009
New Revision: 743664
URL: http://svn.apache.org/viewvc?rev=743664&view=rev
Log:
CAMEL-505: quartz endpoint can now be created using spring bean style. Polished
code a bit.
Added:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointTest.java
(contents, props changed)
- copied, changed from r743658,
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java
Modified:
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/StatefulCamelJob.java
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/StatefulQuartzRouteTest.java
Modified:
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java?rev=743664&r1=743663&r2=743664&view=diff
==============================================================================
---
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java
(original)
+++
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java
Thu Feb 12 09:25:36 2009
@@ -27,7 +27,7 @@
public void execute(JobExecutionContext context) throws
JobExecutionException {
QuartzEndpoint component = (QuartzEndpoint)
context.getJobDetail().getJobDataMap().get(QuartzEndpoint.ENDPOINT_KEY);
if (component == null) {
- throw new JobExecutionException("No quartz endpoint available for
key: " + QuartzEndpoint.ENDPOINT_KEY + ". Bad job data map");
+ throw new JobExecutionException("No quartz endpoint available for
key: " + QuartzEndpoint.ENDPOINT_KEY);
}
component.onJobExecute(context);
}
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=743664&r1=743663&r2=743664&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 Feb 12 09:25:36 2009
@@ -82,11 +82,7 @@
} else {
name = u.getHost();
}
- /*
- * String[] names = ObjectHelper.splitOnCharacter(remaining, "/", 2);
if
- * (names[1] != null) { group = names[0]; name = names[1]; } else {
name =
- * names[0]; }
- */
+
Trigger trigger = cronTrigger;
if (trigger == null) {
trigger = answer.getTrigger();
Modified:
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java?rev=743664&r1=743663&r2=743664&view=diff
==============================================================================
---
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
(original)
+++
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
Thu Feb 12 09:25:36 2009
@@ -21,11 +21,9 @@
import java.util.Set;
import org.apache.camel.Exchange;
-import org.apache.camel.ExchangePattern;
import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.impl.DefaultEndpoint;
-import org.apache.camel.impl.DefaultExchange;
import org.apache.camel.processor.loadbalancer.LoadBalancer;
import org.apache.camel.processor.loadbalancer.RoundRobinLoadBalancer;
import org.apache.camel.util.ObjectHelper;
@@ -57,6 +55,9 @@
private boolean started;
private boolean stateful;
+ public QuartzEndpoint() {
+ }
+
public QuartzEndpoint(final String endpointUri, final QuartzComponent
component, final Scheduler scheduler) {
super(endpointUri, component);
this.scheduler = scheduler;
@@ -95,7 +96,7 @@
trigger.setStartTime(new Date());
}
detail.getJobDataMap().put(ENDPOINT_KEY, isStateful() ?
getEndpointUri() : this);
- if (null == detail.getJobClass()) {
+ if (detail.getJobClass() == null) {
detail.setJobClass(isStateful() ? StatefulCamelJob.class :
CamelJob.class);
}
if (detail.getName() == null) {
@@ -141,6 +142,11 @@
return new QuartzConsumer(this, processor);
}
+ @Override
+ protected String createEndpointUri() {
+ return "quartz://" + getTrigger().getGroup() + "/" +
getTrigger().getName();
+ }
+
// Properties
//
-------------------------------------------------------------------------
@@ -190,21 +196,18 @@
this.trigger = trigger;
}
- /**
- * @return the stateful mode
- */
public boolean isStateful() {
return this.stateful;
}
- /**
- * @param stateful
- * sets the stateful mode
- */
public void setStateful(final boolean stateful) {
this.stateful = stateful;
}
+ public void setScheduler(Scheduler scheduler) {
+ this.scheduler = scheduler;
+ }
+
// Implementation methods
//
-------------------------------------------------------------------------
public synchronized void consumerStarted(final QuartzConsumer consumer)
throws SchedulerException {
Modified:
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/StatefulCamelJob.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/StatefulCamelJob.java?rev=743664&r1=743663&r2=743664&view=diff
==============================================================================
---
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/StatefulCamelJob.java
(original)
+++
camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/StatefulCamelJob.java
Thu Feb 12 09:25:36 2009
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.component.quartz;
import org.apache.camel.CamelContext;
@@ -25,18 +24,11 @@
import org.quartz.StatefulJob;
/**
- * @author martin.gilday
- *
+ * Stateful job
*/
public class StatefulCamelJob implements StatefulJob {
- /*
- * (non-Javadoc)
- *
- * @see org.quartz.Job#execute(org.quartz.JobExecutionContext)
- */
public void execute(final JobExecutionContext context) throws
JobExecutionException {
-
SchedulerContext schedulerContext;
try {
schedulerContext = context.getScheduler().getContext();
Copied:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointTest.java
(from r743658,
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java)
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointTest.java?p2=camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointTest.java&p1=camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java&r1=743658&r2=743664&rev=743664&view=diff
==============================================================================
---
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java
(original)
+++
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointTest.java
Thu Feb 12 09:25:36 2009
@@ -16,43 +16,51 @@
*/
package org.apache.camel.component.quartz;
-import java.util.List;
-
-import org.apache.camel.ContextTestSupport;
-import org.apache.camel.Exchange;
-import org.apache.camel.Message;
import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.mock.MockEndpoint;
+import org.quartz.Scheduler;
+import org.quartz.SimpleTrigger;
+import org.quartz.impl.StdSchedulerFactory;
/**
* @version $Revision$
*/
-public class QuartzRouteTest extends ContextTestSupport {
- protected MockEndpoint resultEndpoint;
+public class QuartzEndpointTest extends QuartzRouteTest {
+
+ private Scheduler scheduler;
+
+ @Override
+ protected void setUp() throws Exception {
+ scheduler = StdSchedulerFactory.getDefaultScheduler();
+ scheduler.start();
+ super.setUp();
+
+ }
- public void testSendAndReceiveMails() throws Exception {
- resultEndpoint = getMockEndpoint("mock:result");
- resultEndpoint.expectedMessageCount(2);
-
resultEndpoint.message(0).header("triggerName").isEqualTo("myTimerName");
- resultEndpoint.message(0).header("triggerGroup").isEqualTo("myGroup");
-
- // lets test the receive worked
- resultEndpoint.assertIsSatisfied();
-
- List<Exchange> list = resultEndpoint.getReceivedExchanges();
- for (Exchange exchange : list) {
- Message in = exchange.getIn();
- log.debug("Received: " + in + " with headers: " + in.getHeaders());
- }
+ @Override
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ scheduler.shutdown();
}
@Override
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
- public void configure() {
- // START SNIPPET: example
-
from("quartz://myGroup/myTimerName?trigger.repeatInterval=2&trigger.repeatCount=1").to("mock:result");
- // END SNIPPET: example
+ public void configure() throws Exception {
+ QuartzEndpoint endpoint = new QuartzEndpoint();
+ endpoint.setCamelContext(context);
+ endpoint.setScheduler(scheduler);
+
+ SimpleTrigger trigger = new SimpleTrigger();
+ trigger.setGroup("myGroup");
+ trigger.setName("myTimerName");
+ trigger.setRepeatCount(1);
+ trigger.setRepeatInterval(2);
+
+ endpoint.setTrigger(trigger);
+
+ context.addEndpoint("qtx", endpoint);
+
+ from("qtx").to("mock:result");
}
};
}
Propchange:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointTest.java
------------------------------------------------------------------------------
svn:mergeinfo =
Modified:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java?rev=743664&r1=743663&r2=743664&view=diff
==============================================================================
---
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java
(original)
+++
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java
Thu Feb 12 09:25:36 2009
@@ -30,7 +30,7 @@
public class QuartzRouteTest extends ContextTestSupport {
protected MockEndpoint resultEndpoint;
- public void testSendAndReceiveMails() throws Exception {
+ public void testQuartzRoute() throws Exception {
resultEndpoint = getMockEndpoint("mock:result");
resultEndpoint.expectedMessageCount(2);
resultEndpoint.message(0).header("triggerName").isEqualTo("myTimerName");
Modified:
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/StatefulQuartzRouteTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/StatefulQuartzRouteTest.java?rev=743664&r1=743663&r2=743664&view=diff
==============================================================================
---
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/StatefulQuartzRouteTest.java
(original)
+++
camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/StatefulQuartzRouteTest.java
Thu Feb 12 09:25:36 2009
@@ -14,7 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.apache.camel.component.quartz;
import java.util.List;
@@ -26,13 +25,12 @@
import org.apache.camel.component.mock.MockEndpoint;
/**
- * @author martin.gilday
- *
+ *
*/
public class StatefulQuartzRouteTest extends ContextTestSupport {
protected MockEndpoint resultEndpoint;
- public void testSendAndReceiveMails() throws Exception {
+ public void testQuartz() throws Exception {
resultEndpoint = getMockEndpoint("mock:result");
resultEndpoint.expectedMessageCount(2);
resultEndpoint.message(0).header("triggerName").isEqualTo("myTimerName");
@@ -48,11 +46,6 @@
}
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.camel.ContextTestSupport#createRouteBuilder()
- */
@Override
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {