This would still work, you are replacing an existing annotated type, not adding a new one for the same type.
We're talking about having an AnnotatedType<Foo>, and adding another one of AnnotatedType<Foo>. On 15 Aug 2012, at 17:42, Lincoln Baxter, III wrote: > I believe that Forge creates new Annotated Types to replace the existing one > in the event-bus extension. This is done so that Qualifiers may be added to > parameters of event observers. > > You can see the code here. I'm not sure if this is related to your > discussion, but it seems close so I thought I would mention it: > > https://github.com/forge/core/blob/master/event-bus-api/src/main/java/org/jboss/forge/bus/cdi/ObserverCaptureExtension.java > > This extension took a good deal of work to produce, and is used throughout > Forge. As long as we can capture events like we are doing here, it could be > re-implemented, but it would potentially be a lot of work. > > ~Lincoln > > On Wed, Aug 15, 2012 at 9:17 AM, Pete Muir <[email protected]> wrote: > All, the CDI EG requires feedback on an item in the spec which is not clear, > and has been implemented differently between implementations, and is not TCK > tested. As Seam-dev contains lots of extensions authors, requesting feedback. > Please either send direct to me, or post to [email protected] :-) > > Stuart, your feedback on this would be good, as it relates to XML config. > > ------------------------------------------------------------------------------------------------------------------------------------------------ > > Multiple Annotated Types > ==================== > > https://issues.jboss.org/browse/CDI-58 > > This concerns whether there can be greater than one annotated type per class > instance in the JVM. Gavin intended there should be, principally to support > an XML configuration dialect, which could introduce multiple versions of a > class, each with a different qualifier. However, this is not TCK tested, and > implementations vary in how they support this. > > We discussed that this makes an implementation considerably more complex (as > there is no easy way to uniquely identify an annotated type e.g. for > serialization), and also is pretty confusing for a user (as you now get > multiple ProcessAnnotatedType events for each class, making it hard to know > which one you want to change). > > We looked at alternative solutions, and concluded that if all use cases can > be satisfied by adding a new bean, rather than a new annotated type, we would > like to explicitly specify that there is only one annotated type per class > instance. In CDI 1.1 it is already much easier to add and manipulate beans > from annotated types, so we believe that the correct thing here is take this > route. > > ------------------------------------------------------------------------------------------------------------------------------------------------ > > Does anyone create multiple AnnotatedTypes per class instance? If so, can you > please describe: > > a) why you need to do this > b) whether you could reimplement by directly creating beans (given that CDI > 1.1 allows you to [1]) > c) how much effort it would be to reimplement/how much of your codebase this > would affect > > Thanks! > > Pete > > [1] > > BeanAttributes ba = beanManager.cerateBeanAttributes(annotatedType); > InjectionTarget it = beanmanager.createInjectionTarget(annotatedType); > Bean b = beanManager.createBean(ba, clazz, it); > > or > > BeanAttributes ba = beanManager.cerateBeanAttributes(annotatedFieldOrMethod); > Producer p = beanmanager.createProducer(annotatedFieldOrMethod); > Bean b = beanManager.createBean(ba, clazz, p); > > The Bean can then be registered using > > afterBeanDiscovery.addBean(b); > _______________________________________________ > seam-dev mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/seam-dev > > > > -- > Lincoln Baxter, III > http://ocpsoft.org > "Simpler is better." _______________________________________________ seam-dev mailing list [email protected] https://lists.jboss.org/mailman/listinfo/seam-dev
