You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2007/04/04 18:34:37 UTC

svn commit: r525552 - in /activemq/camel/trunk: camel-core/src/main/java/org/apache/camel/ camel-core/src/main/java/org/apache/camel/impl/ camel-jpa/src/main/java/org/apache/camel/component/jpa/

Author: chirino
Date: Wed Apr  4 09:34:34 2007
New Revision: 525552

URL: http://svn.apache.org/viewvc?view=rev&rev=525552
Log:
Eliminate the Endpoint.getExecutorService() leaky abstraction.

Modified:
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
    activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PollingConsumer.java
    activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
    activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java?view=diff&rev=525552&r1=525551&r2=525552
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/Endpoint.java Wed Apr  4 09:34:34 2007
@@ -16,7 +16,6 @@
  */
 package org.apache.camel;
 
-import java.util.concurrent.ScheduledExecutorService;
 
 /**
  * Implements the <a href="http://activemq.apache.org/camel/message-endpoint.html">Message Endpoint</a>
@@ -63,10 +62,4 @@
      */
     Consumer<E> createConsumer(Processor<E> processor) throws Exception;
 
-    /**
-     * Returns the executor for this endpoint which typically defaults to the components executor
-     *
-     * @return the executor for this endpoint
-     */
-    ScheduledExecutorService getExecutorService();
 }

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java?view=diff&rev=525552&r1=525551&r2=525552
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/DefaultEndpoint.java Wed Apr  4 09:34:34 2007
@@ -28,7 +28,7 @@
 import java.util.concurrent.ScheduledExecutorService;
 
 /**
- * A default endpoint useful for implementation inheritence
+ * A default endpoint useful for implementation inheritance
  * 
  * @version $Revision$
  */

Modified: activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PollingConsumer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PollingConsumer.java?view=diff&rev=525552&r1=525551&r2=525552
==============================================================================
--- activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PollingConsumer.java (original)
+++ activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/PollingConsumer.java Wed Apr  4 09:34:34 2007
@@ -35,14 +35,19 @@
 public abstract class PollingConsumer<E extends Exchange> extends DefaultConsumer<E> implements Runnable {
     private static final transient Log log = LogFactory.getLog(PollingConsumer.class);
 
+    private final ScheduledExecutorService executor;
     private long initialDelay = 1000;
     private long delay = 500;
     private TimeUnit timeUnit = TimeUnit.MILLISECONDS;
     private boolean useFixedDelay;
     private ScheduledFuture<?> future;
 
-    public PollingConsumer(Endpoint<E> endpoint, Processor<E> processor) {
+    public PollingConsumer(Endpoint<E> endpoint, Processor<E> processor, ScheduledExecutorService executor) {
         super(endpoint, processor);
+        this.executor=executor;
+        
+        if( executor == null )
+        	throw new IllegalArgumentException("A non null ScheduledExecutorService must be provided.");
     }
 
     /**
@@ -104,7 +109,6 @@
 
     @Override
     protected void doStart() throws Exception {
-        ScheduledExecutorService executor = getEndpoint().getExecutorService();
         if (isUseFixedDelay()) {
             future = executor.scheduleWithFixedDelay(this, getInitialDelay(), getDelay(), getTimeUnit());
         }

Modified: activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java?view=diff&rev=525552&r1=525551&r2=525552
==============================================================================
--- activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java (original)
+++ activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaConsumer.java Wed Apr  4 09:34:34 2007
@@ -17,6 +17,15 @@
  */
 package org.apache.camel.component.jpa;
 
+import java.lang.reflect.Method;
+import java.util.List;
+import java.util.concurrent.ScheduledExecutorService;
+
+import javax.persistence.EntityManager;
+import javax.persistence.LockModeType;
+import javax.persistence.PersistenceException;
+import javax.persistence.Query;
+
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.impl.PollingConsumer;
@@ -25,13 +34,6 @@
 import org.apache.commons.logging.LogFactory;
 import org.springframework.orm.jpa.JpaCallback;
 
-import javax.persistence.EntityManager;
-import javax.persistence.LockModeType;
-import javax.persistence.PersistenceException;
-import javax.persistence.Query;
-import java.lang.reflect.Method;
-import java.util.List;
-
 /**
  * @version $Revision$
  */
@@ -45,8 +47,8 @@
     private String namedQuery;
     private String nativeQuery;
 
-    public JpaConsumer(JpaEndpoint endpoint, Processor<Exchange> processor) {
-        super(endpoint, processor);
+    public JpaConsumer(JpaEndpoint endpoint, Processor<Exchange> processor, ScheduledExecutorService executor) {
+        super(endpoint, processor, executor);
         this.endpoint = endpoint;
         this.template = endpoint.createTransactionStrategy();
     }

Modified: activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java?view=diff&rev=525552&r1=525551&r2=525552
==============================================================================
--- activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java (original)
+++ activemq/camel/trunk/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java Wed Apr  4 09:34:34 2007
@@ -61,7 +61,7 @@
     }
 
     public Consumer<Exchange> createConsumer(Processor<Exchange> processor) throws Exception {
-        JpaConsumer consumer = new JpaConsumer(this, processor);
+        JpaConsumer consumer = new JpaConsumer(this, processor, getExecutorService());
         if (consumerProperties != null) {
             IntrospectionSupport.setProperties(consumer, consumerProperties);
         }