Hi folks! I try to sum up what I like to do next.
I tried to get my head over Producer<T> and InjectionTarget<T>. I think it's not very clear what must be done from the spec perspective and I know that we initially developed this under enormous time constraints. Thus the part is in a pretty bad shape. Let me first explain what those 2 interfaces make a.) they are specced in CDI SPI 11.2, so we need to implement them. b.) they can get exchanged via portable CDI Extensions It's not yet clear if the ProcessProducer#setProducer (and similar for InjectionTarget) are only meant to _wrap_ existing Producers or if an Extension can plugin in a completely own implementation. c.) currently we have Bean -> Producer/InjectionTarget -> Bean. But that's bollocks! The Producer/InjectionTarget should really only invoke the respective methods and must not have any Bean information at all. Instead we should slice out all the respective information (producer method/disposal methos/ inject ct/ postconstruct method/ predestroy method/ ...) from the various Beans and move them to Producer and InjectionTarget d.) some of the methods do not pass the CreationalContext, so we need to do any interceptor stuff 'outside'. We could create an own Interceptor as last in the chain which calls the Producer/IT. e.) We really have way too many Beans I fear ^^ f.) Our contexts should get cleaned up. They are a mess and unnecessarily complex. g.) I started with an own Arquillian adaptor. Time to finish that work ;) LieGrue, strub