Package org.apache.camel.spi
Interface Policy
- All Known Subinterfaces:
AuthorizationPolicy
,TransactedPolicy
public interface Policy
A strategy capable of applying interceptors to a processor.
Its strongly advised to use an
AsyncProcessor
as the returned wrapped
Processor
which ensures the policy works well with the asynchronous routing engine. You can use the
org.apache.camel.processor.DelegateAsyncProcessor
to easily return an AsyncProcessor
and override the
AsyncProcessor.process(org.apache.camel.Exchange, org.apache.camel.AsyncCallback)
to
implement your interceptor logic. And just invoke the super method to continue routing.
Mind that not all frameworks supports asynchronous routing, for example some transaction managers, such as Spring
Transaction uses the current thread to store state of the transaction, and thus can't transfer this state to other
threads when routing continues asynchronously.-
Method Summary
-
Method Details
-
beforeWrap
Hook invoked before the wrap. This allows you to do any custom logic before the processor is wrapped. For example to manipulate thedefiniton
.- Parameters:
route
- the route contextdefinition
- the processor definition
-
wrap
Wraps any applicable interceptors around the given processor.- Parameters:
route
- the route contextprocessor
- the processor to be intercepted- Returns:
- either the original processor or a processor wrapped in one or more processors
-