I struggle with a few TCK tests which assume that in Decorators and Interceptors you can have an @Inject ct which has a valid InjectionPoint. But I cannot find in the spec how this is supposed to work.
5.5.7 defines in which situations the CDI container must create an InjectionPoint:
An instance of InjectionPoint may represent: • an injected field or a parameter of a bean constructor, initializer method, producer method, disposer method or observer method, or • an instance obtained dynamically using Instance.get().
But if you e.g. look at
@Inject public OrderedEventDeliveryDecorator(@Delegate Event<T> delegate, InjectionPoint ip, BeanManager manager, OrderedEventDeliveryExtension extension)
then this does not fit any requirement imo. Because the Decorator is a dependent bean on the decorated contextual instance. Thus it's 'internal' and does not have any InjectionPoint. This would be different if you would @Inject the Decorator into some other bean...
The TCK test in question is ComplexEventDecoratorTest#testOrderedEvents
|