|
DSL has been edited by Claus Ibsen (Jul 06, 2008). Content:Java DSLCamel uses a Java Domain Specific Language or DSL for creating Enterprise Integration Patterns or Routes. Camel also supports a Spring based XML configuration as well as a Scala DSL. The benefits of using the Java DSL is that your IDE can smart complete your code as you start typing, rather than having to mess around with buckets of XML. The Java DSL is also very expressive as you can mix and match your own code within the language for _expression_ or Predicate evaluations or easily add a custom Processor. The main entry points for the DSL are
Handling errorsYou can handle errors in a number of ways such as:
Camel uses a strategy to resolve how exceptions should be handled. Using InterceptorsYou can register interceptors on a RouteBuilder so that they are inherited by all child routes. You can also use the DSL itself to write interceptors... // lets log all steps in all routes intercept().to("log:foo").proceed(); from("seda:foo").to("seda:bar"); You can also add a predicate to the intercept() method so that your interceptor will only be invoked if the predicate is true. // lets log messages from gold customers intercept(xpath("/[EMAIL PROTECTED]'gold']").to("log:customer").proceed(); from("seda:foo").to("seda:bar"); Changes in Camel 1.4In Camel 1.4 proceed() is now default, so the examples above can be written as: // lets log all steps in all routes intercept().to("log:foo"); from("seda:foo").to("seda:bar"); Proceed means that Camel will continue the normal route path after the interception. All the examples shown is logging examples where the routing is supposed to continue by its normal path. Camel is so powerful that you can also use interceptors to alter the route path and change the cause of action. intercept(header("istest").isEqualTo("test")).to("seda:test").stop(); See AlsoFor more examples of the DSL in action see |
Unsubscribe or edit your notifications preferences
