You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/05/23 16:57:14 UTC

svn commit: r540969 - in /activemq/camel/trunk: ./ apache-camel/ apache-camel/src/main/descriptors/ camel-core/src/main/java/org/apache/camel/impl/ camel-core/src/main/java/org/apache/camel/processor/loadbalancer/ components/ components/camel-quartz/ c...

Author: jstrachan
Date: Wed May 23 07:57:12 2007
New Revision: 540969

URL: http://svn.apache.org/viewvc?view=rev&rev=540969
Log:
added a Quartz component for creating scheduled message delivery. For more detail see: http://cwiki.apache.org/CAMEL/quartz.html

Added:
    activemq/camel/trunk/components/camel-quartz/
    activemq/camel/trunk/components/camel-quartz/pom.xml   (with props)
    activemq/camel/trunk/components/camel-quartz/src/
    activemq/camel/trunk/components/camel-quartz/src/main/
    activemq/camel/trunk/components/camel-quartz/src/main/java/
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java   (with props)
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java   (with props)
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java   (with props)
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java   (with props)
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzExchange.java   (with props)
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java   (with props)
    activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/package.html   (with props)
    activemq/camel/trunk/components/camel-quartz/src/main/resources/
    activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/
    activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/
    activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/org/
    activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/org/apache/
    activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/org/apache/camel/
    activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/org/apache/camel/component/
    activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/org/apache/camel/component/quartz
    activemq/camel/trunk/components/camel-quartz/src/test/
    activemq/camel/trunk/components/camel-quartz/src/test/java/
    activemq/camel/trunk/components/camel-quartz/src/test/java/org/
    activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/
    activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/
    activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/
    activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/
    activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java   (with props)
    activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java   (with props)
    activemq/camel/trunk/components/camel-quartz/src/test/resources/
    activemq/camel/trunk/components/camel-quartz/src/test/resources/log4j.properties   (with props)
    activemq/camel/trunk/components/camel-quartz/src/test/resources/org/
    activemq/camel/trunk/components/camel-quartz/src/test/resources/org/apache/
    activemq/camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/
    activemq/camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/component/
    activemq/camel/trunk/components/camel-quartz/src/test/resources/org/apache/camel/component/quartz/
Modified:
    activemq/camel/trunk/apache-camel/pom.xml
    activemq/camel/trunk/apache-camel/src/main/descriptors/unix-bin.xml
    activemq/camel/trunk/apache-camel/src/main/descriptors/windows-bin.xml
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancer.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java
    activemq/camel/trunk/components/pom.xml
    activemq/camel/trunk/pom.xml

Modified: activemq/camel/trunk/apache-camel/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/apache-camel/pom.xml?view=diff&rev=540969&r1=540968&r2=540969
==============================================================================
--- activemq/camel/trunk/apache-camel/pom.xml (original)
+++ activemq/camel/trunk/apache-camel/pom.xml Wed May 23 07:57:12 2007
@@ -84,6 +84,10 @@
     </dependency>
     <dependency>
       <groupId>org.apache.camel</groupId>
+      <artifactId>camel-quartz</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.camel</groupId>
       <artifactId>camel-saxon</artifactId>
     </dependency>
     <dependency>
@@ -192,7 +196,9 @@
               <goal>createbundle</goal>
             </goals>
             <configuration>
-              <includes>camel-activemq,camel-bam,camel-core,camel-cxf,camel-file,camel-http,camel-jaxb,camel-jbi,camel-jms,camel-josql,camel-jpa,camel-mail,camel-mina,camel-rmi,camel-saxon,camel-script,camel-spring,camel-xmpp,commons-logging</includes>
+              <includes>camel-activemq,camel-bam,camel-core,camel-cxf,camel-file,camel-http,camel-jaxb,
+                camel-jbi,camel-jms,camel-josql,camel-jpa,camel-mail,camel-mina,camel-quartz,camel-rmi,
+                camel-saxon,camel-script,camel-spring,camel-xmpp,commons-logging</includes>
             </configuration>
           </execution>
         </executions>

Modified: activemq/camel/trunk/apache-camel/src/main/descriptors/unix-bin.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/apache-camel/src/main/descriptors/unix-bin.xml?view=diff&rev=540969&r1=540968&r2=540969
==============================================================================
--- activemq/camel/trunk/apache-camel/src/main/descriptors/unix-bin.xml (original)
+++ activemq/camel/trunk/apache-camel/src/main/descriptors/unix-bin.xml Wed May 23 07:57:12 2007
@@ -60,6 +60,7 @@
         <include>org.apache.camel:camel-josql</include>
         <include>org.apache.camel:camel-jpa</include>
         <include>org.apache.camel:camel-mail</include>
+        <include>org.apache.camel:camel-quartz</include>
         <include>org.apache.camel:camel-rmi</include>
         <include>org.apache.camel:camel-mina</include>
         <include>org.apache.camel:camel-saxon</include>

Modified: activemq/camel/trunk/apache-camel/src/main/descriptors/windows-bin.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/apache-camel/src/main/descriptors/windows-bin.xml?view=diff&rev=540969&r1=540968&r2=540969
==============================================================================
--- activemq/camel/trunk/apache-camel/src/main/descriptors/windows-bin.xml (original)
+++ activemq/camel/trunk/apache-camel/src/main/descriptors/windows-bin.xml Wed May 23 07:57:12 2007
@@ -67,6 +67,7 @@
         <include>org.apache.camel:camel-jpa</include>
         <include>org.apache.camel:camel-mail</include>
         <include>org.apache.camel:camel-mina</include>
+        <include>org.apache.camel:camel-quartz</include>
         <include>org.apache.camel:camel-rmi</include>
         <include>org.apache.camel:camel-saxon</include>
         <include>org.apache.camel:camel-script</include>

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java?view=diff&rev=540969&r1=540968&r2=540969
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultMessage.java Wed May 23 07:57:12 2007
@@ -36,10 +36,7 @@
     }
 
     public Object getHeader(String name) {
-        if (headers != null) {
-            return headers.get(name);
-        }
-        return null;
+        return getHeaders().get(name);
     }
 
     public <T> T getHeader(String name, Class<T> type) {

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancer.java?view=diff&rev=540969&r1=540968&r2=540969
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancer.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancer.java Wed May 23 07:57:12 2007
@@ -21,6 +21,8 @@
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 
+import java.util.List;
+
 /**
  * A strategy for load balancing across a number of {@link Processor} instances
  *
@@ -40,4 +42,11 @@
      * @param processor the processor to be removed from the load balancer
      */
     void removeProcessor(Processor processor);
+
+    /**
+     * Returns the current processors available to this load balancer
+     *
+     * @return the processors available
+     */
+    List<Processor> getProcessors();
 }

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java?view=diff&rev=540969&r1=540968&r2=540969
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/processor/loadbalancer/LoadBalancerSupport.java Wed May 23 07:57:12 2007
@@ -39,11 +39,6 @@
         processors.remove(processor);
     }
 
-    /**
-     * Returns the current processors available to this load balancer
-     *
-     * @return the processors available
-     */
     public List<Processor> getProcessors() {
         return processors;
     }

Added: activemq/camel/trunk/components/camel-quartz/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/pom.xml?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/pom.xml (added)
+++ activemq/camel/trunk/components/camel-quartz/pom.xml Wed May 23 07:57:12 2007
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0">
+
+  <modelVersion>4.0.0</modelVersion>
+
+  <parent>
+    <groupId>org.apache.camel</groupId>
+    <artifactId>camel-parent</artifactId>
+    <version>1.0-SNAPSHOT</version>
+  </parent>
+
+  <artifactId>camel-quartz</artifactId>
+  <name>Camel :: Quartz</name>
+  <description>Camel Quartz support</description>
+
+  <dependencies>
+
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>quartz</groupId>
+      <artifactId>quartz</artifactId>
+      <version>1.5.2</version>
+    </dependency>
+
+    <!-- testing -->
+    <dependency>
+      <groupId>org.apache.camel</groupId>
+      <artifactId>camel-core</artifactId>
+      <type>test-jar</type>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-logging</groupId>
+      <artifactId>commons-logging</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>log4j</groupId>
+      <artifactId>log4j</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+
+      <plugin>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <childDelegation>false</childDelegation>
+          <useFile>true</useFile>
+          <excludes>
+            <!-- TODO - FIXME ASAP -->
+            <exclude>**/JmsRouteUsingSpringWithAutoWireTest.*</exclude>
+          </excludes>
+        </configuration>
+      </plugin>
+
+    </plugins>
+  </build>
+</project>

Propchange: activemq/camel/trunk/components/camel-quartz/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java (added)
+++ activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java Wed May 23 07:57:12 2007
@@ -0,0 +1,35 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz;
+
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class CamelJob implements Job {
+    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");
+        }
+        component.onJobExecute(context);
+    }
+}
\ No newline at end of file

Propchange: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/CamelJob.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java (added)
+++ activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java Wed May 23 07:57:12 2007
@@ -0,0 +1,152 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * 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;
+import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.util.IntrospectionSupport;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.quartz.JobDetail;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.SchedulerFactory;
+import org.quartz.Trigger;
+import org.quartz.impl.StdSchedulerFactory;
+
+import java.util.Map;
+import java.net.URI;
+
+import com.sun.jndi.toolkit.url.Uri;
+
+/**
+ * A <a href="http://activemq.apache.org/camel/quartz.html">Quartz Component</a>
+ *
+ * @version $Revision:520964 $
+ */
+public class QuartzComponent extends DefaultComponent<QuartzExchange> {
+    private static final transient Log log = LogFactory.getLog(QuartzComponent.class);
+    private SchedulerFactory factory;
+    private Scheduler scheduler;
+    private Map<Trigger, JobDetail> triggers;
+
+    public QuartzComponent() {
+    }
+
+    public QuartzComponent(CamelContext context) {
+        super(context);
+    }
+
+    @Override
+    protected QuartzEndpoint createEndpoint(String uri, String remaining, Map parameters) throws Exception {
+        // lets split the remaining into a group/name
+        URI u = new URI(uri);
+        String name;
+        String group = "Camel";
+        String path = u.getPath();
+        if (path != null && path.length() > 1) {
+            if (path.startsWith("/")) {
+                path = path.substring(1);
+            }
+            name = path;
+            group = u.getHost();
+        }
+        else {
+            name = u.getHost();
+        }
+/*
+        String[] names = ObjectHelper.splitOnCharacter(remaining, "/", 2);
+        if (names[1] != null) {
+            group = names[0];
+            name = names[1];
+        }
+        else {
+            name = names[0];
+        }
+*/
+        QuartzEndpoint answer = new QuartzEndpoint(uri, this, getScheduler());
+        Trigger trigger = answer.getTrigger();
+        trigger.setName(name);
+        trigger.setGroup(group);
+
+        Map triggerParameters = IntrospectionSupport.extractProperties(parameters, "trigger.");
+        Map jobParameters = IntrospectionSupport.extractProperties(parameters, "job.");
+
+        IntrospectionSupport.setProperties(trigger, triggerParameters);
+        IntrospectionSupport.setProperties(answer.getJobDetail(), jobParameters);
+
+        return answer;
+    }
+
+    @Override
+    protected void doStart() throws Exception {
+        super.doStart();
+        getScheduler().start();
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        if (scheduler != null) {
+            scheduler.shutdown();
+        }
+        super.doStop();
+    }
+
+    // Properties
+    //-------------------------------------------------------------------------
+    public SchedulerFactory getFactory() {
+        if (factory == null) {
+            factory = createSchedulerFactory();
+        }
+        return factory;
+    }
+
+    public void setFactory(SchedulerFactory factory) {
+        this.factory = factory;
+    }
+
+    public Scheduler getScheduler() throws SchedulerException {
+        if (scheduler == null) {
+            scheduler = createScheduler();
+        }
+        return scheduler;
+    }
+
+    public void setScheduler(Scheduler scheduler) {
+        this.scheduler = scheduler;
+    }
+
+    public Map getTriggers() {
+        return triggers;
+    }
+
+    public void setTriggers(Map triggers) {
+        this.triggers = triggers;
+    }
+
+    // Implementation methods
+    //-------------------------------------------------------------------------
+    protected SchedulerFactory createSchedulerFactory() {
+        return new StdSchedulerFactory();
+    }
+
+    protected Scheduler createScheduler() throws SchedulerException {
+        return getFactory().getScheduler();
+    }
+}
\ No newline at end of file

Propchange: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzComponent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java (added)
+++ activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java Wed May 23 07:57:12 2007
@@ -0,0 +1,47 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz;
+
+import org.apache.camel.Processor;
+import org.apache.camel.impl.DefaultConsumer;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class QuartzConsumer extends DefaultConsumer<QuartzExchange> {
+    public QuartzConsumer(QuartzEndpoint endpoint, Processor processor) {
+        super(endpoint, processor);
+    }
+
+    @Override
+    public QuartzEndpoint getEndpoint() {
+        return (QuartzEndpoint) super.getEndpoint();
+    }
+
+    @Override
+    protected void doStart() throws Exception {
+        super.doStart();
+        getEndpoint().consumerStarted(this);
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        getEndpoint().consumerStopped(this);
+        super.doStop();
+    }
+}

Propchange: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzConsumer.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java (added)
+++ activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java Wed May 23 07:57:12 2007
@@ -0,0 +1,217 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz;
+
+import org.apache.camel.Processor;
+import org.apache.camel.Producer;
+import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.processor.loadbalancer.LoadBalancer;
+import org.apache.camel.processor.loadbalancer.RoundRobinLoadBalancer;
+import org.apache.camel.util.ObjectHelper;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.quartz.JobDetail;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.Trigger;
+import org.quartz.SimpleTrigger;
+
+import java.util.Date;
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * A <a href="http://activemq.apache.org/quartz.html">Quartz Endpoint</a>
+ *
+ * @version $Revision:520964 $
+ */
+public class QuartzEndpoint extends DefaultEndpoint<QuartzExchange> {
+    public static final String ENDPOINT_KEY = "org.apache.camel.quartz";
+    private static final transient Log log = LogFactory.getLog(QuartzEndpoint.class);
+    private Scheduler scheduler;
+    private LoadBalancer loadBalancer;
+    private Trigger trigger;
+    private JobDetail jobDetail;
+    private boolean started;
+
+    public QuartzEndpoint(String endpointUri, QuartzComponent component, Scheduler scheduler) {
+        super(endpointUri, component);
+        this.scheduler = scheduler;
+    }
+
+    public void addTriggers(Map<Trigger, JobDetail> triggerMap) throws SchedulerException {
+        if (triggerMap != null) {
+            Set<Map.Entry<Trigger, JobDetail>> entries = triggerMap.entrySet();
+            for (Map.Entry<Trigger, JobDetail> entry : entries) {
+                Trigger key = entry.getKey();
+                JobDetail value = entry.getValue();
+                ObjectHelper.notNull(key, "key");
+                ObjectHelper.notNull(value, "value");
+
+                addTrigger(key, value);
+            }
+        }
+    }
+
+    public void addTrigger(Trigger trigger, JobDetail detail) throws SchedulerException {
+        // lets default the trigger name to the job name
+        if (trigger.getName() == null) {
+            trigger.setName(detail.getName());
+        }
+        // lets default the trigger group to the job group
+        if (trigger.getGroup() == null) {
+            trigger.setGroup(detail.getGroup());
+        }
+        // default start time to now if not specified
+        if (trigger.getStartTime() == null) {
+            trigger.setStartTime(new Date());
+        }
+        detail.getJobDataMap().put(ENDPOINT_KEY, this);
+        Class jobClass = detail.getJobClass();
+        if (jobClass == null) {
+            detail.setJobClass(CamelJob.class);
+        }
+        if (detail.getName() == null) {
+            detail.setName(getEndpointUri());
+        }
+        getScheduler().scheduleJob(detail, trigger);
+    }
+
+    public void removeTrigger(Trigger trigger, JobDetail jobDetail) throws SchedulerException {
+        getScheduler().unscheduleJob(trigger.getName(), trigger.getGroup());
+    }
+
+    /**
+     * This method is invoked when a Quartz job is fired.
+     *
+     * @param jobExecutionContext the Quartz Job context
+     */
+    public void onJobExecute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+        if (log.isDebugEnabled()) {
+            log.debug("Firing Quartz Job with context: " + jobExecutionContext);
+        }
+        QuartzExchange exchange = createExchange(jobExecutionContext);
+        try {
+            getLoadBalancer().process(exchange);
+        }
+        catch (JobExecutionException e) {
+            throw e;
+        }
+        catch (Exception e) {
+            throw new JobExecutionException(e);
+        }
+    }
+
+    public QuartzExchange createExchange() {
+        return new QuartzExchange(getContext(), null);
+    }
+
+    public QuartzExchange createExchange(JobExecutionContext jobExecutionContext) {
+        return new QuartzExchange(getContext(), jobExecutionContext);
+    }
+
+    public Producer<QuartzExchange> createProducer() throws Exception {
+        throw new UnsupportedOperationException("You cannot send messages to this endpoint");
+    }
+
+    public QuartzConsumer createConsumer(Processor processor) throws Exception {
+        return new QuartzConsumer(this, processor);
+    }
+
+    // Properties
+    //-------------------------------------------------------------------------
+
+    @Override
+    public QuartzComponent getComponent() {
+        return (QuartzComponent) super.getComponent();
+    }
+
+    public boolean isSingleton() {
+        return true;
+    }
+
+    public Scheduler getScheduler() {
+        return scheduler;
+    }
+
+    public LoadBalancer getLoadBalancer() {
+        if (loadBalancer == null) {
+            loadBalancer = createLoadBalancer();
+        }
+        return loadBalancer;
+    }
+
+    public void setLoadBalancer(LoadBalancer loadBalancer) {
+        this.loadBalancer = loadBalancer;
+    }
+
+    public JobDetail getJobDetail() {
+        if (jobDetail == null) {
+            jobDetail = createJobDetail();
+        }
+        return jobDetail;
+    }
+
+    public void setJobDetail(JobDetail jobDetail) {
+        this.jobDetail = jobDetail;
+    }
+
+    public Trigger getTrigger() {
+        if (trigger == null) {
+            trigger = createTrigger();
+        }
+        return trigger;
+    }
+
+    public void setTrigger(Trigger trigger) {
+        this.trigger = trigger;
+    }
+
+    // Implementation methods
+    //-------------------------------------------------------------------------
+    public synchronized void consumerStarted(QuartzConsumer consumer) throws SchedulerException {
+        getLoadBalancer().addProcessor(consumer.getProcessor());
+
+        // if we have not yet added our default trigger, then lets do it
+        if (!started) {
+            addTrigger(getTrigger(), getJobDetail());
+            started = true;
+        }
+    }
+
+    public synchronized void consumerStopped(QuartzConsumer consumer) throws SchedulerException {
+        getLoadBalancer().removeProcessor(consumer.getProcessor());
+        if (getLoadBalancer().getProcessors().isEmpty() && started) {
+            removeTrigger(getTrigger(), getJobDetail());
+            started = false;
+        }
+    }
+
+    protected LoadBalancer createLoadBalancer() {
+        return new RoundRobinLoadBalancer();
+    }
+
+    protected JobDetail createJobDetail() {
+        return new JobDetail();
+    }
+
+    protected Trigger createTrigger() {
+        return new SimpleTrigger();
+    }
+}
\ No newline at end of file

Propchange: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzExchange.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzExchange.java?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzExchange.java (added)
+++ activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzExchange.java Wed May 23 07:57:12 2007
@@ -0,0 +1,41 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * 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;
+import org.apache.camel.impl.DefaultExchange;
+import org.quartz.JobExecutionContext;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class QuartzExchange extends DefaultExchange {
+    public QuartzExchange(CamelContext context, JobExecutionContext jobExecutionContext) {
+        super(context);
+        setIn(new QuartzMessage(this, jobExecutionContext));
+    }
+
+    @Override
+    public QuartzMessage getIn() {
+        return (QuartzMessage) super.getIn();
+    }
+
+    public JobExecutionContext getJobExecutionContext() {
+        return getIn().getJobExecutionContext();
+    }
+}

Propchange: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzExchange.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java (added)
+++ activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java Wed May 23 07:57:12 2007
@@ -0,0 +1,64 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz;
+
+import org.apache.camel.impl.DefaultMessage;
+import org.quartz.JobExecutionContext;
+import org.quartz.Trigger;
+
+import java.util.Map;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class QuartzMessage extends DefaultMessage {
+    private final JobExecutionContext jobExecutionContext;
+
+    public QuartzMessage(QuartzExchange exchange, JobExecutionContext jobExecutionContext) {
+        this.jobExecutionContext = jobExecutionContext;
+        setExchange(exchange);
+        setBody(jobExecutionContext.getJobDetail());
+    }
+
+    public JobExecutionContext getJobExecutionContext() {
+        return jobExecutionContext;
+    }
+
+    @Override
+    protected void populateInitialHeaders(Map<String, Object> map) {
+        super.populateInitialHeaders(map);
+        if (jobExecutionContext != null) {
+            map.put("calendar", jobExecutionContext.getCalendar());
+            map.put("fireTime", jobExecutionContext.getFireTime());
+            map.put("jobDetail", jobExecutionContext.getJobDetail());
+            map.put("jobInstance", jobExecutionContext.getJobInstance());
+            map.put("jobRunTime", jobExecutionContext.getJobRunTime());
+            map.put("mergedJobDataMap", jobExecutionContext.getMergedJobDataMap());
+            map.put("nextFireTime", jobExecutionContext.getNextFireTime());
+            map.put("previousFireTime", jobExecutionContext.getPreviousFireTime());
+            map.put("refireCount", jobExecutionContext.getRefireCount());
+            map.put("result", jobExecutionContext.getResult());
+            map.put("scheduledFireTime", jobExecutionContext.getScheduledFireTime());
+            map.put("scheduler", jobExecutionContext.getScheduler());
+            Trigger trigger = jobExecutionContext.getTrigger();
+            map.put("trigger", trigger);
+            map.put("triggerName", trigger.getName());
+            map.put("triggerGroup", trigger.getGroup());
+        }
+    }
+}

Propchange: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzMessage.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/package.html
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/package.html?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/package.html (added)
+++ activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/package.html Wed May 23 07:57:12 2007
@@ -0,0 +1,25 @@
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+   
+    http://www.apache.org/licenses/LICENSE-2.0
+   
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<html>
+<head>
+</head>
+<body>
+
+Defines the <a href="http://activemq.apache.org/camel/quartz.html">Quartz Component</a>
+
+</body>
+</html>

Propchange: activemq/camel/trunk/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/org/apache/camel/component/quartz
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/org/apache/camel/component/quartz?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/org/apache/camel/component/quartz (added)
+++ activemq/camel/trunk/components/camel-quartz/src/main/resources/META-INF/services/org/apache/camel/component/quartz Wed May 23 07:57:12 2007
@@ -0,0 +1 @@
+class=org.apache.camel.component.quartz.QuartzComponent

Added: activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java (added)
+++ activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java Wed May 23 07:57:12 2007
@@ -0,0 +1,52 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz;
+
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.Endpoint;
+import org.quartz.Trigger;
+import org.quartz.SimpleTrigger;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class QuartzEndpointConfigureTest extends ContextTestSupport {
+
+    public void testConfigureGroupAndName() throws Exception {
+        QuartzEndpoint endpoint = resolveMandatoryEndpoint("quartz://myGroup/myName?trigger.repeatCount=3");
+        Trigger trigger = endpoint.getTrigger();
+        assertEquals("getName()", "myName", trigger.getName());
+        assertEquals("getGroup()", "myGroup", trigger.getGroup());
+
+        SimpleTrigger simpleTrigger = assertIsInstanceOf(SimpleTrigger.class, trigger);
+        assertEquals("getRepeatCount()", 3, simpleTrigger.getRepeatCount());
+    }
+
+    public void testConfigureName() throws Exception {
+        QuartzEndpoint endpoint = resolveMandatoryEndpoint("quartz://myName");
+        Trigger trigger = endpoint.getTrigger();
+        assertEquals("getName()", "myName", trigger.getName());
+        assertEquals("getGroup()", "Camel", trigger.getGroup());
+    }
+
+    @Override
+    protected QuartzEndpoint resolveMandatoryEndpoint(String uri) {
+        Endpoint endpoint = super.resolveMandatoryEndpoint(uri);
+        return assertIsInstanceOf(QuartzEndpoint.class, endpoint);
+    }
+}
\ No newline at end of file

Propchange: activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzEndpointConfigureTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java (added)
+++ activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java Wed May 23 07:57:12 2007
@@ -0,0 +1,60 @@
+/**
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.quartz;
+
+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 java.util.List;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class QuartzRouteTest extends ContextTestSupport {
+    protected MockEndpoint resultEndpoint;
+
+    public void testSendAndReceiveMails() throws Exception {
+        resultEndpoint = (MockEndpoint) resolveMandatoryEndpoint("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 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
+            }
+        };
+    }
+}
\ No newline at end of file

Propchange: activemq/camel/trunk/components/camel-quartz/src/test/java/org/apache/camel/component/quartz/QuartzRouteTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: activemq/camel/trunk/components/camel-quartz/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-quartz/src/test/resources/log4j.properties?view=auto&rev=540969
==============================================================================
--- activemq/camel/trunk/components/camel-quartz/src/test/resources/log4j.properties (added)
+++ activemq/camel/trunk/components/camel-quartz/src/test/resources/log4j.properties Wed May 23 07:57:12 2007
@@ -0,0 +1,30 @@
+## ------------------------------------------------------------------------
+## Licensed to the Apache Software Foundation (ASF) under one or more
+## contributor license agreements.  See the NOTICE file distributed with
+## this work for additional information regarding copyright ownership.
+## The ASF licenses this file to You under the Apache License, Version 2.0
+## (the "License"); you may not use this file except in compliance with
+## the License.  You may obtain a copy of the License at
+##
+## http://www.apache.org/licenses/LICENSE-2.0
+##
+## Unless required by applicable law or agreed to in writing, software
+## distributed under the License is distributed on an "AS IS" BASIS,
+## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+## See the License for the specific language governing permissions and
+## limitations under the License.
+## ------------------------------------------------------------------------
+
+#
+# The logging properties used for eclipse testing, We want to see debug output on the console.
+#
+log4j.rootLogger=INFO, out
+
+log4j.logger.org.quartz=WARN
+#log4j.logger.org.apache.camel=DEBUG
+
+# CONSOLE appender not used by default
+log4j.appender.out=org.apache.log4j.ConsoleAppender
+log4j.appender.out.layout=org.apache.log4j.PatternLayout
+log4j.appender.out.layout.ConversionPattern=[%30.30t] %-30.30c{1} %-5p %m%n
+#log4j.appender.out.layout.ConversionPattern=%d [%-15.15t] %-5p %-30.30c{1} - %m%n

Propchange: activemq/camel/trunk/components/camel-quartz/src/test/resources/log4j.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: activemq/camel/trunk/components/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/pom.xml?view=diff&rev=540969&r1=540968&r2=540969
==============================================================================
--- activemq/camel/trunk/components/pom.xml (original)
+++ activemq/camel/trunk/components/pom.xml Wed May 23 07:57:12 2007
@@ -45,6 +45,7 @@
     <module>camel-jpa</module> 
     <module>camel-mail</module>
     <module>camel-mina</module>
+    <module>camel-quartz</module>
     <module>camel-rmi</module>
     <module>camel-saxon</module>
     <module>camel-script</module>

Modified: activemq/camel/trunk/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/pom.xml?view=diff&rev=540969&r1=540968&r2=540969
==============================================================================
--- activemq/camel/trunk/pom.xml (original)
+++ activemq/camel/trunk/pom.xml Wed May 23 07:57:12 2007
@@ -215,6 +215,11 @@
       </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
+        <artifactId>camel-quartz</artifactId>
+        <version>${camel-version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
         <artifactId>camel-rmi</artifactId>
         <version>${camel-version}</version>
       </dependency>