Repository: camel
Updated Branches:
  refs/heads/master 984de3dd7 -> 259648fc3


CAMEL-8229: Moved some impl classes to support.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/259648fc
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/259648fc
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/259648fc

Branch: refs/heads/master
Commit: 259648fc30a528cdbad1e8416f49725306a80f0e
Parents: 984de3d
Author: Claus Ibsen <davscl...@apache.org>
Authored: Fri Feb 6 13:00:22 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Feb 6 13:00:22 2015 +0100

----------------------------------------------------------------------
 .../component/file/GenericFileOnCompletion.java |   2 +-
 .../camel/component/seda/SedaConsumer.java      |   2 +-
 .../BridgeExceptionHandlerToErrorHandler.java   |   1 +
 .../org/apache/camel/impl/DefaultConsumer.java  |   1 +
 .../camel/impl/EventDrivenPollingConsumer.java  |   1 +
 .../camel/impl/LoggingExceptionHandler.java     |  87 ++---------
 .../camel/impl/PollingConsumerSupport.java      |   1 +
 .../apache/camel/impl/RoutePolicySupport.java   | 132 +----------------
 .../impl/ThrottlingInflightRoutePolicy.java     |   1 +
 .../apache/camel/processor/BatchProcessor.java  |   2 +-
 .../camel/processor/StreamResequencer.java      |   2 +-
 .../processor/aggregate/AggregateProcessor.java |   2 +-
 .../camel/support/LoggingExceptionHandler.java  | 121 +++++++++++++++
 .../camel/support/RoutePolicySupport.java       | 147 +++++++++++++++++++
 .../file/FileConsumerSuspendAndResumeTest.java  |   2 +-
 .../component/file/FileConsumerSuspendTest.java |   2 +-
 .../camel/impl/RoutePolicyCallbackTest.java     |   1 +
 .../camel/impl/RoutePolicyFactoryTest.java      |   1 +
 .../camel/impl/RoutePolicySupportTest.java      |   1 +
 .../management/ManagedSuspendedServiceTest.java |   2 +-
 .../camel/processor/CustomRoutePolicyTest.java  |   2 +-
 .../CustomScheduledRoutePolicyTest.java         |   2 +-
 .../apache/camel/processor/FlipRoutePolicy.java |   2 +-
 .../camel/processor/RoutePoliciesRefTest.java   |   2 +-
 .../camel/processor/RoutePoliciesTest.java      |   2 +-
 .../AsyncEndpointCustomRoutePolicyTest.java     |   2 +-
 .../component/disruptor/DisruptorConsumer.java  |   2 +-
 .../jms/DefaultSpringErrorHandler.java          |   7 +-
 .../camel/component/jms/JmsConfiguration.java   |   2 +-
 .../component/jms/reply/QueueReplyManager.java  |   2 +-
 .../jms/reply/TemporaryQueueReplyManager.java   |   2 +-
 .../metrics/routepolicy/MetricsRoutePolicy.java |   2 +-
 .../quartz/ScheduledRoutePolicy.java            |   2 +-
 .../quartz2/ScheduledRoutePolicy.java           |   2 +-
 .../routebox/RouteboxServiceSupport.java        |   4 +-
 .../processor/SpringRoutePoliciesTest.java      |   2 +-
 .../zookeeper/policy/ZooKeeperRoutePolicy.java  |   2 +-
 37 files changed, 317 insertions(+), 235 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/component/file/GenericFileOnCompletion.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileOnCompletion.java
 
b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileOnCompletion.java
index db16a66..1916493 100644
--- 
a/camel-core/src/main/java/org/apache/camel/component/file/GenericFileOnCompletion.java
+++ 
b/camel-core/src/main/java/org/apache/camel/component/file/GenericFileOnCompletion.java
@@ -17,7 +17,7 @@
 package org.apache.camel.component.file;
 
 import org.apache.camel.Exchange;
-import org.apache.camel.impl.LoggingExceptionHandler;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.Synchronization;
 import org.apache.camel.util.ObjectHelper;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java 
b/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
index d0f47bd..77a1698 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaConsumer.java
@@ -31,7 +31,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.ShutdownRunningTask;
 import org.apache.camel.SuspendableService;
-import org.apache.camel.impl.LoggingExceptionHandler;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.processor.MulticastProcessor;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.ShutdownAware;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/impl/BridgeExceptionHandlerToErrorHandler.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/BridgeExceptionHandlerToErrorHandler.java
 
b/camel-core/src/main/java/org/apache/camel/impl/BridgeExceptionHandlerToErrorHandler.java
index b6bbadc..b77ecc7 100644
--- 
a/camel-core/src/main/java/org/apache/camel/impl/BridgeExceptionHandlerToErrorHandler.java
+++ 
b/camel-core/src/main/java/org/apache/camel/impl/BridgeExceptionHandlerToErrorHandler.java
@@ -20,6 +20,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.UnitOfWork;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.util.UnitOfWorkHelper;
 
 /**

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/impl/DefaultConsumer.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/DefaultConsumer.java 
b/camel-core/src/main/java/org/apache/camel/impl/DefaultConsumer.java
index 30a25f1..a0b55be 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultConsumer.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultConsumer.java
@@ -26,6 +26,7 @@ import org.apache.camel.Route;
 import org.apache.camel.RouteAware;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.UnitOfWork;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.AsyncProcessorConverterHelper;
 import org.apache.camel.util.ServiceHelper;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java
 
b/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java
index 9d944ad..764882e 100644
--- 
a/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java
+++ 
b/camel-core/src/main/java/org/apache/camel/impl/EventDrivenPollingConsumer.java
@@ -29,6 +29,7 @@ import org.apache.camel.IsSingleton;
 import org.apache.camel.PollingConsumerPollingStrategy;
 import org.apache.camel.Processor;
 import org.apache.camel.spi.ExceptionHandler;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.util.ServiceHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java 
b/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
index ba3fc28..bb75282 100644
--- 
a/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
+++ 
b/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
@@ -17,105 +17,36 @@
 package org.apache.camel.impl;
 
 import org.apache.camel.CamelContext;
-import org.apache.camel.CamelExchangeException;
-import org.apache.camel.Exchange;
 import org.apache.camel.LoggingLevel;
-import org.apache.camel.RollbackExchangeException;
-import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.util.CamelLogger;
-import org.slf4j.LoggerFactory;
 
 /**
- * A default implementation of {@link ExceptionHandler} which uses a {@link 
org.apache.camel.util.CamelLogger} to
- * log the exception.
- * <p/>
- * This implementation will by default log the exception with stack trace at 
WARN level.
- * <p/>
- * This implementation honors the {@link 
org.apache.camel.impl.DefaultShutdownStrategy#isSuppressLoggingOnTimeout()}
- * option to avoid logging if the logging should be suppressed.
- *
- * @version 
+ * @deprecated use {@link org.apache.camel.support.LoggingExceptionHandler}
  */
-public class LoggingExceptionHandler implements ExceptionHandler {
-    private final CamelLogger logger;
-    private final CamelContext camelContext;
+@Deprecated
+public class LoggingExceptionHandler extends 
org.apache.camel.support.LoggingExceptionHandler {
 
-    @Deprecated
     public LoggingExceptionHandler(Class<?> ownerType) {
-        this(null, new CamelLogger(LoggerFactory.getLogger(ownerType), 
LoggingLevel.WARN));
+        super(ownerType);
     }
 
     public LoggingExceptionHandler(CamelContext camelContext, Class<?> 
ownerType) {
-        this(camelContext, new CamelLogger(LoggerFactory.getLogger(ownerType), 
LoggingLevel.WARN));
+        super(camelContext, ownerType);
     }
 
-    @Deprecated
     public LoggingExceptionHandler(Class<?> ownerType, LoggingLevel level) {
-        this(null, new CamelLogger(LoggerFactory.getLogger(ownerType), level));
+        super(ownerType, level);
     }
 
     public LoggingExceptionHandler(CamelContext camelContext, Class<?> 
ownerType, LoggingLevel level) {
-        this(camelContext, new CamelLogger(LoggerFactory.getLogger(ownerType), 
level));
+        super(camelContext, ownerType, level);
     }
 
-    @Deprecated
     public LoggingExceptionHandler(CamelLogger logger) {
-        this(null, logger);
+        super(logger);
     }
 
     public LoggingExceptionHandler(CamelContext camelContext, CamelLogger 
logger) {
-        this.camelContext = camelContext;
-        this.logger = logger;
-    }
-
-    public void handleException(Throwable exception) {
-        handleException(null, null, exception);
-    }
-
-    public void handleException(String message, Throwable exception) {
-        handleException(message, null, exception);
-    }
-
-    public void handleException(String message, Exchange exchange, Throwable 
exception) {
-        try {
-            if (!isSuppressLogging()) {
-                String msg = 
CamelExchangeException.createExceptionMessage(message, exchange, exception);
-                if (isCausedByRollbackExchangeException(exception)) {
-                    // do not log stack trace for intended rollbacks
-                    logger.log(msg);
-                } else {
-                    if (exception != null) {
-                        logger.log(msg, exception);
-                    } else {
-                        logger.log(msg);
-                    }
-                }
-            }
-        } catch (Throwable e) {
-            // the logging exception handler must not cause new exceptions to 
occur
-        }
-    }
-
-    protected boolean isCausedByRollbackExchangeException(Throwable exception) 
{
-        if (exception == null) {
-            return false;
-        }
-        if (exception instanceof RollbackExchangeException) {
-            return true;
-        } else if (exception.getCause() != null) {
-            // recursive children
-            return isCausedByRollbackExchangeException(exception.getCause());
-        }
-
-        return false;
-    }
-
-    protected boolean isSuppressLogging() {
-        if (camelContext != null) {
-            return (camelContext.getStatus().isStopping() || 
camelContext.getStatus().isStopped())
-                    && camelContext.getShutdownStrategy().hasTimeoutOccurred() 
&& camelContext.getShutdownStrategy().isSuppressLoggingOnTimeout();
-        } else {
-            return false;
-        }
+        super(camelContext, logger);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/impl/PollingConsumerSupport.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/PollingConsumerSupport.java 
b/camel-core/src/main/java/org/apache/camel/impl/PollingConsumerSupport.java
index 95e0a75..1890d3c 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/PollingConsumerSupport.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/PollingConsumerSupport.java
@@ -19,6 +19,7 @@ package org.apache.camel.impl;
 import org.apache.camel.Endpoint;
 import org.apache.camel.PollingConsumer;
 import org.apache.camel.spi.ExceptionHandler;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.support.ServiceSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java 
b/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java
index c76b4e2..30b2e43 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/RoutePolicySupport.java
@@ -16,135 +16,9 @@
  */
 package org.apache.camel.impl;
 
-import java.util.concurrent.TimeUnit;
-
-import org.apache.camel.Consumer;
-import org.apache.camel.Exchange;
-import org.apache.camel.Route;
-import org.apache.camel.spi.ExceptionHandler;
-import org.apache.camel.spi.RoutePolicy;
-import org.apache.camel.support.ServiceSupport;
-import org.apache.camel.util.ServiceHelper;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 /**
- * A base class for developing custom {@link RoutePolicy} implementations.
- *
- * @version 
+ * @deprecated use {@link org.apache.camel.support.RoutePolicySupport}
  */
-public abstract class RoutePolicySupport extends ServiceSupport implements 
RoutePolicy {
-
-    // TODO: Move to support package
-
-    protected final Logger log = LoggerFactory.getLogger(getClass());
-    private ExceptionHandler exceptionHandler;
-
-    public void onInit(Route route) {
-        if (exceptionHandler == null) {
-            exceptionHandler = new 
LoggingExceptionHandler(route.getRouteContext().getCamelContext(), getClass());
-        }
-    }
-
-    public void onRemove(Route route) {
-        // noop
-    }
-
-    @Override
-    public void onStart(Route route) {
-        // noop
-    }
-
-    @Override
-    public void onStop(Route route) {
-        // noop
-    }
-
-    @Override
-    public void onSuspend(Route route) {
-        // noop
-    }
-
-    @Override
-    public void onResume(Route route) {
-        // noop
-    }
-
-    public void onExchangeBegin(Route route, Exchange exchange) {
-        // noop
-    }
-
-    public void onExchangeDone(Route route, Exchange exchange) {
-        // noop
-    }
-
-    protected boolean startConsumer(Consumer consumer) throws Exception {
-        boolean resumed = ServiceHelper.resumeService(consumer);
-        if (resumed) {
-            log.debug("Resuming consumer {}", consumer);
-        }
-        return resumed;
-    }
-
-    protected boolean stopConsumer(Consumer consumer) throws Exception {
-        boolean suspended = ServiceHelper.suspendService(consumer);
-        if (suspended) {
-            log.debug("Suspended consumer {}", consumer);
-        }
-        return suspended;
-    }
-
-    protected void startRoute(Route route) throws Exception {
-        route.getRouteContext().getCamelContext().startRoute(route.getId());
-    }
-
-    protected void resumeRoute(Route route) throws Exception {
-        route.getRouteContext().getCamelContext().resumeRoute(route.getId());
-    }
-
-    protected void suspendRoute(Route route) throws Exception {
-        route.getRouteContext().getCamelContext().suspendRoute(route.getId());
-    }
-
-    protected void suspendRoute(Route route, long timeout, TimeUnit timeUnit) 
throws Exception {
-        route.getRouteContext().getCamelContext().suspendRoute(route.getId(), 
timeout, timeUnit);
-    }
-
-    protected void stopRoute(Route route) throws Exception {
-        route.getRouteContext().getCamelContext().stopRoute(route.getId());
-    }
-
-    protected void stopRoute(Route route, long timeout, TimeUnit timeUnit) 
throws Exception {
-        route.getRouteContext().getCamelContext().stopRoute(route.getId(), 
timeout, timeUnit);
-    }
-    
-    /**
-     * Handles the given exception using the {@link #getExceptionHandler()}
-     *
-     * @param t the exception to handle
-     */
-    protected void handleException(Throwable t) {
-        if (exceptionHandler != null) {
-            exceptionHandler.handleException(t);
-        }
-    }
-
-    @Override
-    protected void doStart() throws Exception {
-        // noop
-    }
-
-    @Override
-    protected void doStop() throws Exception {
-        // noop
-    }
-
-    public ExceptionHandler getExceptionHandler() {
-        return exceptionHandler;
-    }
-
-    public void setExceptionHandler(ExceptionHandler exceptionHandler) {
-        this.exceptionHandler = exceptionHandler;
-    }
-
+@Deprecated
+public class RoutePolicySupport extends 
org.apache.camel.support.RoutePolicySupport {
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
 
b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
index f5f93f2..a0a1914 100644
--- 
a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
+++ 
b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java
@@ -30,6 +30,7 @@ import org.apache.camel.LoggingLevel;
 import org.apache.camel.Route;
 import org.apache.camel.management.event.ExchangeCompletedEvent;
 import org.apache.camel.support.EventNotifierSupport;
+import org.apache.camel.support.RoutePolicySupport;
 import org.apache.camel.util.CamelLogger;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ServiceHelper;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java 
b/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java
index 2bb93f7..2dde110 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/BatchProcessor.java
@@ -37,7 +37,7 @@ import org.apache.camel.Expression;
 import org.apache.camel.Navigate;
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
-import org.apache.camel.impl.LoggingExceptionHandler;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.AsyncProcessorHelper;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java 
b/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
index c8426d7..b5103f2 100644
--- a/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
+++ b/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
@@ -31,7 +31,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Navigate;
 import org.apache.camel.Processor;
 import org.apache.camel.Traceable;
-import org.apache.camel.impl.LoggingExceptionHandler;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.processor.resequencer.ResequencerEngine;
 import org.apache.camel.processor.resequencer.SequenceElementComparator;
 import org.apache.camel.processor.resequencer.SequenceSender;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
 
b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
index e7a094f..2118919 100644
--- 
a/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
+++ 
b/camel-core/src/main/java/org/apache/camel/processor/aggregate/AggregateProcessor.java
@@ -45,7 +45,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.TimeoutMap;
 import org.apache.camel.Traceable;
-import org.apache.camel.impl.LoggingExceptionHandler;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.spi.AggregationRepository;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.OptimisticLockingAggregationRepository;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/support/LoggingExceptionHandler.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/support/LoggingExceptionHandler.java
 
b/camel-core/src/main/java/org/apache/camel/support/LoggingExceptionHandler.java
new file mode 100644
index 0000000..6a9bc32
--- /dev/null
+++ 
b/camel-core/src/main/java/org/apache/camel/support/LoggingExceptionHandler.java
@@ -0,0 +1,121 @@
+/**
+ * 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.support;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.CamelExchangeException;
+import org.apache.camel.Exchange;
+import org.apache.camel.LoggingLevel;
+import org.apache.camel.RollbackExchangeException;
+import org.apache.camel.spi.ExceptionHandler;
+import org.apache.camel.util.CamelLogger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A default implementation of {@link ExceptionHandler} which uses a {@link 
org.apache.camel.util.CamelLogger} to
+ * log the exception.
+ * <p/>
+ * This implementation will by default log the exception with stack trace at 
WARN level.
+ * <p/>
+ * This implementation honors the {@link 
org.apache.camel.spi.ShutdownStrategy#isSuppressLoggingOnTimeout()}
+ * option to avoid logging if the logging should be suppressed.
+ *
+ * @version 
+ */
+public class LoggingExceptionHandler implements ExceptionHandler {
+    private final CamelLogger logger;
+    private final CamelContext camelContext;
+
+    @Deprecated
+    public LoggingExceptionHandler(Class<?> ownerType) {
+        this(null, new CamelLogger(LoggerFactory.getLogger(ownerType), 
LoggingLevel.WARN));
+    }
+
+    public LoggingExceptionHandler(CamelContext camelContext, Class<?> 
ownerType) {
+        this(camelContext, new CamelLogger(LoggerFactory.getLogger(ownerType), 
LoggingLevel.WARN));
+    }
+
+    @Deprecated
+    public LoggingExceptionHandler(Class<?> ownerType, LoggingLevel level) {
+        this(null, new CamelLogger(LoggerFactory.getLogger(ownerType), level));
+    }
+
+    public LoggingExceptionHandler(CamelContext camelContext, Class<?> 
ownerType, LoggingLevel level) {
+        this(camelContext, new CamelLogger(LoggerFactory.getLogger(ownerType), 
level));
+    }
+
+    @Deprecated
+    public LoggingExceptionHandler(CamelLogger logger) {
+        this(null, logger);
+    }
+
+    public LoggingExceptionHandler(CamelContext camelContext, CamelLogger 
logger) {
+        this.camelContext = camelContext;
+        this.logger = logger;
+    }
+
+    public void handleException(Throwable exception) {
+        handleException(null, null, exception);
+    }
+
+    public void handleException(String message, Throwable exception) {
+        handleException(message, null, exception);
+    }
+
+    public void handleException(String message, Exchange exchange, Throwable 
exception) {
+        try {
+            if (!isSuppressLogging()) {
+                String msg = 
CamelExchangeException.createExceptionMessage(message, exchange, exception);
+                if (isCausedByRollbackExchangeException(exception)) {
+                    // do not log stack trace for intended rollbacks
+                    logger.log(msg);
+                } else {
+                    if (exception != null) {
+                        logger.log(msg, exception);
+                    } else {
+                        logger.log(msg);
+                    }
+                }
+            }
+        } catch (Throwable e) {
+            // the logging exception handler must not cause new exceptions to 
occur
+        }
+    }
+
+    protected boolean isCausedByRollbackExchangeException(Throwable exception) 
{
+        if (exception == null) {
+            return false;
+        }
+        if (exception instanceof RollbackExchangeException) {
+            return true;
+        } else if (exception.getCause() != null) {
+            // recursive children
+            return isCausedByRollbackExchangeException(exception.getCause());
+        }
+
+        return false;
+    }
+
+    protected boolean isSuppressLogging() {
+        if (camelContext != null) {
+            return (camelContext.getStatus().isStopping() || 
camelContext.getStatus().isStopped())
+                    && camelContext.getShutdownStrategy().hasTimeoutOccurred() 
&& camelContext.getShutdownStrategy().isSuppressLoggingOnTimeout();
+        } else {
+            return false;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/main/java/org/apache/camel/support/RoutePolicySupport.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/support/RoutePolicySupport.java 
b/camel-core/src/main/java/org/apache/camel/support/RoutePolicySupport.java
new file mode 100644
index 0000000..575d009
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/support/RoutePolicySupport.java
@@ -0,0 +1,147 @@
+/**
+ * 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.support;
+
+import java.util.concurrent.TimeUnit;
+
+import org.apache.camel.Consumer;
+import org.apache.camel.Exchange;
+import org.apache.camel.Route;
+import org.apache.camel.spi.ExceptionHandler;
+import org.apache.camel.spi.RoutePolicy;
+import org.apache.camel.util.ServiceHelper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * A base class for developing custom {@link RoutePolicy} implementations.
+ *
+ * @version 
+ */
+public abstract class RoutePolicySupport extends ServiceSupport implements 
RoutePolicy {
+
+    protected final Logger log = LoggerFactory.getLogger(getClass());
+    private ExceptionHandler exceptionHandler;
+
+    public void onInit(Route route) {
+        if (exceptionHandler == null) {
+            exceptionHandler = new 
LoggingExceptionHandler(route.getRouteContext().getCamelContext(), getClass());
+        }
+    }
+
+    public void onRemove(Route route) {
+        // noop
+    }
+
+    @Override
+    public void onStart(Route route) {
+        // noop
+    }
+
+    @Override
+    public void onStop(Route route) {
+        // noop
+    }
+
+    @Override
+    public void onSuspend(Route route) {
+        // noop
+    }
+
+    @Override
+    public void onResume(Route route) {
+        // noop
+    }
+
+    public void onExchangeBegin(Route route, Exchange exchange) {
+        // noop
+    }
+
+    public void onExchangeDone(Route route, Exchange exchange) {
+        // noop
+    }
+
+    public boolean startConsumer(Consumer consumer) throws Exception {
+        boolean resumed = ServiceHelper.resumeService(consumer);
+        if (resumed) {
+            log.debug("Resuming consumer {}", consumer);
+        }
+        return resumed;
+    }
+
+    public boolean stopConsumer(Consumer consumer) throws Exception {
+        boolean suspended = ServiceHelper.suspendService(consumer);
+        if (suspended) {
+            log.debug("Suspended consumer {}", consumer);
+        }
+        return suspended;
+    }
+
+    public void startRoute(Route route) throws Exception {
+        route.getRouteContext().getCamelContext().startRoute(route.getId());
+    }
+
+    public void resumeRoute(Route route) throws Exception {
+        route.getRouteContext().getCamelContext().resumeRoute(route.getId());
+    }
+
+    public void suspendRoute(Route route) throws Exception {
+        route.getRouteContext().getCamelContext().suspendRoute(route.getId());
+    }
+
+    public void suspendRoute(Route route, long timeout, TimeUnit timeUnit) 
throws Exception {
+        route.getRouteContext().getCamelContext().suspendRoute(route.getId(), 
timeout, timeUnit);
+    }
+
+    public void stopRoute(Route route) throws Exception {
+        route.getRouteContext().getCamelContext().stopRoute(route.getId());
+    }
+
+    public void stopRoute(Route route, long timeout, TimeUnit timeUnit) throws 
Exception {
+        route.getRouteContext().getCamelContext().stopRoute(route.getId(), 
timeout, timeUnit);
+    }
+    
+    /**
+     * Handles the given exception using the {@link #getExceptionHandler()}
+     *
+     * @param t the exception to handle
+     */
+    protected void handleException(Throwable t) {
+        if (exceptionHandler != null) {
+            exceptionHandler.handleException(t);
+        }
+    }
+
+    @Override
+    protected void doStart() throws Exception {
+        // noop
+    }
+
+    @Override
+    protected void doStop() throws Exception {
+        // noop
+    }
+
+    public ExceptionHandler getExceptionHandler() {
+        return exceptionHandler;
+    }
+
+    public void setExceptionHandler(ExceptionHandler exceptionHandler) {
+        this.exceptionHandler = exceptionHandler;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendAndResumeTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendAndResumeTest.java
 
b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendAndResumeTest.java
index 1ec6cf8..c23a55d 100644
--- 
a/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendAndResumeTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendAndResumeTest.java
@@ -24,7 +24,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * @version 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendTest.java
 
b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendTest.java
index 6ece394..49b9755 100644
--- 
a/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/component/file/FileConsumerSuspendTest.java
@@ -23,7 +23,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * @version 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java 
b/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java
index 0d64025..b48d31e 100644
--- 
a/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyCallbackTest.java
@@ -20,6 +20,7 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Exchange;
 import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  *

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyFactoryTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyFactoryTest.java 
b/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyFactoryTest.java
index f3b3e16..08ce57d 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyFactoryTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/RoutePolicyFactoryTest.java
@@ -24,6 +24,7 @@ import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.spi.RoutePolicy;
 import org.apache.camel.spi.RoutePolicyFactory;
+import org.apache.camel.support.RoutePolicySupport;
 
 public class RoutePolicyFactoryTest extends ContextTestSupport {
 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/impl/RoutePolicySupportTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/impl/RoutePolicySupportTest.java 
b/camel-core/src/test/java/org/apache/camel/impl/RoutePolicySupportTest.java
index 93c56b8..090eb65 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/RoutePolicySupportTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/RoutePolicySupportTest.java
@@ -21,6 +21,7 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.support.RoutePolicySupport;
 import org.junit.Test;
 
 public class RoutePolicySupportTest extends ContextTestSupport {

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/management/ManagedSuspendedServiceTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/management/ManagedSuspendedServiceTest.java
 
b/camel-core/src/test/java/org/apache/camel/management/ManagedSuspendedServiceTest.java
index 5c933cf..ab4b197 100644
--- 
a/camel-core/src/test/java/org/apache/camel/management/ManagedSuspendedServiceTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/management/ManagedSuspendedServiceTest.java
@@ -25,7 +25,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * @version 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/processor/CustomRoutePolicyTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/processor/CustomRoutePolicyTest.java
 
b/camel-core/src/test/java/org/apache/camel/processor/CustomRoutePolicyTest.java
index 2fe1a3c..e1bd264 100644
--- 
a/camel-core/src/test/java/org/apache/camel/processor/CustomRoutePolicyTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/processor/CustomRoutePolicyTest.java
@@ -23,7 +23,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * @version 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/processor/CustomScheduledRoutePolicyTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/processor/CustomScheduledRoutePolicyTest.java
 
b/camel-core/src/test/java/org/apache/camel/processor/CustomScheduledRoutePolicyTest.java
index d93fbbb..5627c37 100644
--- 
a/camel-core/src/test/java/org/apache/camel/processor/CustomScheduledRoutePolicyTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/processor/CustomScheduledRoutePolicyTest.java
@@ -20,7 +20,7 @@ import org.apache.camel.ContextTestSupport;
 import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * @version 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/processor/FlipRoutePolicy.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/processor/FlipRoutePolicy.java 
b/camel-core/src/test/java/org/apache/camel/processor/FlipRoutePolicy.java
index b9987de..5ea6b39 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/FlipRoutePolicy.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/FlipRoutePolicy.java
@@ -19,7 +19,7 @@ package org.apache.camel.processor;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Route;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * @version 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesRefTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesRefTest.java 
b/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesRefTest.java
index 6f60e06..6427f31 100644
--- 
a/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesRefTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesRefTest.java
@@ -22,7 +22,7 @@ import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.impl.JndiRegistry;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * @version 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesTest.java 
b/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesTest.java
index 84273b9..01e7733 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/RoutePoliciesTest.java
@@ -21,7 +21,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * @version 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointCustomRoutePolicyTest.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointCustomRoutePolicyTest.java
 
b/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointCustomRoutePolicyTest.java
index 7b7c854..5f7bcdd 100644
--- 
a/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointCustomRoutePolicyTest.java
+++ 
b/camel-core/src/test/java/org/apache/camel/processor/async/AsyncEndpointCustomRoutePolicyTest.java
@@ -24,7 +24,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Route;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * @version 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java
 
b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java
index bb89aed..a59f077 100644
--- 
a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java
+++ 
b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorConsumer.java
@@ -27,10 +27,10 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.ShutdownRunningTask;
 import org.apache.camel.SuspendableService;
-import org.apache.camel.impl.LoggingExceptionHandler;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.camel.spi.ShutdownAware;
 import org.apache.camel.spi.Synchronization;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.support.ServiceSupport;
 import org.apache.camel.util.AsyncProcessorConverterHelper;
 import org.apache.camel.util.ExchangeHelper;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultSpringErrorHandler.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultSpringErrorHandler.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultSpringErrorHandler.java
index c659d50..f6d5bb1 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultSpringErrorHandler.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/DefaultSpringErrorHandler.java
@@ -16,8 +16,9 @@
  */
 package org.apache.camel.component.jms;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.LoggingLevel;
-import org.apache.camel.impl.LoggingExceptionHandler;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.springframework.util.ErrorHandler;
 
 /**
@@ -28,8 +29,8 @@ public class DefaultSpringErrorHandler implements 
ErrorHandler {
     private final LoggingExceptionHandler handler;
     private final boolean logStackTrace;
 
-    public DefaultSpringErrorHandler(Class<?> owner, LoggingLevel level, 
boolean logStackTrace) {
-        this.handler = new LoggingExceptionHandler(owner, level);
+    public DefaultSpringErrorHandler(CamelContext camelContext, Class<?> 
owner, LoggingLevel level, boolean logStackTrace) {
+        this.handler = new LoggingExceptionHandler(camelContext, owner, level);
         this.logStackTrace = logStackTrace;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
index a8c2485..163d9c9 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsConfiguration.java
@@ -989,7 +989,7 @@ public class JmsConfiguration implements Cloneable {
         if (errorHandler != null) {
             container.setErrorHandler(errorHandler);
         } else {
-            ErrorHandler handler = new 
DefaultSpringErrorHandler(EndpointMessageListener.class, 
getErrorHandlerLoggingLevel(), isErrorHandlerLogStackTrace());
+            ErrorHandler handler = new 
DefaultSpringErrorHandler(endpoint.getCamelContext(), 
EndpointMessageListener.class, getErrorHandlerLoggingLevel(), 
isErrorHandlerLogStackTrace());
             container.setErrorHandler(handler);
         }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
index eef52de..ebb91c5 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/QueueReplyManager.java
@@ -196,7 +196,7 @@ public class QueueReplyManager extends ReplyManagerSupport {
         if (endpoint.getErrorHandler() != null) {
             answer.setErrorHandler(endpoint.getErrorHandler());
         } else {
-            answer.setErrorHandler(new 
DefaultSpringErrorHandler(QueueReplyManager.class, 
endpoint.getErrorHandlerLoggingLevel(), 
endpoint.isErrorHandlerLogStackTrace()));
+            answer.setErrorHandler(new 
DefaultSpringErrorHandler(endpoint.getCamelContext(), QueueReplyManager.class, 
endpoint.getErrorHandlerLoggingLevel(), 
endpoint.isErrorHandlerLogStackTrace()));
         }
         if (endpoint.getReceiveTimeout() >= 0) {
             answer.setReceiveTimeout(endpoint.getReceiveTimeout());

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
----------------------------------------------------------------------
diff --git 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
index 54915e0..fc0a4e7 100644
--- 
a/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
+++ 
b/components/camel-jms/src/main/java/org/apache/camel/component/jms/reply/TemporaryQueueReplyManager.java
@@ -140,7 +140,7 @@ public class TemporaryQueueReplyManager extends 
ReplyManagerSupport {
         if (endpoint.getErrorHandler() != null) {
             answer.setErrorHandler(endpoint.getErrorHandler());
         } else {
-            answer.setErrorHandler(new 
DefaultSpringErrorHandler(TemporaryQueueReplyManager.class, 
endpoint.getErrorHandlerLoggingLevel(), 
endpoint.isErrorHandlerLogStackTrace()));
+            answer.setErrorHandler(new 
DefaultSpringErrorHandler(endpoint.getCamelContext(), 
TemporaryQueueReplyManager.class, endpoint.getErrorHandlerLoggingLevel(), 
endpoint.isErrorHandlerLogStackTrace()));
         }
         if (endpoint.getReceiveTimeout() >= 0) {
             answer.setReceiveTimeout(endpoint.getReceiveTimeout());

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java
----------------------------------------------------------------------
diff --git 
a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java
 
b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java
index 68c247a..179b17e 100644
--- 
a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java
+++ 
b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java
@@ -23,7 +23,7 @@ import com.codahale.metrics.Timer;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.Route;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 import org.apache.camel.util.ObjectHelper;
 
 /**

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
----------------------------------------------------------------------
diff --git 
a/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
 
b/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
index b355413..9963d93 100644
--- 
a/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
+++ 
b/components/camel-quartz/src/main/java/org/apache/camel/routepolicy/quartz/ScheduledRoutePolicy.java
@@ -23,7 +23,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.component.quartz.QuartzComponent;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ServiceHelper;
 import org.quartz.JobDetail;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-quartz2/src/main/java/org/apache/camel/routepolicy/quartz2/ScheduledRoutePolicy.java
----------------------------------------------------------------------
diff --git 
a/components/camel-quartz2/src/main/java/org/apache/camel/routepolicy/quartz2/ScheduledRoutePolicy.java
 
b/components/camel-quartz2/src/main/java/org/apache/camel/routepolicy/quartz2/ScheduledRoutePolicy.java
index eaeaeee..84a9d6f 100644
--- 
a/components/camel-quartz2/src/main/java/org/apache/camel/routepolicy/quartz2/ScheduledRoutePolicy.java
+++ 
b/components/camel-quartz2/src/main/java/org/apache/camel/routepolicy/quartz2/ScheduledRoutePolicy.java
@@ -23,7 +23,7 @@ import java.util.concurrent.TimeUnit;
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.component.quartz2.QuartzComponent;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ServiceHelper;
 import org.quartz.JobBuilder;

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxServiceSupport.java
----------------------------------------------------------------------
diff --git 
a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxServiceSupport.java
 
b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxServiceSupport.java
index 325889d..65f846b 100644
--- 
a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxServiceSupport.java
+++ 
b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxServiceSupport.java
@@ -21,8 +21,8 @@ import java.util.concurrent.ExecutorService;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.impl.LoggingExceptionHandler;
 import org.apache.camel.spi.ExceptionHandler;
+import org.apache.camel.support.LoggingExceptionHandler;
 import org.apache.camel.support.ServiceSupport;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -37,7 +37,7 @@ public abstract class RouteboxServiceSupport extends 
ServiceSupport {
     public RouteboxServiceSupport(RouteboxEndpoint endpoint) {
         this.endpoint = endpoint;
         if (exceptionHandler == null) {
-            exceptionHandler = new LoggingExceptionHandler(getClass());
+            exceptionHandler = new 
LoggingExceptionHandler(endpoint.getCamelContext(), getClass());
         }
     }
     

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRoutePoliciesTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRoutePoliciesTest.java
 
b/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRoutePoliciesTest.java
index a79937a..7c90dce 100644
--- 
a/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRoutePoliciesTest.java
+++ 
b/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringRoutePoliciesTest.java
@@ -19,8 +19,8 @@ package org.apache.camel.spring.processor;
 import org.apache.camel.Exchange;
 import org.apache.camel.Route;
 import org.apache.camel.component.mock.MockEndpoint;
-import org.apache.camel.impl.RoutePolicySupport;
 import org.apache.camel.spring.SpringTestSupport;
+import org.apache.camel.support.RoutePolicySupport;
 import org.springframework.context.support.AbstractXmlApplicationContext;
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/259648fc/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/policy/ZooKeeperRoutePolicy.java
----------------------------------------------------------------------
diff --git 
a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/policy/ZooKeeperRoutePolicy.java
 
b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/policy/ZooKeeperRoutePolicy.java
index 1c68222..d059101 100644
--- 
a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/policy/ZooKeeperRoutePolicy.java
+++ 
b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/policy/ZooKeeperRoutePolicy.java
@@ -24,7 +24,7 @@ import java.util.concurrent.locks.ReentrantLock;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.Route;
-import org.apache.camel.impl.RoutePolicySupport;
+import org.apache.camel.support.RoutePolicySupport;
 
 /**
  * <code>ZooKeeperRoutePolicy</code> uses the leader election capabilities of a

Reply via email to