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
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to