AOPPage edited by Eric JohnsonChanges (2)
Full ContentAOPAvailable as of Camel 2.0
Camel has a AOP concept in the DSL allowing you do do some custom before and/or after processing when routing an Exchange. This new AOP can span multiple processors (nodes in the route graph) and it uses endpoint URIs to allow invoking any kind of Camel component. The AOP supports the following callbacks in which you can use 1..n free of choice:
The difference between after and afterFinally is that afterFinally is invoked from a finally block so it will always be invoked no matter what, eg also in case of an exception occur. Using from Java DSLIn this route we want to use the AOP to do a before and after logging. from("jms:queue:inbox") .aop().around("log:before", "log:after") .to("bean:order?method=validate") .to("bean:order?method=handle") .end() .to("jms:queue:order");
Using from Spring DSLIn Spring DSL its nearly the same as in the Java DSL however a bit differently <route> <from uri="jms:queue:inbox"/> <aop beforeUri="log:before" afterUri="log:after"> <to uri="bean:order?method=validate"/> <to uri="bean:order?method=handle"/> </aop> <to uri="jms:queue:order"/> Notice we use attributes on the <aop> tag to chose with AOP concept to use. At runtime that resolves into this messages flow: inbox -> log:before -> bean.validate -> bean.handle -> log:after -> order The aop in Spring DSL have the following attributes:
So in order to do an around we use both the beforeUri and the afterUri. See Also
Change Notification Preferences
View Online
|
View Changes
|
Add Comment
|
- [CONF] Apache Camel > AOP confluence
- [CONF] Apache Camel > AOP confluence
- [CONF] Apache Camel > AOP confluence