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() {


Reply via email to