hi, please send the same mail to the weld community. codi doesn't perform the injection itself.
thx & regards, gerhard 2011/12/10 oversteer <brendanhealey...@yahoo.co.uk> > > In the following code I'm trying to inject a SessionScoped bean into a > stateless EJB, but I want to do the @Inject in an abstract base class of > the > EJB. According to the CDI spec it seems to suggest that this should work: > > "4.2. Inheritance of member-level metadata > > Suppose a class X is extended directly or indirectly by the bean class of a > managed bean or session bean Y. > > If X declares an injected field x then Y inherits x." > > What happens is that I can access the inherited protected member > sessionView > from TestEjb, but not from code within the base class. When I say "can > access", I mean that the injected member is accessible at runtime and is > not > null. > > @Named > @ViewAccessScoped > public class JsfBean extends implements Serializable { > @Inject private TestEjb ejb; > > SessionView s1 = ejb.getSessionViewChild(); // sessionView injected ok > SessionView s2 = ejb.getSessionViewBase(); // s2 is null > } > > @Named > @SessionScoped > public class SessionView implements Serializable {} > > @Stateless > public class TestEjb extends BaseClass implements Serializable { > > public SessionView getSessionViewChild() { > return sessionView; > } > } > > public abstract class BaseClass implements Serializable { > @Inject > protected SessionView sessionView; > > public SessionView getSessionViewBase() { > return sessionView; > } > } > > What happens is that s1 is a valid SessionView reference, but s2 is null. > It > now turns out that if I change the access of sessionView in BaseClass to > private, it works, but only if I clean & build before re-deployment. It > will > then consistently work - unless I change it back to protected, in which > case > it will consistently not work. > > I am using MyFaces CODI 1.0.1 in conjunction with Weld from Glassfish 3.1.1 > (v20110404-1554). I am also using JDK 7u1. I'm not really sure what could > be > causing this, weld, codi, jdk7?? > > Thanks. > -- > View this message in context: > http://old.nabble.com/%40Inject%27ed-protected-base-class-member-access-problem-tp32952025p32952025.html > Sent from the MyFaces - Users mailing list archive at Nabble.com. > >