Yes I will publish it this afternoon and I send you the link so you can check it. Thank you so much,
2014-04-10 9:11 GMT+02:00 Romain Manni-Bucau <[email protected]>: > do you have the setup i can clone to check it? Managed EM are > something different than normal beans btw (it works for it) > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > > 2014-04-10 8:56 GMT+02:00 Alex Soto <[email protected]>: > > Hi Romain, > > > > thank you so much for your quick answer. I am not an expert in CDI but I > > think that this should be changed, to a more strict mode, let me show an > > example that this could confuse people: > > > > Let's suppose we have two classes which each one produces same interface > > (but different implementation) with different qualifier: > > > > class A { > > > > @Produces > > @MyQualifier1 > > public C build() { > > .... > > } > > > > and: > > > > > > class B { > > > > @Produces > > @MyQualifier2 > > public C build() { > > ... > > } > > > > } > > > > > > Than I could write an Arquillian test and miss to add one of those > classes > > (the A or the B) then when I run the test I could being inject an > instance > > which is not the required one, and having a failing test (or even worse a > > fail pass test) which will be only noticed when the real code was used. > > > > So IMO I think that would be better to inject nothing and throw an error > > but of course I understand that this is a CDI spec problem, not a TomEE > > problem, so maybe from the point of view of TomEE a warning or something > > similar could be written. > > > > WDYT? > > > > > > > > 2014-04-09 16:31 GMT+02:00 Romain Manni-Bucau <[email protected]>: > > > >> Hmm, IIRC it injects by type if the qualifier doesn't matches. > >> Romain Manni-Bucau > >> Twitter: @rmannibucau > >> Blog: http://rmannibucau.wordpress.com/ > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > >> Github: https://github.com/rmannibucau > >> > >> > >> > >> 2014-04-09 15:23 GMT+02:00 Alex Soto <[email protected]>: > >> > Hello, > >> > > >> > Currently I am developing a demo application I have start playing with > >> > @Produces method and Entity Manager. Let me show the code: > >> > > >> > @ApplicationScoped > >> > > >> > public class DataSourceProducer { > >> > > >> > @PersistenceContext(unitName = "bank") > >> > > >> > EntityManager em; > >> > > >> > @Produces @BankEntityManager EntityManager entityManager() { > >> > > >> > return this.em; > >> > > >> > } > >> > > >> > } > >> > > >> > > >> > As you can see I have annotated the produced method with a qualifier. > >> > > >> > > >> > Then I have two Stateless "DAOs": > >> > > >> > One that inject entitymanager as: > >> > > >> > @Inject > >> > > >> > @BankEntityManager > >> > > >> > EntityManager em; > >> > > >> > and another one that injects as: > >> > > >> > @Inject > >> > > >> > @MyEnum > >> > > >> > EntityManager em; > >> > > >> > Notice that the qualifier is different, but when I run the test the > >> entity > >> > manager is injected inside DAO in both cases. I don't understand why > this > >> > happens if @MyEnum annotation is not used as qualifier in any other > place > >> > nor in conjunction with @Produces. > >> > > >> > Any idea why this happens? > >> > > >> > Thank you so much. > >> > > > > > > > > -- > > +----------------------------------------------------------+ > > Alex Soto Bueno - Computer Engineer > > www.lordofthejars.com > > +----------------------------------------------------------+ > -- +----------------------------------------------------------+ Alex Soto Bueno - Computer Engineer www.lordofthejars.com +----------------------------------------------------------+
