You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ja...@apache.org on 2008/11/03 20:14:32 UTC

svn commit: r710133 - in /activemq/camel/branches/camel-1.x: ./ camel-core/src/main/java/org/apache/camel/builder/ camel-core/src/main/java/org/apache/camel/component/log/ camel-core/src/main/java/org/apache/camel/impl/ camel-core/src/main/java/org/apa...

Author: janstey
Date: Mon Nov  3 11:14:30 2008
New Revision: 710133

URL: http://svn.apache.org/viewvc?rev=710133&view=rev
Log:
Merged revisions 708553-709447,709449-709612,709614-709634,709636-709849,709851-710013 via svnmerge from 
https://svn.apache.org/repos/asf/activemq/camel/trunk

........
  r708553 | janstey | 2008-10-28 09:50:41 -0230 (Tue, 28 Oct 2008) | 1 line
  
  Changing test port that conflicts on some systems
........
  r708581 | gertv | 2008-10-28 11:56:44 -0230 (Tue, 28 Oct 2008) | 1 line
  
  CAMEL-122: Enabling Spring tests for Camel error handling
........
  r708585 | hadrian | 2008-10-28 12:04:04 -0230 (Tue, 28 Oct 2008) | 2 lines
  
  Remove println call.
........
  r708879 | jstrachan | 2008-10-29 08:53:27 -0230 (Wed, 29 Oct 2008) | 1 line
  
  added a fix for CAMEL-1033 making it easy to create a JMS MessageListener for processing by Camel - along with helper methods to make a Processor from a ProducerTemplate
........
  r709164 | janstey | 2008-10-30 11:45:53 -0230 (Thu, 30 Oct 2008) | 3 lines
  
  CAMEL-1036 - Adding retriesExhaustedLogLevel and retryAttemptedLogLevel methods on onException.
........
  r709173 | janstey | 2008-10-30 12:02:55 -0230 (Thu, 30 Oct 2008) | 3 lines
  
  CAMEL-1034 - Fix issue with the StreamResequencer. Many thanks to Martin Krasser for providing the patch for this!
........
  r709209 | janstey | 2008-10-30 14:32:37 -0230 (Thu, 30 Oct 2008) | 1 line
  
  CAMEL-1036 - Adding Spring test case and improving some javadoc
........
  r709214 | davsclaus | 2008-10-30 14:50:37 -0230 (Thu, 30 Oct 2008) | 1 line
  
  Polished javadoc and removed unused import
........
  r709512 | janstey | 2008-10-31 15:33:54 -0230 (Fri, 31 Oct 2008) | 3 lines
  
  CAMEL-1039 - Adding support to trace out messages.
........
  r709518 | janstey | 2008-10-31 15:43:15 -0230 (Fri, 31 Oct 2008) | 1 line
  
  CAMEL-1039 - Fix wiki snippet tag
........
  r709522 | janstey | 2008-10-31 15:58:40 -0230 (Fri, 31 Oct 2008) | 1 line
  
  CAMEL-1039 - Adding Spring test case for the new tracer configuration options
........
  r710013 | davsclaus | 2008-11-03 02:33:32 -0330 (Mon, 03 Nov 2008) | 1 line
  
  Align trace formatter
........

Added:
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/ProducerTemplateProcessor.java
      - copied unchanged from r709214, activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/impl/ProducerTemplateProcessor.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/LoggingLevel.java
      - copied unchanged from r709214, activemq/camel/trunk/camel-core/src/main/java/org/apache/camel/model/LoggingLevel.java
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/builder/CustomLog.java
      - copied unchanged from r709214, activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/CustomLog.java
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/builder/ExceptionBuilderWithRetryLoggingLevelSetTest.java
      - copied unchanged from r709214, activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/ExceptionBuilderWithRetryLoggingLevelSetTest.java
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/builder/MyExceptionThrowingProcessor.java
      - copied unchanged from r709214, activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/builder/MyExceptionThrowingProcessor.java
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/TraceInterceptorWithOutBodyTraceTest.java
      - copied unchanged from r709522, activemq/camel/trunk/camel-core/src/test/java/org/apache/camel/processor/TraceInterceptorWithOutBodyTraceTest.java
    activemq/camel/branches/camel-1.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/CamelMessageListener.java
      - copied unchanged from r709214, activemq/camel/trunk/components/camel-jms/src/main/java/org/apache/camel/component/jms/CamelMessageListener.java
    activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceInterceptorWithOutBodyTraceTest.java
      - copied unchanged from r709522, activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringTraceInterceptorWithOutBodyTraceTest.java
    activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/onexception/SpringExceptionBuilderWithRetryLoggingLevelSetTest.java
      - copied unchanged from r709214, activemq/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/processor/onexception/SpringExceptionBuilderWithRetryLoggingLevelSetTest.java
    activemq/camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/onexception/exceptionBuilderWithRetryLoggingLevelSet.xml
      - copied unchanged from r709214, activemq/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/onexception/exceptionBuilderWithRetryLoggingLevelSet.xml
    activemq/camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/traceInterceptorWithOutBodyTrace.xml
      - copied unchanged from r709522, activemq/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/traceInterceptorWithOutBodyTrace.xml
Removed:
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/LoggingLevel.java
    activemq/camel/branches/camel-1.x/components/camel-jms/src/main/java/org/apache/camel/component/jms/MessageListenerProcessor.java
Modified:
    activemq/camel/branches/camel-1.x/   (props changed)
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ChoiceType.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyType.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RoutesType.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/Logger.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
    activemq/camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/jaxb.index
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelTest.java
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRetryRouteTest.java
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRouteTest.java
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/TracerConfigurationTest.java
    activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/aggregator/PredicateAggregatorCollectionTest.java
    activemq/camel/branches/camel-1.x/components/camel-rmi/src/test/java/org/apache/camel/component/rmi/RmiRouteTest.java
    activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/component/bean/BeanWithRecipientListTest.java
    activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFaultRouteTest.java
    activemq/camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/faultRoute.xml

Propchange: activemq/camel/branches/camel-1.x/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Nov  3 11:14:30 2008
@@ -1 +1 @@
-/activemq/camel/trunk:1-708421
+/activemq/camel/trunk:1-708421,708553-709447,709449-709612,709614-709634,709636-709849,709851-710013

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/BuilderSupport.java Mon Nov  3 11:14:30 2008
@@ -23,7 +23,7 @@
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.NoSuchEndpointException;
-import org.apache.camel.processor.LoggingLevel;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.processor.SendProcessor;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.logging.Log;

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java Mon Nov  3 11:14:30 2008
@@ -18,10 +18,10 @@
 
 import org.apache.camel.Expression;
 import org.apache.camel.Processor;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.processor.DeadLetterChannel;
 import org.apache.camel.processor.ErrorHandlerSupport;
 import org.apache.camel.processor.Logger;
-import org.apache.camel.processor.LoggingLevel;
 import org.apache.camel.processor.RecipientList;
 import org.apache.camel.processor.RedeliveryPolicy;
 import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java Mon Nov  3 11:14:30 2008
@@ -17,9 +17,9 @@
 package org.apache.camel.builder;
 
 import org.apache.camel.Processor;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.processor.Logger;
 import org.apache.camel.processor.LoggingErrorHandler;
-import org.apache.camel.processor.LoggingLevel;
 import org.apache.camel.spi.RouteContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/builder/RouteBuilder.java Mon Nov  3 11:14:30 2008
@@ -134,7 +134,7 @@
      * Adds an exception handler route for the given exception type
      */
     public ExceptionType onException(Class exceptionType) {
-        return routeCollection.exception(exceptionType);
+        return routeCollection.onException(exceptionType);
     }
 
     /**

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/component/log/LogComponent.java Mon Nov  3 11:14:30 2008
@@ -23,8 +23,8 @@
 import org.apache.camel.converter.ObjectConverter;
 import org.apache.camel.impl.DefaultComponent;
 import org.apache.camel.impl.ProcessorEndpoint;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.processor.Logger;
-import org.apache.camel.processor.LoggingLevel;
 import org.apache.camel.processor.ThroughputLogger;
 import org.apache.camel.util.IntrospectionSupport;
 

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/DefaultProducerTemplate.java Mon Nov  3 11:14:30 2008
@@ -30,6 +30,7 @@
 import org.apache.camel.Producer;
 import org.apache.camel.ProducerTemplate;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.camel.util.CamelContextHelper;
 import static org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException;
 
 /**
@@ -46,6 +47,11 @@
     private final Map<String, Endpoint<E>> endpointCache = new HashMap<String, Endpoint<E>>();
     private Endpoint<E> defaultEndpoint;
 
+    public static DefaultProducerTemplate newInstance(CamelContext camelContext, String defaultEndpointUri) {
+        Endpoint endpoint = CamelContextHelper.getMandatoryEndpoint(camelContext, defaultEndpointUri);
+        return new DefaultProducerTemplate(camelContext, endpoint);
+    }
+
     public DefaultProducerTemplate(CamelContext context) {
         this.context = context;
     }

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/impl/LoggingExceptionHandler.java Mon Nov  3 11:14:30 2008
@@ -16,8 +16,8 @@
  */
 package org.apache.camel.impl;
 
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.processor.Logger;
-import org.apache.camel.processor.LoggingLevel;
 import org.apache.camel.spi.ExceptionHandler;
 import org.apache.commons.logging.LogFactory;
 

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ChoiceType.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ChoiceType.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ChoiceType.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ChoiceType.java Mon Nov  3 11:14:30 2008
@@ -29,7 +29,6 @@
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.builder.ExpressionClause;
-import org.apache.camel.impl.converter.DefaultTypeConverter;
 import org.apache.camel.processor.ChoiceProcessor;
 import org.apache.camel.processor.FilterProcessor;
 import org.apache.camel.spi.RouteContext;

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ExceptionType.java Mon Nov  3 11:14:30 2008
@@ -159,7 +159,17 @@
         getOrCreateRedeliveryPolicy().initialRedeliveryDelay(initialRedeliveryDelay);
         return this;
     }
+    
+    public ExceptionType retriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel) {
+        getOrCreateRedeliveryPolicy().retriesExhaustedLogLevel(retriesExhaustedLogLevel);
+        return this;
+    }
 
+    public ExceptionType retryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel) {
+        getOrCreateRedeliveryPolicy().retryAttemptedLogLevel(retryAttemptedLogLevel);
+        return this;
+    }
+    
     public ExceptionType maximumRedeliveries(int maximumRedeliveries) {
         getOrCreateRedeliveryPolicy().maximumRedeliveries(maximumRedeliveries);
         return this;

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/ProcessorType.java Mon Nov  3 11:14:30 2008
@@ -131,8 +131,7 @@
     }
 
     /**
-     * Sends the exchange to a list of endpoints using the
-     * {@link org.apache.camel.processor.MulticastProcessor} pattern
+     * Sends the exchange to a list of endpoints
      */
     public Type to(String... uris) {
         for (String uri : uris) {
@@ -142,8 +141,7 @@
     }
 
     /**
-     * Sends the exchange to a list of endpoints using the
-     * {@link org.apache.camel.processor.MulticastProcessor} pattern
+     * Sends the exchange to a list of endpoints
      */
     public Type to(Endpoint... endpoints) {
         for (Endpoint endpoint : endpoints) {
@@ -153,8 +151,7 @@
     }
 
     /**
-     * Sends the exchange to a list of endpoint using the
-     * {@link org.apache.camel.processor.MulticastProcessor} pattern
+     * Sends the exchange to a list of endpoint
      */
     public Type to(Collection<Endpoint> endpoints) {
         for (Endpoint endpoint : endpoints) {

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyType.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyType.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyType.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RedeliveryPolicyType.java Mon Nov  3 11:14:30 2008
@@ -45,6 +45,10 @@
     private Boolean useCollisionAvoidance;
     @XmlAttribute
     private Long maximumRedeliveryDelay;
+    @XmlAttribute
+    private LoggingLevel retriesExhaustedLogLevel;
+    @XmlAttribute
+    private LoggingLevel retryAttemptedLogLevel;
 
     public RedeliveryPolicy createRedeliveryPolicy(RedeliveryPolicy parentPolicy) {
         RedeliveryPolicy answer =  parentPolicy.copy();
@@ -56,6 +60,12 @@
         if (initialRedeliveryDelay != null) {
             answer.setDelay(initialRedeliveryDelay);
         }
+        if (retriesExhaustedLogLevel != null) {
+            answer.setRetriesExhaustedLogLevel(retriesExhaustedLogLevel);
+        }
+        if (retryAttemptedLogLevel != null) {
+            answer.setRetryAttemptedLogLevel(retryAttemptedLogLevel);
+        }
         if (backOffMultiplier != null) {
             answer.setBackOffMultiplier(backOffMultiplier);
         }
@@ -100,6 +110,16 @@
         return this;
     }
 
+    public RedeliveryPolicyType retriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel) {
+        setRetriesExhaustedLogLevel(retriesExhaustedLogLevel);
+        return this;
+    }    
+    
+    public RedeliveryPolicyType retryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel) {
+        setRetryAttemptedLogLevel(retryAttemptedLogLevel);
+        return this;
+    }
+        
     public RedeliveryPolicyType maximumRedeliveries(int maximumRedeliveries) {
         setMaximumRedeliveries(maximumRedeliveries);
         return this;
@@ -178,4 +198,21 @@
     public void setMaximumRedeliveryDelay(Long maximumRedeliveryDelay) {
         this.maximumRedeliveryDelay = maximumRedeliveryDelay;
     }
+
+    private void setRetriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel) {
+        this.retriesExhaustedLogLevel = retriesExhaustedLogLevel;
+    }
+
+    private LoggingLevel getRetriesExhaustedLogLevel() {
+        return retriesExhaustedLogLevel;
+    } 
+
+    private void setRetryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel) {
+        this.retryAttemptedLogLevel = retryAttemptedLogLevel;
+    }
+
+    private LoggingLevel getRetryAttemptedLogLevel() {
+        return retryAttemptedLogLevel;
+    }     
+   
 }

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RoutesType.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RoutesType.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RoutesType.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/model/RoutesType.java Mon Nov  3 11:14:30 2008
@@ -192,7 +192,7 @@
         return answer.when(predicate);
     }
 
-    public ExceptionType exception(Class exceptionType) {
+    public ExceptionType onException(Class exceptionType) {
         ExceptionType answer = new ExceptionType(exceptionType);
         getExceptions().add(answer);
         return answer;

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/DeadLetterChannel.java Mon Nov  3 11:14:30 2008
@@ -26,6 +26,7 @@
 import org.apache.camel.Processor;
 import org.apache.camel.impl.converter.AsyncProcessorTypeConverter;
 import org.apache.camel.model.ExceptionType;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.processor.exceptionpolicy.ExceptionPolicyStrategy;
 import org.apache.camel.util.AsyncProcessorHelper;
 import org.apache.camel.util.ServiceHelper;
@@ -120,9 +121,6 @@
                 // set the original caused exception
                 exchange.setProperty(EXCEPTION_CAUSE_PROPERTY, e);
 
-                logger.log("Failed delivery for exchangeId: " + exchange.getExchangeId() + ". On delivery attempt: " + data.redeliveryCounter + " caught: " + e, e);
-                data.redeliveryCounter = incrementRedeliveryCounter(exchange, e);
-
                 // find the error handler to use (if any)
                 ExceptionType exceptionPolicy = getExceptionPolicy(exchange, e);
                 if (exceptionPolicy != null) {
@@ -131,8 +129,11 @@
                     Processor processor = exceptionPolicy.getErrorHandler();
                     if (processor != null) {
                         data.failureProcessor = processor;
-                    }
+                    }                    
                 }
+                
+                logFailedDelivery("Failed delivery for exchangeId: " + exchange.getExchangeId() + ". On delivery attempt: " + data.redeliveryCounter + " caught: " + e, data, e);
+                data.redeliveryCounter = incrementRedeliveryCounter(exchange, e);
             }
 
             // should we redeliver or not?
@@ -153,7 +154,7 @@
 
                 // The line below shouldn't be needed, it is invoked by the AsyncCallback above
                 //restoreExceptionOnExchange(exchange, data.handledPredicate);
-                logger.log("Failed delivery for exchangeId: " + exchange.getExchangeId() + ". Handled by the failure processor: " + data.failureProcessor);
+                logFailedDelivery("Failed delivery for exchangeId: " + exchange.getExchangeId() + ". Handled by the failure processor: " + data.failureProcessor, data, null);
                 return sync;
             }
 
@@ -199,6 +200,20 @@
 
     }
 
+    private void logFailedDelivery(String message, RedeliveryData data, Throwable e) {
+        LoggingLevel newLogLevel = null;
+        if (data.currentRedeliveryPolicy.shouldRedeliver(data.redeliveryCounter)) {
+            newLogLevel = data.currentRedeliveryPolicy.getRetryAttemptedLogLevel();
+        } else {
+            newLogLevel = data.currentRedeliveryPolicy.getRetriesExhaustedLogLevel();
+        }
+        if (e != null) {
+            logger.log(message, e, newLogLevel);
+        } else {
+            logger.log(message, newLogLevel);
+        }
+    }
+
     public static boolean isFailureHandled(Exchange exchange) {
         return exchange.getProperty(FAILURE_HANDLED_PROPERTY) != null;
     }

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/Logger.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/Logger.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/Logger.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/Logger.java Mon Nov  3 11:14:30 2008
@@ -19,6 +19,7 @@
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
 import org.apache.camel.impl.DefaultExchangeFormatter;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.processor.interceptor.ExchangeFormatter;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -139,6 +140,13 @@
         }
     }
 
+    public void log(String message, LoggingLevel loggingLevel) {
+        LoggingLevel oldLogLevel = getLevel();
+        setLevel(loggingLevel);
+        log(message);
+        setLevel(oldLogLevel);
+    }
+    
     public void log(String message) {
         switch (level) {
         case DEBUG:
@@ -176,6 +184,13 @@
         }
     }
 
+    public void log(String message, Throwable exception, LoggingLevel loggingLevel) {
+        LoggingLevel oldLogLevel = getLevel();
+        setLevel(loggingLevel);
+        log(message, exception);
+        setLevel(oldLogLevel);
+    }   
+    
     public void log(String message, Throwable exception) {
         switch (level) {
         case DEBUG:

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/LoggingErrorHandler.java Mon Nov  3 11:14:30 2008
@@ -18,6 +18,7 @@
 
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.util.ServiceHelper;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/RedeliveryPolicy.java Mon Nov  3 11:14:30 2008
@@ -19,6 +19,7 @@
 import java.io.Serializable;
 import java.util.Random;
 
+import org.apache.camel.model.LoggingLevel;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -30,7 +31,7 @@
  * href="http://activemq.apache.org/camel/dead-letter-channel.html">Dead Letter
  * Channel</a>
  * <p>
- * The default values is:
+ * The default values are:
  * <ul>
  *   <li>maximumRedeliveries = 5</li>
  *   <li>delay = 1000L (the initial delay)</li>
@@ -39,6 +40,8 @@
  *   <li>useExponentialBackOff = false</li>
  *   <li>collisionAvoidanceFactor = 0.15d</li>
  *   <li>useCollisionAvoidance = false</li>
+ *   <li>retriesExhaustedLogLevel = LoggingLevel.ERROR</li>
+ *   <li>retryAttemptedLogLevel = LoggingLevel.ERROR</li>
  * </ul>
  * <p/>
  * Setting the maximumRedeliveries to a negative value such as -1 will then always redeliver (unlimited).
@@ -57,6 +60,8 @@
     // +/-15% for a 30% spread -cgs
     protected double collisionAvoidanceFactor = 0.15d;
     protected boolean useCollisionAvoidance;
+    protected LoggingLevel retriesExhaustedLogLevel = LoggingLevel.ERROR;
+    protected LoggingLevel retryAttemptedLogLevel = LoggingLevel.ERROR;
 
     public RedeliveryPolicy() {
     }
@@ -66,6 +71,8 @@
         return "RedeliveryPolicy[maximumRedeliveries=" + maximumRedeliveries
             + ", initialRedeliveryDelay=" + delay
             + ", maximumRedeliveryDelay=" + maximumRedeliveryDelay
+            + ", retriesExhaustedLogLevel=" + retriesExhaustedLogLevel
+            + ", retryAttemptedLogLevel=" + retryAttemptedLogLevel
             + ", useExponentialBackOff="  + useExponentialBackOff
             + ", backOffMultiplier=" + backOffMultiplier
             + ", useCollisionAvoidance=" + useCollisionAvoidance
@@ -88,7 +95,7 @@
         if (getMaximumRedeliveries() < 0) {
             return true;
         }
-        // redeliver until we hitted the max
+        // redeliver until we hit the max
         return redeliveryCounter <= getMaximumRedeliveries();
     }
 
@@ -213,6 +220,22 @@
         return this;
     }
 
+    /**
+     * Sets the logging level to use for log messages when retries have been exhausted.
+     */
+    public RedeliveryPolicy retriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel) {
+        setRetriesExhaustedLogLevel(retriesExhaustedLogLevel);
+        return this;
+    }    
+
+    /**
+     * Sets the logging level to use for log messages when retries are attempted.
+     */    
+    public RedeliveryPolicy retryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel) {
+        setRetryAttemptedLogLevel(retryAttemptedLogLevel);
+        return this;
+    }    
+    
     // Properties
     // -------------------------------------------------------------------------
     public double getBackOffMultiplier() {
@@ -321,4 +344,26 @@
         }
         return randomNumberGenerator;
     }
+
+    /**
+     * Sets the logging level to use for log messages when retries have been exhausted.
+     */    
+    public void setRetriesExhaustedLogLevel(LoggingLevel retriesExhaustedLogLevel) {
+        this.retriesExhaustedLogLevel = retriesExhaustedLogLevel;        
+    }
+    
+    public LoggingLevel getRetriesExhaustedLogLevel() {
+        return retriesExhaustedLogLevel;
+    }
+
+    /**
+     * Sets the logging level to use for log messages when retries are attempted.
+     */    
+    public void setRetryAttemptedLogLevel(LoggingLevel retryAttemptedLogLevel) {
+        this.retryAttemptedLogLevel = retryAttemptedLogLevel;
+    }
+
+    public LoggingLevel getRetryAttemptedLogLevel() {
+        return retryAttemptedLogLevel;
+    }
 }

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/StreamResequencer.java Mon Nov  3 11:14:30 2008
@@ -200,7 +200,7 @@
     }
 
     public void process(Exchange exchange) throws Exception {
-        // empty since exchanges come from endpoint's polling consumer
+        engine.insert(exchange);
     }
 
 }
\ No newline at end of file

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/ThroughputLogger.java Mon Nov  3 11:14:30 2008
@@ -20,6 +20,7 @@
 import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.camel.Exchange;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.commons.logging.Log;
 
 /**

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceFormatter.java Mon Nov  3 11:14:30 2008
@@ -33,20 +33,22 @@
     private boolean showExchangePattern = true;
     private boolean showProperties = true;
     private boolean showHeaders = true;
-    private boolean showBody = true;
+    private boolean showBody = true;    
     private boolean showBodyType = true;
+    private boolean showOutBody = false;    
+    private boolean showOutBodyType = false;
     private boolean showException = true;
 
     public Object format(TraceInterceptor interceptor, Exchange exchange) {
         Message in = exchange.getIn();
+       
+        // false because we don't want to introduce side effects
+        Message out = exchange.getOut(false); 
+        
         Throwable exception = exchange.getException();
         StringBuilder sb = new StringBuilder();
-        if (showBreadCrumb || showExchangeId) {
-            sb.append(getBreadCrumbID(exchange)).append(" ");
-        }
-        if (showNode) {
-            sb.append("-> ").append(getNodeMessage(interceptor)).append(" ");
-        }
+        sb.append(getExchangeAndNode(interceptor, exchange));
+        
         if (showExchangePattern) {
             sb.append(", Pattern:").append(exchange.getPattern()).append(" ");
         }
@@ -64,6 +66,12 @@
         if (showBody) {
             sb.append(", Body:").append(getBodyAsString(in)).append(" ");
         }
+        if (showOutBodyType && out != null) {
+            sb.append(", OutBodyType:").append(getBodyTypeAsString(out)).append(" ");
+        }
+        if (showOutBody && out != null) {
+            sb.append(", OutBody:").append(getBodyAsString(out)).append(" ");
+        }        
         if (showException && exception != null) {
             sb.append(", Exception:").append(exception);
         }
@@ -87,6 +95,22 @@
         this.showBodyType = showBodyType;
     }
 
+    public void setShowOutBody(boolean showOutBody) {
+        this.showOutBody = showOutBody;
+    }
+
+    public boolean isShowOutBody() {
+        return showOutBody;
+    }    
+    
+    public void setShowOutBodyType(boolean showOutBodyType) {
+        this.showOutBodyType = showOutBodyType;
+    }
+
+    public boolean isShowOutBodyType() {
+        return showOutBodyType;
+    }    
+    
     public boolean isShowBreadCrumb() {
         return showBreadCrumb;
     }
@@ -151,6 +175,10 @@
     }
 
     protected Object getBodyAsString(Message in) {
+        if (in == null) {
+            return null;
+        }
+        
         StreamCache newBody = null;
         try {
             newBody = in.getBody(StreamCache.class);
@@ -176,6 +204,9 @@
     }
 
     protected Object getBodyTypeAsString(Message message) {
+        if (message == null) {
+            return null;
+        }
         String answer = ObjectHelper.classCanonicalName(message.getBody());
         if (answer != null && answer.startsWith("java.lang.")) {
             return answer.substring(10);
@@ -185,7 +216,34 @@
 
     protected String getNodeMessage(TraceInterceptor interceptor) {
         String message = interceptor.getNode().getShortName() + "(" + interceptor.getNode().getLabel() + ")";
-        return String.format("%1$-25s", message);
+        return String.format("%1$-25.25s", message);
+    }
+    
+    /**
+     * Returns the exchange id and node, ordered based on whether this was a trace of
+     * an exchange coming out of or into a processing step. For example, 
+     * <br/><tt>transform(body) -> ID-mojo/39713-1225468755256/2-0</tt>
+     * <br/>or
+     * <br/><tt>ID-mojo/39713-1225468755256/2-0 -> transform(body)</tt>
+     */
+    protected String getExchangeAndNode(TraceInterceptor interceptor, Exchange exchange) {
+        String id = "";
+        String node = "";
+        String result;
+        
+        if (showBreadCrumb || showExchangeId) {
+            id = getBreadCrumbID(exchange).toString();
+        }
+        if (showNode) {
+            node = getNodeMessage(interceptor);
+        }
+        if (interceptor.shouldTraceOutExchanges() && exchange.getOut(false) != null) {
+            result = node.trim() + " -> " + id.trim();
+        } else {
+            result = id.trim() + " -> " + node.trim();
+        }
+        
+        // we want to ensure text coming after this is aligned for readability
+        return String.format("%1$-65.65s", result);
     }
-
 }

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/TraceInterceptor.java Mon Nov  3 11:14:30 2008
@@ -82,6 +82,9 @@
                 logExchange(exchange);
             }
             super.proceed(exchange);
+            if (tracer.isTraceOutExchanges() && shouldLogNode(node) && shouldLogExchange(exchange)) {
+                logExchange(exchange);
+            }            
         } catch (Exception e) {
             if (shouldLogException(exchange)) {
                 logException(exchange, e);
@@ -135,7 +138,13 @@
         return tracer.isTraceExceptions();
     }
 
-
+    /**
+     * Returns whether exchanges coming out of processors should be traced
+     */   
+    public boolean shouldTraceOutExchanges() {
+        return tracer.isTraceOutExchanges();
+    }
+    
     /**
      * Returns true if the given node should be logged in the trace list
      */

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/interceptor/Tracer.java Mon Nov  3 11:14:30 2008
@@ -23,8 +23,8 @@
 import org.apache.camel.Predicate;
 import org.apache.camel.Processor;
 import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.model.ProcessorType;
-import org.apache.camel.processor.LoggingLevel;
 import org.apache.camel.spi.InterceptStrategy;
 
 /**
@@ -41,7 +41,8 @@
     private Predicate<Exchange> traceFilter;
     private boolean traceInterceptors;
     private boolean traceExceptions = true;
-
+    private boolean traceOutExchanges = false;
+    
     /**
      * A helper method to return the Tracer instance for a given {@link CamelContext} if one is enabled
      *
@@ -89,7 +90,7 @@
     }
 
     /**
-     * Sets wether interceptors should be traced or not
+     * Sets whether interceptors should be traced or not
      */
     public void setTraceInterceptors(boolean traceInterceptors) {
         this.traceInterceptors = traceInterceptors;
@@ -111,7 +112,7 @@
     }
 
     /**
-     * Sets the logging level to ouput tracing. Will default use <tt>INFO</tt> level.
+     * Sets the logging level to output tracing. Will use <tt>INFO</tt> level by default.
      */
     public void setLogLevel(LoggingLevel logLevel) {
         this.logLevel = logLevel;
@@ -122,7 +123,7 @@
     }
 
     /**
-     * Sets wether thrown exceptions should be traced
+     * Sets whether thrown exceptions should be traced
      */
     public void setTraceExceptions(boolean traceExceptions) {
         this.traceExceptions = traceExceptions;
@@ -139,4 +140,15 @@
     public void setLogName(String logName) {
         this.logName = logName;
     }
+
+    /**
+     * Sets whether exchanges coming out of processors should be traced
+     */    
+    public void setTraceOutExchanges(boolean traceOutExchanges) {
+        this.traceOutExchanges = traceOutExchanges;
+    }
+    
+    public boolean isTraceOutExchanges() {
+        return traceOutExchanges;
+    }
 }
\ No newline at end of file

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/java/org/apache/camel/processor/resequencer/ResequencerEngine.java Mon Nov  3 11:14:30 2008
@@ -53,9 +53,6 @@
  * element needs <code>timeout</code> milliseconds in any case for becoming
  * <i>ready-for-delivery</i>.
  * <p>
- * <strong>Note:</strong> Instances of this class are not thread-safe.
- * Resequencing should be done by calling {@link #insert(Object)} and
- * {@link #deliver()} or {@link #deliverNext()} from a single thread.
  *
  * @author Martin Krasser
  *
@@ -117,7 +114,7 @@
      *
      * @return the number of elements currently maintained by this resequencer.
      */
-    public int size() {
+    public synchronized int size() {
         return sequence.size();
     }
 
@@ -186,7 +183,7 @@
      *
      * @param o an element.
      */
-    public void insert(E o) {
+    public synchronized void insert(E o) {
         // wrap object into internal element
         Element<E> element = new Element<E>(o);
         // add element to sequence in proper order
@@ -217,7 +214,7 @@
      *
      * @see ResequencerEngine#deliverNext() 
      */
-    public void deliver() throws Exception {
+    public synchronized void deliver() throws Exception {
         while (deliverNext()) {
             // do nothing here
         }

Modified: activemq/camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/jaxb.index
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/jaxb.index?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/jaxb.index (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/main/resources/org/apache/camel/model/jaxb.index Mon Nov  3 11:14:30 2008
@@ -31,6 +31,7 @@
 InterceptorRef
 InterceptorType
 LoadBalanceType
+LoggingLevel
 LoopType
 MarshalType
 MulticastType

Modified: activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/component/bean/BeanPipelineTest.java Mon Nov  3 11:14:30 2008
@@ -28,7 +28,7 @@
 import org.apache.camel.util.jndi.JndiContext;
 
 /**
- * Unit test of bean can propogate headers in a pipleline
+ * Unit test of bean can propagate headers in a pipeline
  */
 public class BeanPipelineTest extends ContextTestSupport {
 

Modified: activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelTest.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelTest.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/DeadLetterChannelTest.java Mon Nov  3 11:14:30 2008
@@ -22,6 +22,7 @@
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.LoggingLevel;
 
 /**
  * @version $Revision$

Modified: activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRetryRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRetryRouteTest.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRetryRouteTest.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRetryRouteTest.java Mon Nov  3 11:14:30 2008
@@ -23,6 +23,7 @@
 import org.apache.camel.Processor;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.LoggingLevel;
 
 public class FaultRetryRouteTest extends ContextTestSupport {
     protected MockEndpoint a;

Modified: activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRouteTest.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRouteTest.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/FaultRouteTest.java Mon Nov  3 11:14:30 2008
@@ -26,6 +26,7 @@
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.LoggingLevel;
 
 /**
  * @version $Revision$

Modified: activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/TracerConfigurationTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/TracerConfigurationTest.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/TracerConfigurationTest.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/TracerConfigurationTest.java Mon Nov  3 11:14:30 2008
@@ -19,6 +19,7 @@
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.LoggingLevel;
 import org.apache.camel.processor.interceptor.Tracer;
 
 /**

Modified: activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/aggregator/PredicateAggregatorCollectionTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/aggregator/PredicateAggregatorCollectionTest.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/aggregator/PredicateAggregatorCollectionTest.java (original)
+++ activemq/camel/branches/camel-1.x/camel-core/src/test/java/org/apache/camel/processor/aggregator/PredicateAggregatorCollectionTest.java Mon Nov  3 11:14:30 2008
@@ -70,7 +70,7 @@
 
                 // our route is aggregating from the direct queue and sending the response to the mock
                 from("direct:start")
-                    // we use the collection based aggregator we already have configued
+                    // we use the collection based aggregator we already have configured
                     .aggregator(ag)
                     // wait for 0.5 seconds to aggregate
                     .batchTimeout(500L)

Modified: activemq/camel/branches/camel-1.x/components/camel-rmi/src/test/java/org/apache/camel/component/rmi/RmiRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-rmi/src/test/java/org/apache/camel/component/rmi/RmiRouteTest.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-rmi/src/test/java/org/apache/camel/component/rmi/RmiRouteTest.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-rmi/src/test/java/org/apache/camel/component/rmi/RmiRouteTest.java Mon Nov  3 11:14:30 2008
@@ -40,7 +40,7 @@
         }
 
         // Boot up a local RMI registry
-        LocateRegistry.createRegistry(9876);
+        LocateRegistry.createRegistry(37541);
 
         // START SNIPPET: register
         JndiContext context = new JndiContext();
@@ -53,11 +53,11 @@
         // lets add simple route
         camelContext.addRoutes(new RouteBuilder() {
             public void configure() {
-                from("direct:hello").to("rmi://localhost:9876/bye");
+                from("direct:hello").to("rmi://localhost:37541/bye");
 
                 // When exposing an RMI endpoint, the interfaces it exposes must
                 // be configured.
-                RmiEndpoint bye = (RmiEndpoint)endpoint("rmi://localhost:9876/bye");
+                RmiEndpoint bye = (RmiEndpoint)endpoint("rmi://localhost:37541/bye");
                 bye.setRemoteInterfaces(ISay.class);
                 from(bye).to("pojo:bye");
             }

Modified: activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/component/bean/BeanWithRecipientListTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/component/bean/BeanWithRecipientListTest.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/component/bean/BeanWithRecipientListTest.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/component/bean/BeanWithRecipientListTest.java Mon Nov  3 11:14:30 2008
@@ -44,8 +44,5 @@
         template.sendBody("direct:start", body);
 
         MockEndpoint.assertIsSatisfied(a, b);
-
-        System.out.println(a.getReceivedExchanges());
     }
-
 }
\ No newline at end of file

Modified: activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFaultRouteTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFaultRouteTest.java?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFaultRouteTest.java (original)
+++ activemq/camel/branches/camel-1.x/components/camel-spring/src/test/java/org/apache/camel/spring/processor/SpringFaultRouteTest.java Mon Nov  3 11:14:30 2008
@@ -29,16 +29,4 @@
     protected CamelContext createCamelContext() throws Exception {
         return createSpringCamelContext(this, "org/apache/camel/spring/processor/faultRoute.xml");
     }
-
-    @Override
-    public void testWithThrowFaultMessageUnhandled() throws Exception {
-        // Route cannot be configured due to lack of support for errorHandler
-        // in the xml dsl (CAMEL-122)
-    }
-
-    @Override
-    public void testWithHandleFaultMessage() throws Exception {
-        // Route cannot be configured due to lack of support for errorHandler
-        // in the xml dsl (CAMEL-122)
-    }
 }

Modified: activemq/camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/faultRoute.xml
URL: http://svn.apache.org/viewvc/activemq/camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/faultRoute.xml?rev=710133&r1=710132&r2=710133&view=diff
==============================================================================
--- activemq/camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/faultRoute.xml (original)
+++ activemq/camel/branches/camel-1.x/components/camel-spring/src/test/resources/org/apache/camel/spring/processor/faultRoute.xml Mon Nov  3 11:14:30 2008
@@ -43,10 +43,42 @@
       <throwFault faultRef="ExceptionMessage"/>
       <to uri="mock:b"/>
     </route>
+    
+    <route errorHandlerRef="deadLetterErrorHandler">
+      <from uri="direct:fault" />
+      <to uri="mock:a" />
+      <throwFault faultRef="camelFault" />
+      <to uri="mock:b" />
+    </route>
+    
+    <route errorHandlerRef="deadLetterErrorHandler">
+      <from uri="direct:error" />
+      <to uri="mock:a" />
+      <interceptor ref="handleFaultProcessor">
+        <throwFault faultRef="camelFault" />
+        <to uri="mock:b" />
+      </interceptor>
+    </route>
   </camelContext>
   <!-- END SNIPPET: example -->
 
   <bean id="myFault" class="java.lang.IllegalStateException" >
   	<constructor-arg index="0" value="It makes no sense of business logic"/>
   </bean>
+  
+  <bean id="camelFault" class="org.apache.camel.CamelException" >
+    <constructor-arg value="ExceptionMessage" />
+  </bean>
+  
+  <bean id="deadLetterErrorHandler" class="org.apache.camel.builder.DeadLetterChannelBuilder">
+    <property name="redeliveryPolicy" ref="redeliveryPolicyConfig" />
+    <property name="defaultDeadLetterEndpointUri" value="mock:error"/>
+  </bean>
+	
+  <bean id="redeliveryPolicyConfig" class="org.apache.camel.processor.RedeliveryPolicy">
+    <property name="maximumRedeliveries" value="2" />
+  </bean>
+  
+  <bean id="handleFaultProcessor" class="org.apache.camel.processor.HandleFaultProcessor" />
+  
 </beans>