You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2009/09/09 13:02:21 UTC

svn commit: r812883 - in /camel/trunk: camel-core/src/main/java/org/apache/camel/model/ components/camel-http/src/test/java/org/apache/camel/component/http/

Author: davsclaus
Date: Wed Sep  9 11:02:20 2009
New Revision: 812883

URL: http://svn.apache.org/viewvc?rev=812883&view=rev
Log:
CAMEL-1993: Configuration of error handler restricted to camel context or routes only to keep it simpler.

Modified:
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
    camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
    camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpPostWithBodyTest.java

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java?rev=812883&r1=812882&r2=812883&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/ProcessorDefinition.java Wed Sep  9 11:02:20 2009
@@ -75,17 +75,16 @@
 @XmlAccessorType(XmlAccessType.PROPERTY)
 public abstract class ProcessorDefinition<Type extends ProcessorDefinition> extends OptionalIdentifiedDefinition<Type> implements Block {
     protected final transient Log log = LogFactory.getLog(getClass());
-    private ErrorHandlerBuilder errorHandlerBuilder;
+    protected ErrorHandlerBuilder errorHandlerBuilder;
+    protected String errorHandlerRef;
     private NodeFactory nodeFactory;
     private final LinkedList<Block> blocks = new LinkedList<Block>();
     private ProcessorDefinition parent;
-    private String errorHandlerRef;
     private final List<InterceptStrategy> interceptStrategies = new ArrayList<InterceptStrategy>();
 
     // else to use an optional attribute in JAXB2
     public abstract List<ProcessorDefinition> getOutputs();
 
-
     public Processor createProcessor(RouteContext routeContext) throws Exception {
         throw new UnsupportedOperationException("Not implemented yet for class: " + getClass().getName());
     }
@@ -1471,18 +1470,6 @@
         return answer;
     }
 
-    /**
-     * Installs the given <a href="http://camel.apache.org/error-handler.html">error handler</a> builder.
-     *
-     * @param errorHandlerBuilder the error handler to be used by default for all child routes
-     * @return the current builder with the error handler configured
-     */
-    @SuppressWarnings("unchecked")
-    public Type errorHandler(ErrorHandlerBuilder errorHandlerBuilder) {
-        setErrorHandlerBuilder(errorHandlerBuilder);
-        return (Type) this;
-    }
-
     // Transformers
     // -------------------------------------------------------------------------
 
@@ -2158,30 +2145,6 @@
         this.errorHandlerBuilder = errorHandlerBuilder;
     }
 
-    /**
-     * Sets the error handler if one is not already set
-     */
-    protected void setErrorHandlerBuilderIfNull(ErrorHandlerBuilder errorHandlerBuilder) {
-        if (this.errorHandlerBuilder == null) {
-            setErrorHandlerBuilder(errorHandlerBuilder);
-        }
-    }
-
-    public String getErrorHandlerRef() {
-        return errorHandlerRef;
-    }
-
-    /**
-     * Sets the bean ref name of the error handler builder to use on this route
-     */
-    @XmlAttribute(required = false)
-    public void setErrorHandlerRef(String errorHandlerRef) {
-        this.errorHandlerRef = errorHandlerRef;
-        // we use an specific error handler ref (from Spring DSL) then wrap that
-        // with a error handler build ref so Camel knows its not just the default one
-        setErrorHandlerBuilder(new ErrorHandlerBuilderRef(errorHandlerRef));
-    }
-
     @XmlTransient
     public NodeFactory getNodeFactory() {
         if (nodeFactory == null) {

Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java?rev=812883&r1=812882&r2=812883&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java Wed Sep  9 11:02:20 2009
@@ -34,11 +34,11 @@
 import org.apache.camel.Route;
 import org.apache.camel.ServiceStatus;
 import org.apache.camel.builder.ErrorHandlerBuilder;
+import org.apache.camel.builder.ErrorHandlerBuilderRef;
 import org.apache.camel.impl.DefaultRouteContext;
 import org.apache.camel.processor.interceptor.Delayer;
 import org.apache.camel.processor.interceptor.HandleFault;
 import org.apache.camel.processor.interceptor.StreamCaching;
-import org.apache.camel.processor.interceptor.Tracer;
 import org.apache.camel.spi.LifecycleStrategy;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
@@ -274,6 +274,17 @@
         return this;
     }
 
+    /**
+     * Installs the given <a href="http://camel.apache.org/error-handler.html">error handler</a> builder.
+     *
+     * @param errorHandlerBuilder the error handler to be used by default for all child routes
+     * @return the current builder with the error handler configured
+     */
+    public RouteDefinition errorHandler(ErrorHandlerBuilder errorHandlerBuilder) {
+        setErrorHandlerBuilder(errorHandlerBuilder);
+        return this;
+    }
+
     // Properties
     // -----------------------------------------------------------------------
 
@@ -361,6 +372,30 @@
         this.delayer = delayer;
     }
 
+    /**
+     * Sets the bean ref name of the error handler builder to use on this route
+     */
+    @XmlAttribute(required = false)
+    public void setErrorHandlerRef(String errorHandlerRef) {
+        this.errorHandlerRef = errorHandlerRef;
+        // we use an specific error handler ref (from Spring DSL) then wrap that
+        // with a error handler build ref so Camel knows its not just the default one
+        setErrorHandlerBuilder(new ErrorHandlerBuilderRef(errorHandlerRef));
+    }
+
+    public String getErrorHandlerRef() {
+        return errorHandlerRef;
+    }
+
+    /**
+     * Sets the error handler if one is not already set
+     */
+    protected void setErrorHandlerBuilderIfNull(ErrorHandlerBuilder errorHandlerBuilder) {
+        if (this.errorHandlerBuilder == null) {
+            setErrorHandlerBuilder(errorHandlerBuilder);
+        }
+    }
+
     // Implementation methods
     // -------------------------------------------------------------------------
     protected RouteContext addRoutes(Collection<Route> routes, FromDefinition fromType) throws Exception {

Modified: camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpPostWithBodyTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpPostWithBodyTest.java?rev=812883&r1=812882&r2=812883&view=diff
==============================================================================
--- camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpPostWithBodyTest.java (original)
+++ camel/trunk/components/camel-http/src/test/java/org/apache/camel/component/http/HttpPostWithBodyTest.java Wed Sep  9 11:02:20 2009
@@ -107,8 +107,9 @@
         return new RouteBuilder() {
             public void configure() {
                 from("direct:start").setHeader(Exchange.HTTP_METHOD, POST).to("http://www.google.com");
-                from("direct:reset").setHeader(Exchange.HTTP_METHOD, POST).
-                    errorHandler(deadLetterChannel("direct:recovery").maximumRedeliveries(1)).to("http://www.google.com").to("mock:result");
+                from("direct:reset")
+                    .errorHandler(deadLetterChannel("direct:recovery").maximumRedeliveries(1))
+                    .setHeader(Exchange.HTTP_METHOD, POST).to("http://www.google.com").to("mock:result");
                 from("direct:recovery").setHeader(Exchange.HTTP_METHOD, GET).to("http://www.google.com").to("mock:recovery");
             }
         };