You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2012/06/16 13:53:50 UTC
svn commit: r1350911 - in /camel/branches/camel-2.8.x: ./
camel-core/src/main/java/org/apache/camel/
camel-core/src/main/java/org/apache/camel/builder/
camel-core/src/main/java/org/apache/camel/impl/
camel-core/src/main/java/org/apache/camel/processor/...
Author: davsclaus
Date: Sat Jun 16 11:53:49 2012
New Revision: 1350911
URL: http://svn.apache.org/viewvc?rev=1350911&view=rev
Log:
CAMEL-5372: Fixed issue with error handler thread pool for redelivery should be per camel context.
Added:
camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/issues/RedeliveryErrorHandlerAsyncDelayedTwoCamelContextIssueTest.java
- copied unchanged from r1350910, camel/branches/camel-2.9.x/camel-core/src/test/java/org/apache/camel/issues/RedeliveryErrorHandlerAsyncDelayedTwoCamelContextIssueTest.java
Modified:
camel/branches/camel-2.8.x/ (props changed)
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/CamelContext.java
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java
camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1350909
Merged /camel/branches/camel-2.9.x:r1350910
Propchange: camel/branches/camel-2.8.x/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/CamelContext.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/CamelContext.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/CamelContext.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/CamelContext.java Sat Jun 16 11:53:49 2012
@@ -20,6 +20,7 @@ import java.io.InputStream;
import java.util.Collection;
import java.util.List;
import java.util.Map;
+import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.camel.builder.ErrorHandlerBuilder;
@@ -707,6 +708,12 @@ public interface CamelContext extends Su
void setErrorHandlerBuilder(ErrorHandlerBuilder errorHandlerBuilder);
/**
+ * Gets the default shared thread pool for error handlers which
+ * leverages this for asynchronous redelivery tasks.
+ */
+ ScheduledExecutorService getErrorHandlerExecutorService();
+
+ /**
* Sets the data formats that can be referenced in the routes.
*
* @param dataFormats the data formats
Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java Sat Jun 16 11:53:49 2012
@@ -56,7 +56,7 @@ public class DeadLetterChannelBuilder ex
DeadLetterChannel answer = new DeadLetterChannel(routeContext.getCamelContext(), processor, getLogger(), getOnRedelivery(),
getRedeliveryPolicy(), getExceptionPolicyStrategy(), getFailureProcessor(), getDeadLetterUri(), isUseOriginalMessage(),
- getRetryWhilePolicy(routeContext.getCamelContext()), getExecutorServiceRef());
+ getRetryWhilePolicy(routeContext.getCamelContext()), getExecutorService(routeContext.getCamelContext()));
// configure error handler before we can use it
configure(answer);
return answer;
Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java Sat Jun 16 11:53:49 2012
@@ -16,6 +16,8 @@
*/
package org.apache.camel.builder;
+import java.util.concurrent.ScheduledExecutorService;
+
import org.apache.camel.CamelContext;
import org.apache.camel.Endpoint;
import org.apache.camel.Expression;
@@ -24,11 +26,11 @@ import org.apache.camel.Predicate;
import org.apache.camel.Processor;
import org.apache.camel.processor.CamelLogger;
import org.apache.camel.processor.DefaultErrorHandler;
-import org.apache.camel.processor.ErrorHandlerSupport;
import org.apache.camel.processor.RedeliveryPolicy;
-import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
+import org.apache.camel.spi.ExecutorServiceStrategy;
import org.apache.camel.spi.Language;
import org.apache.camel.spi.RouteContext;
+import org.apache.camel.spi.ThreadPoolProfile;
import org.slf4j.LoggerFactory;
import static org.apache.camel.builder.PredicateBuilder.toPredicate;
@@ -51,13 +53,14 @@ public class DefaultErrorHandlerBuilder
protected boolean useOriginalMessage;
protected boolean asyncDelayedRedelivery;
protected String executorServiceRef;
+ protected ScheduledExecutorService executorService;
public DefaultErrorHandlerBuilder() {
}
public Processor createErrorHandler(RouteContext routeContext, Processor processor) throws Exception {
DefaultErrorHandler answer = new DefaultErrorHandler(routeContext.getCamelContext(), processor, getLogger(), getOnRedelivery(),
- getRedeliveryPolicy(), getExceptionPolicyStrategy(), getRetryWhilePolicy(routeContext.getCamelContext()), getExecutorServiceRef());
+ getRedeliveryPolicy(), getExceptionPolicyStrategy(), getRetryWhilePolicy(routeContext.getCamelContext()), getExecutorService(routeContext.getCamelContext()));
// configure error handler before we can use it
configure(answer);
return answer;
@@ -67,7 +70,6 @@ public class DefaultErrorHandlerBuilder
return false;
}
-
// Builder methods
// -------------------------------------------------------------------------
public DefaultErrorHandlerBuilder backOffMultiplier(double backOffMultiplier) {
@@ -404,6 +406,27 @@ public class DefaultErrorHandlerBuilder
return new CamelLogger(LoggerFactory.getLogger(DefaultErrorHandler.class), LoggingLevel.ERROR);
}
+ protected synchronized ScheduledExecutorService getExecutorService(CamelContext camelContext) {
+ if (executorService == null || executorService.isShutdown()) {
+ // camel context will shutdown the executor when it shutdown so no need to shut it down when stopping
+ if (executorServiceRef != null) {
+ executorService = camelContext.getRegistry().lookup(executorServiceRef, ScheduledExecutorService.class);
+ if (executorService == null) {
+ ExecutorServiceStrategy manager = camelContext.getExecutorServiceStrategy();
+ ThreadPoolProfile profile = manager.getThreadPoolProfile(executorServiceRef);
+ executorService = manager.newScheduledThreadPool(this, executorServiceRef, profile.getPoolSize());
+ }
+ if (executorService == null) {
+ throw new IllegalArgumentException("ExecutorServiceRef " + executorServiceRef + " not found in registry.");
+ }
+ } else {
+ // use default shared thread pool for error handlers
+ executorService = camelContext.getErrorHandlerExecutorService();
+ }
+ }
+ return executorService;
+ }
+
@Override
public String toString() {
return "DefaultErrorHandlerBuilder";
Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java Sat Jun 16 11:53:49 2012
@@ -31,6 +31,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
+import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@@ -109,6 +110,7 @@ import org.apache.camel.spi.RouteContext
import org.apache.camel.spi.RouteStartupOrder;
import org.apache.camel.spi.ServicePool;
import org.apache.camel.spi.ShutdownStrategy;
+import org.apache.camel.spi.ThreadPoolProfile;
import org.apache.camel.spi.TypeConverterRegistry;
import org.apache.camel.spi.UuidGenerator;
import org.apache.camel.util.CamelContextHelper;
@@ -170,6 +172,7 @@ public class DefaultCamelContext extends
private Boolean useBreadcrumb = Boolean.TRUE;
private Long delay;
private ErrorHandlerBuilder errorHandlerBuilder;
+ private ScheduledExecutorService errorHandlerExecutorService;
private Map<String, DataFormatDefinition> dataFormats = new HashMap<String, DataFormatDefinition>();
private DataFormatResolver dataFormatResolver = new DefaultDataFormatResolver();
private Map<String, String> properties = new HashMap<String, String>();
@@ -1211,6 +1214,10 @@ public class DefaultCamelContext extends
this.errorHandlerBuilder = errorHandlerBuilder;
}
+ public ScheduledExecutorService getErrorHandlerExecutorService() {
+ return errorHandlerExecutorService;
+ }
+
public void setProducerServicePool(ServicePool<Endpoint, Producer> producerServicePool) {
this.producerServicePool = producerServicePool;
}
@@ -1456,6 +1463,11 @@ public class DefaultCamelContext extends
startServices(components.values());
+ // setup default thread pool for error handler
+ if (errorHandlerExecutorService == null || errorHandlerExecutorService.isShutdown()) {
+ errorHandlerExecutorService = getExecutorServiceStrategy().newScheduledThreadPool(this, "ErrorHandlerRedeliveryTask");
+ }
+
// start the route definitions before the routes is started
startRouteDefinitions(routeDefinitions);
Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java Sat Jun 16 11:53:49 2012
@@ -16,6 +16,8 @@
*/
package org.apache.camel.processor;
+import java.util.concurrent.ScheduledExecutorService;
+
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Predicate;
@@ -47,12 +49,13 @@ public class DeadLetterChannel extends R
* @param deadLetterUri an optional uri for logging purpose
* @param useOriginalBodyPolicy should the original IN body be moved to the dead letter queue or the current exchange IN body?
* @param retryWhile retry while
- * @param executorServiceRef reference to a {@link java.util.concurrent.ScheduledExecutorService} to be used for redelivery thread pool. Can be <tt>null</tt>.
+ * @param executorService the {@link java.util.concurrent.ScheduledExecutorService} to be used for redelivery thread pool. Can be <tt>null</tt>.
*/
public DeadLetterChannel(CamelContext camelContext, Processor output, CamelLogger logger, Processor redeliveryProcessor, RedeliveryPolicy redeliveryPolicy,
- ExceptionPolicyStrategy exceptionPolicyStrategy, Processor deadLetter, String deadLetterUri, boolean useOriginalBodyPolicy, Predicate retryWhile, String executorServiceRef) {
+ ExceptionPolicyStrategy exceptionPolicyStrategy, Processor deadLetter, String deadLetterUri, boolean useOriginalBodyPolicy, Predicate retryWhile,
+ ScheduledExecutorService executorService) {
- super(camelContext, output, logger, redeliveryProcessor, redeliveryPolicy, deadLetter, deadLetterUri, useOriginalBodyPolicy, retryWhile, executorServiceRef);
+ super(camelContext, output, logger, redeliveryProcessor, redeliveryPolicy, deadLetter, deadLetterUri, useOriginalBodyPolicy, retryWhile, executorService);
setExceptionPolicy(exceptionPolicyStrategy);
}
Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/DefaultErrorHandler.java Sat Jun 16 11:53:49 2012
@@ -16,6 +16,8 @@
*/
package org.apache.camel.processor;
+import java.util.concurrent.ScheduledExecutorService;
+
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
import org.apache.camel.Predicate;
@@ -39,12 +41,12 @@ public class DefaultErrorHandler extends
* @param redeliveryPolicy policy for redelivery
* @param exceptionPolicyStrategy strategy for onException handling
* @param retryWhile retry while
- * @param executorServiceRef reference to a {@link java.util.concurrent.ScheduledExecutorService} to be used for redelivery thread pool. Can be <tt>null</tt>.
+ * @param executorService the {@link java.util.concurrent.ScheduledExecutorService} to be used for redelivery thread pool. Can be <tt>null</tt>.
*/
public DefaultErrorHandler(CamelContext camelContext, Processor output, CamelLogger logger, Processor redeliveryProcessor,
- RedeliveryPolicy redeliveryPolicy, ExceptionPolicyStrategy exceptionPolicyStrategy, Predicate retryWhile, String executorServiceRef) {
+ RedeliveryPolicy redeliveryPolicy, ExceptionPolicyStrategy exceptionPolicyStrategy, Predicate retryWhile, ScheduledExecutorService executorService) {
- super(camelContext, output, logger, redeliveryProcessor, redeliveryPolicy, null, null, false, retryWhile, executorServiceRef);
+ super(camelContext, output, logger, redeliveryProcessor, redeliveryPolicy, null, null, false, retryWhile, executorService);
setExceptionPolicy(exceptionPolicyStrategy);
}
Modified: camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryErrorHandler.java Sat Jun 16 11:53:49 2012
@@ -51,8 +51,7 @@ import org.apache.camel.util.ServiceHelp
*/
public abstract class RedeliveryErrorHandler extends ErrorHandlerSupport implements AsyncProcessor {
- private static ScheduledExecutorService executorService;
- protected final String executorServiceRef;
+ protected ScheduledExecutorService executorService;
protected final CamelContext camelContext;
protected final Processor deadLetter;
protected final String deadLetterUri;
@@ -175,7 +174,7 @@ public abstract class RedeliveryErrorHan
public RedeliveryErrorHandler(CamelContext camelContext, Processor output, CamelLogger logger,
Processor redeliveryProcessor, RedeliveryPolicy redeliveryPolicy, Processor deadLetter,
- String deadLetterUri, boolean useOriginalMessagePolicy, Predicate retryWhile, String executorServiceRef) {
+ String deadLetterUri, boolean useOriginalMessagePolicy, Predicate retryWhile, ScheduledExecutorService executorService) {
ObjectHelper.notNull(camelContext, "CamelContext", this);
ObjectHelper.notNull(redeliveryPolicy, "RedeliveryPolicy", this);
@@ -190,7 +189,7 @@ public abstract class RedeliveryErrorHan
this.deadLetterUri = deadLetterUri;
this.useOriginalMessagePolicy = useOriginalMessagePolicy;
this.retryWhilePolicy = retryWhile;
- this.executorServiceRef = executorServiceRef;
+ this.executorService = executorService;
}
public boolean supportTransacted() {
@@ -586,7 +585,7 @@ public abstract class RedeliveryErrorHan
// clear rollback flags
exchange.setProperty(Exchange.ROLLBACK_ONLY, null);
- // TODO: We may want to store these as state on RedelieryData so we keep them in case end user messes with Exchange
+ // TODO: We may want to store these as state on RedeliveryData so we keep them in case end user messes with Exchange
// and then put these on the exchange when doing a redelivery / fault processor
// preserve these headers
@@ -1020,17 +1019,10 @@ public abstract class RedeliveryErrorHan
@Override
protected void doStart() throws Exception {
ServiceHelper.startServices(output, outputAsync, deadLetter);
- // use a shared scheduler
- if (executorService == null || executorService.isShutdown()) {
- // camel context will shutdown the executor when it shutdown so no need to shut it down when stopping
- if (executorServiceRef != null) {
- executorService = camelContext.getExecutorServiceStrategy().lookupScheduled(this, "ErrorHandlerRedeliveryTask", executorServiceRef);
- if (executorService == null) {
- throw new IllegalArgumentException("ExecutorServiceRef " + executorServiceRef + " not found in registry.");
- }
- } else {
- executorService = camelContext.getExecutorServiceStrategy().newScheduledThreadPool(this, "ErrorHandlerRedeliveryTask");
- }
+
+ if (executorService == null) {
+ // use default shared executor service
+ executorService = camelContext.getErrorHandlerExecutorService();
}
// determine if redeliver is enabled or not
Modified: camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java (original)
+++ camel/branches/camel-2.8.x/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java Sat Jun 16 11:53:49 2012
@@ -16,6 +16,9 @@
*/
package org.apache.camel.impl;
+import java.util.Arrays;
+import java.util.List;
+
import org.apache.camel.CamelContext;
import org.apache.camel.Component;
import org.apache.camel.TestSupport;
@@ -50,33 +53,12 @@ public class MultipleLifecycleStrategyTe
context.stop();
- assertEquals(12, dummy1.getEvents().size());
- assertEquals(12, dummy2.getEvents().size());
+ List<String> expectedEvents = Arrays.asList("onContextStart", "onServiceAdd", "onServiceAdd", "onServiceAdd",
+ "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", "onThreadPoolAdd", "onComponentAdd", "onEndpointAdd",
+ "onComponentRemove", "onContextStop");
- assertEquals("onContextStart", dummy1.getEvents().get(0));
- assertEquals("onContextStart", dummy2.getEvents().get(0));
- assertEquals("onServiceAdd", dummy1.getEvents().get(1));
- assertEquals("onServiceAdd", dummy2.getEvents().get(1));
- assertEquals("onServiceAdd", dummy1.getEvents().get(2));
- assertEquals("onServiceAdd", dummy2.getEvents().get(2));
- assertEquals("onServiceAdd", dummy1.getEvents().get(3));
- assertEquals("onServiceAdd", dummy2.getEvents().get(3));
- assertEquals("onServiceAdd", dummy1.getEvents().get(4));
- assertEquals("onServiceAdd", dummy2.getEvents().get(4));
- assertEquals("onServiceAdd", dummy1.getEvents().get(5));
- assertEquals("onServiceAdd", dummy2.getEvents().get(5));
- assertEquals("onServiceAdd", dummy1.getEvents().get(6));
- assertEquals("onServiceAdd", dummy2.getEvents().get(6));
- assertEquals("onServiceAdd", dummy1.getEvents().get(7));
- assertEquals("onServiceAdd", dummy2.getEvents().get(7));
- assertEquals("onComponentAdd", dummy1.getEvents().get(8));
- assertEquals("onComponentAdd", dummy2.getEvents().get(8));
- assertEquals("onEndpointAdd", dummy1.getEvents().get(9));
- assertEquals("onEndpointAdd", dummy2.getEvents().get(9));
- assertEquals("onComponentRemove", dummy1.getEvents().get(10));
- assertEquals("onComponentRemove", dummy2.getEvents().get(10));
- assertEquals("onContextStop", dummy1.getEvents().get(11));
- assertEquals("onContextStop", dummy2.getEvents().get(11));
+ assertEquals(expectedEvents, dummy1.getEvents());
+ assertEquals(expectedEvents, dummy2.getEvents());
}
}
Modified: camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java (original)
+++ camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandler.java Sat Jun 16 11:53:49 2012
@@ -16,6 +16,8 @@
*/
package org.apache.camel.spring.spi;
+import java.util.concurrent.ScheduledExecutorService;
+
import org.apache.camel.AsyncCallback;
import org.apache.camel.CamelContext;
import org.apache.camel.Exchange;
@@ -53,13 +55,13 @@ public class TransactionErrorHandler ext
* @param exceptionPolicyStrategy strategy for onException handling
* @param transactionTemplate the transaction template
* @param retryWhile retry while
- * @param executorServiceRef reference to a {@link java.util.concurrent.ScheduledExecutorService} to be used for redelivery thread pool. Can be <tt>null</tt>.
+ * @param executorService a {@link java.util.concurrent.ScheduledExecutorService} to be used for redelivery thread pool. Can be <tt>null</tt>.
*/
public TransactionErrorHandler(CamelContext camelContext, Processor output, CamelLogger logger,
Processor redeliveryProcessor, RedeliveryPolicy redeliveryPolicy, ExceptionPolicyStrategy exceptionPolicyStrategy,
- TransactionTemplate transactionTemplate, Predicate retryWhile, String executorServiceRef) {
+ TransactionTemplate transactionTemplate, Predicate retryWhile, ScheduledExecutorService executorService) {
- super(camelContext, output, logger, redeliveryProcessor, redeliveryPolicy, null, null, false, retryWhile, executorServiceRef);
+ super(camelContext, output, logger, redeliveryProcessor, redeliveryPolicy, null, null, false, retryWhile, executorService);
setExceptionPolicy(exceptionPolicyStrategy);
this.transactionTemplate = transactionTemplate;
this.transactionKey = ObjectHelper.getIdentityHashCode(transactionTemplate);
Modified: camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java?rev=1350911&r1=1350910&r2=1350911&view=diff
==============================================================================
--- camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java (original)
+++ camel/branches/camel-2.8.x/components/camel-spring/src/main/java/org/apache/camel/spring/spi/TransactionErrorHandlerBuilder.java Sat Jun 16 11:53:49 2012
@@ -108,7 +108,7 @@ public class TransactionErrorHandlerBuil
TransactionErrorHandler answer = new TransactionErrorHandler(routeContext.getCamelContext(), processor,
getLogger(), getOnRedelivery(), getRedeliveryPolicy(), getExceptionPolicyStrategy(), transactionTemplate,
- getRetryWhilePolicy(routeContext.getCamelContext()), getExecutorServiceRef());
+ getRetryWhilePolicy(routeContext.getCamelContext()), getExecutorService(routeContext.getCamelContext()));
// configure error handler before we can use it
configure(answer);
return answer;