Right now, it's not explicitly defined whether {{EjbDescriptor}} instances passed to {{resolveEjb()}} and {{registerInterceptors()}} are of the same implementation as provided by {{BeanDeploymentArchive.getEjbs()}}. Some integrators expect to receive the same instances as provided. However, Weld internally an {{EjbDescriptor}} wrapper is using a internal implementation wrapping the original used .
Moreover, And it seems for {{resolveEjb()}} a delegate is always passed (see also {{SessionBean.createReference()}}) but for {{registerInterceptors()}} the internal wrapper is passed.
I believe we should pass the delegate for both of the methods but also clarify that an integrator should only work with {{EjbDescriptor}} contract .
|