public Processor createProcessor(RouteContext routeContext) throws Exception {
Processor childProcessor = this.createChildProcessor(routeContext, true);
Policy policy = resolvePolicy(routeContext);
ObjectHelper.notNull(policy, "policy", this);
Processor target = policy.wrap(routeContext, childProcessor);
// wrap the target so it becomes a service and we can manage its lifecycle
WrapProcessor wrap = new WrapProcessor(target, childProcessor);
return wrap;
}