camel-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From davscl...@apache.org
Subject svn commit: r1391954 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/builder/ camel-core/src/main/java/org/apache/camel/model/ camel-core/src/test/java/org/apache/camel/issues/ components/camel-spring/src/main/java/org/apache/camel/spring/...
Date Sun, 30 Sep 2012 07:21:47 GMT
Author: davsclaus
Date: Sun Sep 30 07:21:46 2012
New Revision: 1391954

URL: http://svn.apache.org/viewvc?rev=1391954&view=rev
Log:
CAMEL-5456: Fixed issue when using multiple RouteBuilder with Java DSL to ensure onException is scoped per RouteBuilder instances, to avoid side effects from one builder to propagate to the next. Also this ensures the initialization order of the RouteBuilder does not matter. Thanks to Andreas Jacobsen for providing test cases.

Added:
    camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersReverseTest.java   (with props)
    camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java   (with props)
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverseTest.java   (with props)
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerTest.java   (with props)
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/BarRoute.java   (with props)
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/FooRoute.java   (with props)
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/AFooRoute.java   (with props)
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/ZBarRoute.java   (with props)
    camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/
    camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandler.xml   (with props)
    camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverse.xml   (with props)
Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java
    camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
    camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DeadLetterChannelBuilder.java Sun Sep 30 07:21:46 2012
@@ -65,6 +65,13 @@ public class DeadLetterChannelBuilder ex
         return false;
     }
 
+    @Override
+    public ErrorHandlerBuilder cloneBuilder() {
+        DeadLetterChannelBuilder answer = new DeadLetterChannelBuilder();
+        super.cloneBuilder(answer);
+        return answer;
+    }
+
     // Properties
     // -------------------------------------------------------------------------
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/DefaultErrorHandlerBuilder.java Sun Sep 30 07:21:46 2012
@@ -69,6 +69,45 @@ public class DefaultErrorHandlerBuilder 
         return false;
     }
 
+    @Override
+    public ErrorHandlerBuilder cloneBuilder() {
+        DefaultErrorHandlerBuilder answer = new DefaultErrorHandlerBuilder();
+        cloneBuilder(answer);
+        return answer;
+    }
+
+    protected void cloneBuilder(DefaultErrorHandlerBuilder other) {
+        super.cloneBuilder(other);
+
+        if (logger != null) {
+            other.setLogger(logger);
+        }
+        if (redeliveryPolicy != null) {
+            other.setRedeliveryPolicy(redeliveryPolicy.copy());
+        }
+        if (onRedelivery != null) {
+            other.setOnRedelivery(onRedelivery);
+        }
+        if (retryWhile != null) {
+            other.setRetryWhile(retryWhile);
+        }
+        if (retryWhileRef != null) {
+            other.setRetryWhileRef(retryWhileRef);
+        }
+        if (failureProcessor != null) {
+            other.setFailureProcessor(failureProcessor);
+        }
+        if (deadLetter != null) {
+            other.setDeadLetter(deadLetter);
+        }
+        if (deadLetterUri != null) {
+            other.setDeadLetterUri(deadLetterUri);
+        }
+        other.setUseOriginalMessage(useOriginalMessage);
+        other.setAsyncDelayedRedelivery(asyncDelayedRedelivery);
+        other.setExecutorServiceRef(executorServiceRef);
+    }
+
     // Builder methods
     // -------------------------------------------------------------------------
     public DefaultErrorHandlerBuilder backOffMultiplier(double backOffMultiplier) {
@@ -430,7 +469,7 @@ public class DefaultErrorHandlerBuilder 
                     throw new IllegalArgumentException("ExecutorServiceRef " + executorServiceRef + " not found in registry.");
                 }
             } else {
-                // no explicit configured thread pool, so leave it up to the error handler to deceide if it need
+                // no explicit configured thread pool, so leave it up to the error handler to decide if it need
                 // a default thread pool from CamelContext#getErrorHandlerExecutorService
                 executorService = null;
             }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilder.java Sun Sep 30 07:21:46 2012
@@ -34,21 +34,25 @@ public interface ErrorHandlerBuilder ext
     /**
      * Adds error handler for the given exception type
      *
-     * @param exception  the exception to handle
+     * @param routeContext  the route context
+     * @param exception     the exception to handle
      */
-    void addErrorHandlers(OnExceptionDefinition exception);
+    void addErrorHandlers(RouteContext routeContext, OnExceptionDefinition exception);
 
     /**
      * Adds the error handlers for the given list of exception types
      *
-     * @param exceptions  the list of exceptions to handle
+     * @param routeContext  the route context
+     * @param exceptions    the list of exceptions to handle
      */
-    void setErrorHandlers(List<OnExceptionDefinition> exceptions);
+    void setErrorHandlers(RouteContext routeContext, List<OnExceptionDefinition> exceptions);
 
     /**
      * Gets the error handlers
+     *
+     * @param routeContext  the route context
      */
-    List<OnExceptionDefinition> getErrorHandlers();
+    List<OnExceptionDefinition> getErrorHandlers(RouteContext routeContext);
 
     /**
      * Gets the exception policy strategy
@@ -75,4 +79,15 @@ public interface ErrorHandlerBuilder ext
      * @param handler the other error handler
      */
     void configure(RouteContext routeContext, ErrorHandler handler);
+
+    /**
+     * Clones this builder so each {@link RouteBuilder} has its private builder
+     * to use, to avoid changes from one {@link RouteBuilder} to influence the
+     * others.
+     * <p/>
+     * This is needed by the current Camel 2.x architecture.
+     *
+     * @return a clone of this {@link ErrorHandlerBuilder}
+     */
+    ErrorHandlerBuilder cloneBuilder();
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderRef.java Sun Sep 30 07:21:46 2012
@@ -16,7 +16,9 @@
  */
 package org.apache.camel.builder;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.camel.ErrorHandlerFactory;
 import org.apache.camel.Processor;
@@ -33,7 +35,7 @@ import org.apache.camel.util.ObjectHelpe
 public class ErrorHandlerBuilderRef extends ErrorHandlerBuilderSupport {
     public static final String DEFAULT_ERROR_HANDLER_BUILDER = "CamelDefaultErrorHandlerBuilder";
     private final String ref;
-    private ErrorHandlerBuilder handler;
+    private final Map<RouteContext, ErrorHandlerBuilder> handlers = new HashMap<RouteContext, ErrorHandlerBuilder>();
     private boolean supportTransacted;
 
     public ErrorHandlerBuilderRef(String ref) {
@@ -41,16 +43,19 @@ public class ErrorHandlerBuilderRef exte
     }
 
     @Override
-    public void addErrorHandlers(OnExceptionDefinition exception) {
+    public void addErrorHandlers(RouteContext routeContext, OnExceptionDefinition exception) {
+        ErrorHandlerBuilder handler = handlers.get(routeContext);
         if (handler != null) {
-            handler.addErrorHandlers(exception);
+            handler.addErrorHandlers(routeContext, exception);
         }
-        super.addErrorHandlers(exception);
+        super.addErrorHandlers(routeContext, exception);
     }
 
     public Processor createErrorHandler(RouteContext routeContext, Processor processor) throws Exception {
+        ErrorHandlerBuilder handler = handlers.get(routeContext);
         if (handler == null) {
             handler = createErrorHandler(routeContext);
+            handlers.put(routeContext, handler);
         }
         return handler.createErrorHandler(routeContext, processor);
     }
@@ -59,6 +64,21 @@ public class ErrorHandlerBuilderRef exte
         return supportTransacted;
     }
 
+    @Override
+    public ErrorHandlerBuilder cloneBuilder() {
+        ErrorHandlerBuilderRef answer = new ErrorHandlerBuilderRef(ref);
+        cloneBuilder(answer);
+        return answer;
+    }
+
+    protected void cloneBuilder(ErrorHandlerBuilderRef other) {
+        super.cloneBuilder(other);
+
+        // no need to copy the handlers
+
+        other.supportTransacted = supportTransacted;
+    }
+
     /**
      * Lookup the error handler by the given ref
      *
@@ -98,7 +118,7 @@ public class ErrorHandlerBuilderRef exte
                 }
                 // inherit the error handlers from the other as they are to be shared
                 // this is needed by camel-spring when none error handler has been explicit configured
-                ((ErrorHandlerBuilder)answer).setErrorHandlers(other.getErrorHandlers());
+                ((ErrorHandlerBuilder)answer).setErrorHandlers(routeContext, other.getErrorHandlers(routeContext));
             }
         } else {
             // use specific configured error handler
@@ -142,20 +162,18 @@ public class ErrorHandlerBuilderRef exte
         return ref;
     }
 
-    public ErrorHandlerFactory getHandler() {
-        return handler;
-    }
-
     private ErrorHandlerBuilder createErrorHandler(RouteContext routeContext) {
-        handler = (ErrorHandlerBuilder)lookupErrorHandlerBuilder(routeContext, getRef());
+        ErrorHandlerBuilder handler = (ErrorHandlerBuilder)lookupErrorHandlerBuilder(routeContext, getRef());
         ObjectHelper.notNull(handler, "error handler '" + ref + "'");
 
         // configure if the handler support transacted
         supportTransacted = handler.supportTransacted();
 
-        List<OnExceptionDefinition> list = getErrorHandlers();
-        for (OnExceptionDefinition exceptionType : list) {
-            handler.addErrorHandlers(exceptionType);
+        List<OnExceptionDefinition> list = getErrorHandlers(routeContext);
+        if (list != null) {
+            for (OnExceptionDefinition exceptionType : list) {
+                handler.addErrorHandlers(routeContext, exceptionType);
+            }
         }
         return handler;
     }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/ErrorHandlerBuilderSupport.java Sun Sep 30 07:21:46 2012
@@ -17,7 +17,9 @@
 package org.apache.camel.builder;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.camel.model.OnExceptionDefinition;
 import org.apache.camel.processor.ErrorHandler;
@@ -32,33 +34,48 @@ import org.apache.camel.util.ObjectHelpe
  * @version 
  */
 public abstract class ErrorHandlerBuilderSupport implements ErrorHandlerBuilder {
-    private List<OnExceptionDefinition> exceptions = new ArrayList<OnExceptionDefinition>();
+    private Map<RouteContext, List<OnExceptionDefinition>> onExceptions = new HashMap<RouteContext, List<OnExceptionDefinition>>();
     private ExceptionPolicyStrategy exceptionPolicyStrategy;
 
-    public void addErrorHandlers(OnExceptionDefinition exception) {
+    public void addErrorHandlers(RouteContext routeContext, OnExceptionDefinition exception) {
         // only add if we not already have it
-        if (!exceptions.contains(exception)) {
-            exceptions.add(exception);
+        List<OnExceptionDefinition> list = onExceptions.get(routeContext);
+        if (list == null) {
+            list = new ArrayList<OnExceptionDefinition>();
+            onExceptions.put(routeContext, list);
         }
+        if (!list.contains(exception)) {
+            list.add(exception);
+        }
+    }
+
+    protected void cloneBuilder(ErrorHandlerBuilderSupport other) {
+        if (!onExceptions.isEmpty()) {
+            Map<RouteContext, List<OnExceptionDefinition>> copy = new HashMap<RouteContext, List<OnExceptionDefinition>>(onExceptions);
+            other.onExceptions = copy;
+        }
+        other.exceptionPolicyStrategy = exceptionPolicyStrategy;
     }
 
     public void configure(RouteContext routeContext, ErrorHandler handler) {
         if (handler instanceof ErrorHandlerSupport) {
             ErrorHandlerSupport handlerSupport = (ErrorHandlerSupport) handler;
 
-            for (OnExceptionDefinition exception : exceptions) {
-                handlerSupport.addExceptionPolicy(routeContext, exception);
+            List<OnExceptionDefinition> list = onExceptions.get(routeContext);
+            if (list != null) {
+                for (OnExceptionDefinition exception : list) {
+                    handlerSupport.addExceptionPolicy(routeContext, exception);
+                }
             }
         }
     }
 
-    public List<OnExceptionDefinition> getErrorHandlers() {
-        return exceptions;
+    public List<OnExceptionDefinition> getErrorHandlers(RouteContext routeContext) {
+        return onExceptions.get(routeContext);
     }
 
-    public void setErrorHandlers(List<OnExceptionDefinition> exceptions) {
-        this.exceptions.clear();
-        this.exceptions.addAll(exceptions);
+    public void setErrorHandlers(RouteContext routeContext, List<OnExceptionDefinition> exceptions) {
+        this.onExceptions.put(routeContext, exceptions);
     }
 
     /**

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/LoggingErrorHandlerBuilder.java Sun Sep 30 07:21:46 2012
@@ -50,6 +50,20 @@ public class LoggingErrorHandlerBuilder 
         return false;
     }
 
+    @Override
+    public ErrorHandlerBuilder cloneBuilder() {
+        LoggingErrorHandlerBuilder answer = new LoggingErrorHandlerBuilder();
+        cloneBuilder(answer);
+        return answer;
+    }
+
+    protected void cloneBuilder(LoggingErrorHandlerBuilder other) {
+        super.cloneBuilder(other);
+
+        other.level = level;
+        other.log = log;
+    }
+
     public Processor createErrorHandler(final RouteContext routeContext, final Processor processor) {
         CamelLogger logger = new CamelLogger(log, level);
 

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/builder/NoErrorHandlerBuilder.java Sun Sep 30 07:21:46 2012
@@ -37,4 +37,11 @@ public class NoErrorHandlerBuilder exten
     public boolean supportTransacted() {
         return false;
     }
+
+    @Override
+    public ErrorHandlerBuilder cloneBuilder() {
+        NoErrorHandlerBuilder answer = new NoErrorHandlerBuilder();
+        cloneBuilder(answer);
+        return answer;
+    }
 }

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/OnExceptionDefinition.java Sun Sep 30 07:21:46 2012
@@ -190,7 +190,7 @@ public class OnExceptionDefinition exten
         // lookup the error handler builder
         ErrorHandlerBuilder builder = (ErrorHandlerBuilder)routeContext.getRoute().getErrorHandlerBuilder();
         // and add this as error handlers
-        builder.addErrorHandlers(this);
+        builder.addErrorHandlers(routeContext, this);
     }
 
     @Override

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinitionHelper.java Sun Sep 30 07:21:46 2012
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.builder.ErrorHandlerBuilder;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.ObjectHelper;
@@ -161,7 +162,13 @@ public final class RouteDefinitionHelper
 
         if (context != null) {
             // let the route inherit the error handler builder from camel context if none already set
-            route.setErrorHandlerBuilderIfNull(context.getErrorHandlerBuilder());
+
+            // must clone to avoid side effects while building routes using multiple RouteBuilders
+            ErrorHandlerBuilder builder = context.getErrorHandlerBuilder();
+            if (builder != null) {
+                builder = builder.cloneBuilder();
+                route.setErrorHandlerBuilderIfNull(builder);
+            }
         }
 
         // init parent and error handler builder on the route

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersReverseTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersReverseTest.java?rev=1391954&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersReverseTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersReverseTest.java Sun Sep 30 07:21:46 2012
@@ -0,0 +1,53 @@
+/**
+ * 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.issues;
+
+import org.apache.camel.builder.RouteBuilder;
+
+public class ContextScopedOnExceptionMultipleRouteBuildersReverseTest extends ContextScopedOnExceptionMultipleRouteBuildersTest {
+
+    @Override
+    protected RouteBuilder[] createRouteBuilders() throws Exception {
+        return new RouteBuilder[]{
+            new RouteBuilder() {
+                @Override
+                public void configure() throws Exception {
+                    onException(IllegalArgumentException.class)
+                            .handled(true)
+                            .to("mock:handle-bar");
+
+                    from("direct:bar")
+                            .to("mock:bar")
+                            .throwException(new IllegalArgumentException("Damn"));
+                }
+            },
+            new RouteBuilder() {
+                @Override
+                public void configure() throws Exception {
+                    onException(Exception.class)
+                            .handled(true)
+                            .to("mock:handle-foo");
+
+                    from("direct:foo")
+                            .to("mock:foo")
+                            .throwException(new IllegalArgumentException("Damn"));
+                }
+            }
+        };
+    }
+
+}

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersReverseTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersReverseTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java?rev=1391954&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java Sun Sep 30 07:21:46 2012
@@ -0,0 +1,85 @@
+/**
+ * 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.issues;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ContextTestSupport;
+import org.apache.camel.builder.DeadLetterChannelBuilder;
+import org.apache.camel.builder.RouteBuilder;
+
+public class ContextScopedOnExceptionMultipleRouteBuildersTest extends ContextTestSupport {
+
+    public void testFoo() throws Exception {
+        getMockEndpoint("mock:foo").expectedMessageCount(1);
+        getMockEndpoint("mock:handle-foo").expectedMessageCount(1);
+        getMockEndpoint("mock:handle-bar").expectedMessageCount(0);
+        getMockEndpoint("mock:dead").expectedMessageCount(0);
+
+        template.sendBody("direct:foo", "Hello Foo");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    public void testBar() throws Exception {
+        getMockEndpoint("mock:bar").expectedMessageCount(1);
+        getMockEndpoint("mock:handle-foo").expectedMessageCount(0);
+        getMockEndpoint("mock:handle-bar").expectedMessageCount(1);
+        getMockEndpoint("mock:dead").expectedMessageCount(0);
+
+        template.sendBody("direct:bar", "Hello Bar");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext context = super.createCamelContext();
+        context.setErrorHandlerBuilder(new DeadLetterChannelBuilder("mock:dead"));
+        return context;
+    }
+
+    @Override
+    protected RouteBuilder[] createRouteBuilders() throws Exception {
+        return new RouteBuilder[]{
+            new RouteBuilder() {
+                @Override
+                public void configure() throws Exception {
+                    onException(Exception.class)
+                            .handled(true)
+                            .to("mock:handle-foo");
+
+                    from("direct:foo")
+                            .to("mock:foo")
+                            .throwException(new IllegalArgumentException("Damn"));
+                }
+            },
+            new RouteBuilder() {
+                @Override
+                public void configure() throws Exception {
+                    onException(IllegalArgumentException.class)
+                            .handled(true)
+                            .to("mock:handle-bar");
+
+                    from("direct:bar")
+                            .to("mock:bar")
+                            .throwException(new IllegalArgumentException("Damn"));
+                }
+            }
+        };
+    }
+
+}

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/issues/ContextScopedOnExceptionMultipleRouteBuildersTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java (original)
+++ camel/trunk/components/camel-spring/src/main/java/org/apache/camel/spring/spi/SpringTransactionPolicy.java Sun Sep 30 07:21:46 2012
@@ -103,7 +103,7 @@ public class SpringTransactionPolicy imp
             txBuilder.setSpringTransactionPolicy(this);
             if (builder != null) {
                 // use error handlers from the configured builder
-                txBuilder.setErrorHandlers(builder.getErrorHandlers());
+                txBuilder.setErrorHandlers(routeContext, builder.getErrorHandlers(routeContext));
             }
             answer = createTransactionErrorHandler(routeContext, processor, txBuilder);
             answer.setExceptionPolicy(txBuilder.getExceptionPolicyStrategy());

Modified: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java?rev=1391954&r1=1391953&r2=1391954&view=diff
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java (original)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/config/DummyErrorHandlerBuilder.java Sun Sep 30 07:21:46 2012
@@ -18,6 +18,7 @@ package org.apache.camel.spring.config;
 
 import org.apache.camel.Exchange;
 import org.apache.camel.Processor;
+import org.apache.camel.builder.ErrorHandlerBuilder;
 import org.apache.camel.builder.ErrorHandlerBuilderSupport;
 import org.apache.camel.processor.DelegateProcessor;
 import org.apache.camel.spi.RouteContext;
@@ -45,6 +46,14 @@ public class DummyErrorHandlerBuilder ex
         return false;
     }
 
+    @Override
+    public ErrorHandlerBuilder cloneBuilder() {
+        DummyErrorHandlerBuilder answer = new DummyErrorHandlerBuilder();
+        super.cloneBuilder(answer);
+        answer.beanName = beanName;
+        return answer;
+    }
+
     public Processor createErrorHandler(RouteContext routeContext, Processor processor) throws Exception {
         return new DelegateProcessor(processor) {
             @Override

Added: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverseTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverseTest.java?rev=1391954&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverseTest.java (added)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverseTest.java Sun Sep 30 07:21:46 2012
@@ -0,0 +1,51 @@
+/**
+ * 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.spring.contextscan;
+
+import org.apache.camel.spring.SpringTestSupport;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class ContextScanOnExceptionAndDLCErrorHandlerReverseTest extends SpringTestSupport {
+
+    public void testFoo() throws Exception {
+        getMockEndpoint("mock:foo").expectedMessageCount(1);
+        getMockEndpoint("mock:dead").expectedMessageCount(0);
+        getMockEndpoint("mock:handle-foo").expectedMessageCount(1);
+        getMockEndpoint("mock:handle-bar").expectedMessageCount(0);
+
+        template.sendBody("direct:foo", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    public void testBar() throws Exception {
+        getMockEndpoint("mock:bar").expectedMessageCount(1);
+        getMockEndpoint("mock:dead").expectedMessageCount(0);
+        getMockEndpoint("mock:handle-foo").expectedMessageCount(0);
+        getMockEndpoint("mock:handle-bar").expectedMessageCount(1);
+
+        template.sendBody("direct:bar", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected AbstractXmlApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverse.xml");
+    }
+}

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverseTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverseTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerTest.java?rev=1391954&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerTest.java (added)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerTest.java Sun Sep 30 07:21:46 2012
@@ -0,0 +1,51 @@
+/**
+ * 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.spring.contextscan;
+
+import org.apache.camel.spring.SpringTestSupport;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+public class ContextScanOnExceptionAndDLCErrorHandlerTest extends SpringTestSupport {
+
+    public void testFoo() throws Exception {
+        getMockEndpoint("mock:foo").expectedMessageCount(1);
+        getMockEndpoint("mock:dead").expectedMessageCount(0);
+        getMockEndpoint("mock:handle-foo").expectedMessageCount(1);
+        getMockEndpoint("mock:handle-bar").expectedMessageCount(0);
+
+        template.sendBody("direct:foo", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    public void testBar() throws Exception {
+        getMockEndpoint("mock:bar").expectedMessageCount(1);
+        getMockEndpoint("mock:dead").expectedMessageCount(0);
+        getMockEndpoint("mock:handle-foo").expectedMessageCount(0);
+        getMockEndpoint("mock:handle-bar").expectedMessageCount(1);
+
+        template.sendBody("direct:bar", "Hello World");
+
+        assertMockEndpointsSatisfied();
+    }
+
+    @Override
+    protected AbstractXmlApplicationContext createApplicationContext() {
+        return new ClassPathXmlApplicationContext("org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandler.xml");
+    }
+}

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/BarRoute.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/BarRoute.java?rev=1391954&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/BarRoute.java (added)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/BarRoute.java Sun Sep 30 07:21:46 2012
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.contextscan.normalorder;
+
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class BarRoute extends SpringRouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        onException(IllegalArgumentException.class)
+                .handled(true)
+                .to("mock:handle-bar");
+
+        from("direct:bar").routeId("bar")
+                .to("mock:bar")
+                .throwException(new IllegalArgumentException("Damn"));
+    }
+}

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/BarRoute.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/BarRoute.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/FooRoute.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/FooRoute.java?rev=1391954&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/FooRoute.java (added)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/FooRoute.java Sun Sep 30 07:21:46 2012
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.contextscan.normalorder;
+
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class FooRoute extends SpringRouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        onException(Exception.class)
+                .handled(true)
+                .to("mock:handle-foo");
+
+        from("direct:foo").routeId("foo")
+                .to("mock:foo")
+                .throwException(new IllegalArgumentException("Damn"));
+    }
+}

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/FooRoute.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/normalorder/FooRoute.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/AFooRoute.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/AFooRoute.java?rev=1391954&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/AFooRoute.java (added)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/AFooRoute.java Sun Sep 30 07:21:46 2012
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.contextscan.reverseorder;
+
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class AFooRoute extends SpringRouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        onException(Exception.class)
+                .handled(true)
+                .to("mock:handle-foo");
+
+        from("direct:foo").routeId("foo")
+                .to("mock:foo")
+                .throwException(new IllegalArgumentException("Damn"));
+    }
+}

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/AFooRoute.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/AFooRoute.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/ZBarRoute.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/ZBarRoute.java?rev=1391954&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/ZBarRoute.java (added)
+++ camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/ZBarRoute.java Sun Sep 30 07:21:46 2012
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spring.contextscan.reverseorder;
+
+import org.apache.camel.spring.SpringRouteBuilder;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ZBarRoute extends SpringRouteBuilder {
+
+    @Override
+    public void configure() throws Exception {
+        onException(IllegalArgumentException.class)
+                .handled(true)
+                .to("mock:handle-bar");
+
+        from("direct:bar").routeId("bar")
+                .to("mock:bar")
+                .throwException(new IllegalArgumentException("Damn"));
+    }
+}

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/ZBarRoute.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/java/org/apache/camel/spring/contextscan/reverseorder/ZBarRoute.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandler.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandler.xml?rev=1391954&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandler.xml (added)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandler.xml Sun Sep 30 07:21:46 2012
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="
+         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+    <context:component-scan base-package="org.apache.camel.spring.contextscan.normalorder"/>
+
+    <bean id="damn" class="java.lang.IllegalArgumentException">
+        <constructor-arg index="0" value="Damn"/>
+    </bean>
+
+    <bean id="deadLetter" class="org.apache.camel.builder.DeadLetterChannelBuilder">
+        <property name="deadLetterUri" value="mock:dead"/>
+    </bean>
+
+    <camelContext xmlns="http://camel.apache.org/schema/spring" errorHandlerRef="deadLetter">
+        <contextScan/>
+    </camelContext>
+
+</beans>

Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandler.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandler.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandler.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverse.xml
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverse.xml?rev=1391954&view=auto
==============================================================================
--- camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverse.xml (added)
+++ camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverse.xml Sun Sep 30 07:21:46 2012
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="
+         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+         http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
+         http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+    <context:component-scan base-package="org.apache.camel.spring.contextscan.reverseorder"/>
+
+    <bean id="damn" class="java.lang.IllegalArgumentException">
+        <constructor-arg index="0" value="Damn"/>
+    </bean>
+
+    <bean id="deadLetter" class="org.apache.camel.builder.DeadLetterChannelBuilder">
+        <property name="deadLetterUri" value="mock:dead"/>
+    </bean>
+
+    <camelContext xmlns="http://camel.apache.org/schema/spring" errorHandlerRef="deadLetter">
+        <contextScan/>
+    </camelContext>
+
+</beans>

Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverse.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverse.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: camel/trunk/components/camel-spring/src/test/resources/org/apache/camel/spring/contextscan/ContextScanOnExceptionAndDLCErrorHandlerReverse.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml



Mime
View raw message