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");
}
};