}
}
}
}
//we must use the same context over the life of the instance
SimpleInterceptorFactoryContext interceptorContext = new SimpleInterceptorFactoryContext();
Object objectInstance = createObjectInstance();
//apply injections, and add the clean up interceptors to the pre destroy chain
//we want interceptors that clean up injections to be last in the interceptor chain
//so the injections are not cleaned up until all @AroundInvoke methods have been run
AbstractComponentInstance instance = constructComponentInstance(objectInstance, interceptorContext);
final List<ComponentInjector.InjectionHandle> injectionHandles = applyInjections(instance);
interceptorContext.getContextData().put(AbstractComponent.INJECTION_HANDLE_KEY, injectionHandles);
interceptorContext.getContextData().put(AbstractComponent.INSTANCE_KEY, objectInstance);
interceptorContext.getContextData().put(AbstractComponent.COMPONENT_INSTANCE_KEY, instance);
performLifecycle(instance, postConstruct, interceptorContext);
// process the interceptors bound to individual methods
// the interceptors are tied to the lifecycle of the instance