Hi Have you looked at org.apache.camel.spi.InterceptStrategy?
On Mon, Jul 5, 2010 at 5:00 PM, Mark Proctor <mproc...@codehaus.org> wrote: > > As well as using Policy to wrap the child processors, I'd like to be able to > change/augment the child definitions before they are built. My current use > case for this is so I can augment the DataFormats, with additional > configurations. Additionally this Policy also takes care of setting the > current context ClassLoader, but that already works fine with the existing > Policy wrap api. > > API comptability is a problem, but as a sketch to what I'm trying to > achieve, here is a change that while a little clunky (due api compatability) > should achieve the job. This allows the wrap to still call the child > Process, via the delegate, but to also inspect and change the child > Definitions prior to building. > > public interface DefinitionAwarePolicy extends Policy { > Processor wrap(RouteContext routeContext, > ProcessorDefinition<ProcessorDefinition> processorDefinition, Processor > processor); > } > > PolicyDefinition. > public Processor createProcessor(RouteContext routeContext) throws > Exception { > DelegateProcessor childProcessor = new DelegateProcessor(); > > Policy policy = resolvePolicy(routeContext); > ObjectHelper.notNull(policy, "policy", this); > Processor target; > if ( policy instanceof Policy ) { > target = policy.wrap(routeContext, childProcessor); > } else { > target = ((DefinitionAwarePolicy)policy).wrap(routeContext, > this, childProcessor); > } > > childProcessor.setProcessor( this.createChildProcessor(routeContext, > true) ); > > // wrap the target so it becomes a service and we can manage its > lifecycle > WrapProcessor wrap = new WrapProcessor(target, childProcessor); > return wrap; > } > -- > View this message in context: > http://camel.465427.n5.nabble.com/Using-Policy-to-alter-Definitions-before-building-tp696567p696567.html > Sent from the Camel - Users mailing list archive at Nabble.com. > -- Claus Ibsen Apache Camel Committer Author of Camel in Action: http://www.manning.com/ibsen/ Open Source Integration: http://fusesource.com Blog: http://davsclaus.blogspot.com/ Twitter: http://twitter.com/davsclaus