My use is a templated producer. Named annotation is used in two ways: empty name indicates a template parameter or return value for a template producer. non-empty name is used to inject concrete Named instance. 1. Collect all Named injection points. 2. Collect all Named producer templates. 3. Create the type to type graph of producers that will support the required concrete injections. 4. Veto the template producers. 5. Add concrete Named producers (wrapping the template producers) according the above graph. The PP event is needed to obtain the instance producer of the template method. The producer template bean must be vetoed at PBA event. |