Almost there too except on "declare qualifier" which was for me through annotation which implied custom beans had to do it themself. Not sure to be honest.
@Mark: how do you read it on your side? Romain Manni-Bucau @rmannibucau <https://twitter.com/rmannibucau> | Blog <https://blog-rmannibucau.rhcloud.com> | Old Blog <http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory <https://javaeefactory-rmannibucau.rhcloud.com> 2016-12-28 14:42 GMT+01:00 John D. Ament <johndam...@apache.org>: > It does not. I'm not sure I should add it though. When I look at the > relevant section of the spec > http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#programmatic_lookup > <http://docs.jboss.org/cdi/spec/2.0.EDR2/cdi-spec.html#programmatic_lookup> > the > example mentions that the resulting bean only has the selected qualifier. > > In addition section 2.3.1 > http://docs.jboss.org/cdi/spec/1.2/cdi-spec.html#builtin_qualifiers says > "Every bean has the built-in qualifier @Any, even if it does not explicitly > declare this qualifier," so it sounds like the correct thing to do is to > add @Any to any custom registered beans. > > So that means the test is right, just something missing when > programmatically adding beans. > > John > > On Wed, Dec 28, 2016 at 8:33 AM Romain Manni-Bucau <rmannibu...@gmail.com> > wrote: > > > I'm not sure about this one since pretty much all beans should match Any, > > is my assumption your database bean doesnt add it correct? > > > > > > Romain Manni-Bucau > > @rmannibucau <https://twitter.com/rmannibucau> | Blog > > <https://blog-rmannibucau.rhcloud.com> | Old Blog > > <http://rmannibucau.wordpress.com> | Github < > > https://github.com/rmannibucau> | > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory > > <https://javaeefactory-rmannibucau.rhcloud.com> > > > > 2016-12-28 14:29 GMT+01:00 John D. Ament <johndam...@apache.org>: > > > > > Looks like you already applied a fix. There's still one issue. Your > > bean > > > behind CDI.current() has an any qualifier on it. AFAIK it should not. > > > This causes programmatic lookup to try to include Any in the qualifiers > > > which doesn't make sense. Since you fixed the NPE now I'm able to see > > that > > > ( > > > > > > Qualifiers: > > > [@javax.enterprise.inject.Any(),@ws.ament.hammock.jpa. > > > Database(value="__default")] > > > ) > > > > > > I'm inclined to say that InstanceBean should be extended to have a > second > > > constructor which takes qualifiers (since @any is expected in @Inject > > @Any > > > Instance<Blah>) and pass that up the chain. Can be as simple as > calling > > > the other constructor in BeanAttributesImpl. > > > > > > I haven't tried it yet, but I suspect you may need to strip Any from > the > > > qualifiers as well. I think the > > > test InstanceQualifierInjectionPointTest.checkQualfiers may be > incorrect > > > as > > > well. > > > > > > I can give you a patch to fix this if you're in agreement that it's > right > > > course of action. > > > > > > John > > > > > > On Wed, Dec 28, 2016 at 5:13 AM Romain Manni-Bucau < > > rmannibu...@gmail.com> > > > wrote: > > > > > > > think I spotted the issue(s): > > > > > > > > 1. a NPE when missing an injection point (trivial to solve) > > > > 2. we dont strip Default qualifier when user > > > > select(AnotherQualifier.LITERAL) which leads to something pretty > much > > > never > > > > resolvable > > > > > > > > will check if i can fix it in my spare time today > > > > > > > > > > > > Romain Manni-Bucau > > > > @rmannibucau <https://twitter.com/rmannibucau> | Blog > > > > <https://blog-rmannibucau.rhcloud.com> | Old Blog > > > > <http://rmannibucau.wordpress.com> | Github < > > > > https://github.com/rmannibucau> | > > > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory > > > > <https://javaeefactory-rmannibucau.rhcloud.com> > > > > > > > > 2016-12-28 10:11 GMT+01:00 Romain Manni-Bucau <rmannibu...@gmail.com > >: > > > > > > > > > looks like a bug, we reused InstanceBean ( > https://github.com/apache/ > > > > > openwebbeans/blob/trunk/webbeans-impl/src/main/java/ > > > > > org/apache/webbeans/container/OwbCDI.java#L45) but this only works > > > with > > > > > injection points. Using our injection resolver would work (from the > > > > > webbeanscontext). > > > > > > > > > > We have a release coming very soon, do you want to propose a patch? > > > Happy > > > > > to help if you need. > > > > > > > > > > > > > > > Romain Manni-Bucau > > > > > @rmannibucau <https://twitter.com/rmannibucau> | Blog > > > > > <https://blog-rmannibucau.rhcloud.com> | Old Blog > > > > > <http://rmannibucau.wordpress.com> | Github > > > > > <https://github.com/rmannibucau> | LinkedIn > > > > > <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory > > > > > <https://javaeefactory-rmannibucau.rhcloud.com> > > > > > > > > > > 2016-12-28 1:08 GMT+01:00 John D. Ament <johndam...@apache.org>: > > > > > > > > > >> Its a single classloader. Programmatic lookup is just > > > > >> > > > > >> CDI.current().select(SomeClass.class).select(someAnnotationL > > > > >> iteral).get(); > > > > >> > > > > >> This fails, I would imagine, at least last time I did this on OWB, > > > > because > > > > >> there's no injection point defined > > > > >> > > > > >> @Inject > > > > >> @SomeAnnotation > > > > >> private SomeClass sc; > > > > >> > > > > >> and the bean has scope dependent. > > > > >> > > > > >> John > > > > >> > > > > >> On Tue, Dec 27, 2016 at 6:29 PM Romain Manni-Bucau < > > > > rmannibu...@gmail.com > > > > >> > > > > > >> wrote: > > > > >> > > > > >> > Hi John > > > > >> > > > > > >> > What does the lookup look like? Using the related bean manager > un > > > > >> several > > > > >> > apps with success. > > > > >> > > > > > >> > Side note: is your classloader well setup? > > > > >> > > > > > >> > > > > > >> > Le 27 déc. 2016 23:29, "John D. Ament" <johndam...@apache.org> > a > > > > écrit > > > > >> : > > > > >> > > > > > >> > > Hi, > > > > >> > > > > > > >> > > So I'm starting to run into my old friend, where instance > > doesn't > > > > work > > > > >> > the > > > > >> > > same in OWB and Weld. Basically anytime I use CDI.current() > to > > > > >> resolve a > > > > >> > > bean, it fails. The same lookup works when using > > > > >> > BeanManager.getReference, > > > > >> > > or even the DeltaSpike utilities. > > > > >> > > > > > > >> > > My understanding is that I should be able to look up any bean > > via > > > > >> > > CDI.current() not just beans that have injection targets. So > I > > > was > > > > >> > > wondering, would it make sense to relax the requirement on > > > injection > > > > >> > > points? > > > > >> > > > > > > >> > > John > > > > >> > > > > > > >> > > > > > >> > > > > > > > > > > > > > > > > > > > >