Hi folks! There is currently a VOTE on the CDI EG about how to implement modularity. It looks like a horizontal isolation approach will be selected.
I personally don't like that as this will NOT be backward compatible. Currently the BeanManager of the WebApp which receives the request will determine the Beans and Contextual Instances resolved for InjectionPoints and the Proxies. The EG likes to change this to switching the 'responsible' BeanManager depending on the JAR you are in. Similar to what EJBs do with switching the ThreadContextClassLoader. I'm not yet sure how to implement this to be honest. E.g. it's absolutely impossible to do this for @Dependent Beans which gets created in a producerMethod or field. @Dependent scoped beans do not have any proxy to switch the TCCL around. I'm also strictly -1 for all this stuff in performance hindsight. It will e.g. not be possible anymore to do some Bean and instance caching in our resolvers and proxies. So we will be 5x slower in this modus... At the end of the day we will need to implement a mode which is spec compatible at least. But noone says that this must be the preferred modus for OWB! I'll keep you updated about the final decision. LieGrue, strub