Marko, I don't like the way your patch partitions injected fields and initializers at runtime. This would be executed for every bean instance initialization which is IMHO unnecessary. Instead, I would simply alter Beans.getFieldInjectionPoints() to recognize extension-provided AnnotatedType (BackedAnnotatedType vs UnbackedAnnotatedType in 2.0) and treat it differently (partition extension-provided AnnotatedType's injection points and initializers). This would all be done once at bootstrap. The code path would remain untouched for non-modified AnnotatedTypes.
Marko, I don't like the way your patch partitions injected fields and initializers at runtime. This would be executed for every bean instance initialization which is IMHO unnecessary. Instead, I would simply alter Beans.getFieldInjectionPoints() to recognize extension-provided AnnotatedType (BackedAnnotatedType vs UnbackedAnnotatedType in 2.0) and treat it differently (partition extension-provided AnnotatedType's injection points and initializers). This would all be done once at bootstrap. The code path would remain untouched for non-modified AnnotatedTypes.