[jboss-jira] [JBoss JIRA] (WFLY-2722) @EJB injection in interceptor class and in target class result in injection of instances of two different classes
Stuart Douglas (JIRA)
issues at jboss.org
Mon Jan 13 05:30:33 EST 2014
[ https://issues.jboss.org/browse/WFLY-2722?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stuart Douglas resolved WFLY-2722.
----------------------------------
Resolution: Rejected
The current behaviour is fine.
@EJB does not do a look up, instead it resolves the EJB and then binds it to the naming context. In effect there will be two entries bound to the shared naming context:
java:comp/env/com....Bar/animal
java:comp/env/com....BarInterceptor/animal
The actual EJB that is resolved depends on the packaged location. I know this is not super intuitive, but it is what the spec requires.
> @EJB injection in interceptor class and in target class result in injection of instances of two different classes
> -----------------------------------------------------------------------------------------------------------------
>
> Key: WFLY-2722
> URL: https://issues.jboss.org/browse/WFLY-2722
> Project: WildFly
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: CDI / Weld
> Affects Versions: 8.0.0.CR1
> Reporter: Matus Abaffy
> Assignee: Jozef Hartinger
>
> Interceptors spec, 2.2.1 - Interceptor Environment:
> bq. Interceptor class shares the enterprise naming context of its associated target class. (1)
> Assume the following scenario:
> Ear: test-ejb.jar, test1.war, test2.war
> test-ejb.jar: Animal, BarBinding
> test1.war: BarInterceptor, Dog
> test2.war: Bar, Cat
> Short description of the classes:
> {code}
> @Stateful public class Dog implements Animal {...}
> {code}
> {code}
> @Stateful public class Cat implements Animal {...}
> {code}
> {code}
> @BarBinding @Stateless
> public class Bar {
> @EJB
> Animal animal;
> }
> {code}
> {code}
> @BarBinding @Priority(1000) @Interceptor
> public class BarInterceptor {
> @EJB
> Animal animal;
> }
> {code}
> Bar gets injected an instance of Cat, whereas BarInterceptor gets injected an instance of Dog, which IMHO contradicts (1).
> Test case at: https://github.com/cdi-spec/cdi-tck/pull/38
> (InterceptorEnvironmentJNDITest, InterceptorEnvironmentJNDISessionBeanTest)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list