BeanMetaData injectorBMD = this.createInjectorBMD(injectorMCBeanName, eeInjector, switchBoard);
this.jbossUnit.addAttachment(BeanMetaData.class + ":" + injectorMCBeanName, injectorBMD);
// Add the Injector dependency on the deployment (so that the DU doesn't
// get started till the Injector is available)
DependencyPolicy dependsPolicy = ejbContainer.getDependencyPolicy();
dependsPolicy.addDependency(injectorMCBeanName);
log.debug("Added Injector dependency: " + injectorMCBeanName + " for EJB: " + ejbContainer.getEjbName() + " in unit " + this.jbossUnit);
}
// Now setup injectors for the interceptors of the bean
InterceptorsMetaData interceptors = JBossMetaData.getInterceptors(beanMetaData.getEjbName(), beanMetaData.getJBossMetaData());
if (interceptors == null || interceptors.isEmpty())
{
return;
}
for (InterceptorMetaData interceptor : interceptors)
{
if (interceptor == null)
{
continue;
}
JndiEnvironmentRefsGroup jndiEnvironmentForInterceptor = new JndiEnvironmentImpl(interceptor, ejbContainer.getClassloader());
// For optimization, we'll create an Injector only if there's atleast one InjectionTarget
if (this.hasInjectionTargets(jndiEnvironmentForInterceptor))
{
// create the injector
EEInjector lazyEEInjector = new EEInjector(jndiEnvironmentForInterceptor);
// add the injector the injection manager
injectionManager.addInjector(lazyEEInjector);
// Deploy the Injector as a MC bean (so that the fully populated naming context (obtained via the SwitchBoard
// Barrier) gets injected.
String interceptorInjectorMCBeanName = this.getInjectorMCBeanNamePrefix() + ",bean=" + ejbContainer.getEjbName() + ",interceptor=" + interceptor.getName();
BeanMetaData injectorBMD = this.createInjectorBMD(interceptorInjectorMCBeanName, lazyEEInjector, switchBoard);
this.jbossUnit.addAttachment(BeanMetaData.class + ":" + interceptorInjectorMCBeanName, injectorBMD);
// Add the Injector dependency on the deployment (so that the DU doesn't
// get started till the Injector is available)
DependencyPolicy dependsPolicy = ejbContainer.getDependencyPolicy();
dependsPolicy.addDependency(interceptorInjectorMCBeanName);
log.debug("Added Injector dependency: " + interceptorInjectorMCBeanName + " for interceptor "
+ interceptor.getName() + " of EJB: " + ejbContainer.getEjbName() + " in unit " + this.jbossUnit);
}
}