Created and added patch to https://issues.apache.org/jira/browse/OWB-1164 If you guys want to take a look. I can also raise a PR but since you're on SVN... dunno.
John On Wed, Dec 28, 2016 at 4:05 PM Romain Manni-Bucau <rmannibu...@gmail.com> wrote: > Ok, can do it tmr if nobody beats me at it > > Le 28 déc. 2016 21:41, "Mark Struberg" <strub...@yahoo.de.invalid> a > écrit : > > > John is right, we should likely check for @Any in ThirdPartyBean and add > > it if missing. > > > > > > LieGrue, > > Strub > > > > > > > Am 28.12.2016 um 14:44 schrieb Romain Manni-Bucau < > rmannibu...@gmail.com > > >: > > > > > > 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 > > >>>>>>>>> > > >>>>>>>> > > >>>>>>> > > >>>>>> > > >>>>>> > > >>>>> > > >>>> > > >>> > > >> > > > > >