Hi John, Good to hear from you here! Thanks for the thorough testing, that’s a good catch.
So I’ve looked into it and apparently the problem is two folds: - The implementations do not assume the @Any qualifier by default for programmatic lookup as they do for static injection. - OpenWebBeans does not return the correct set of refined qualifiers when calling InjectionPoint.getQualifiers in producer methods for Instance with selected qualifiers. I have a fix for the former. I’ll polish it a bit and commit it ASAP. For the later, I’ll report an issue in OWB JIRA and reactivate the test case once it gets fixed. Antonin > On 22 Feb 2016, at 13:40, John D. Ament <johndam...@apache.org> wrote: > > Hi all, > > I was looking at the changes that went into Camel 2.17 with CDI injection > support. It seems that injection support doesn't work consistently when > done not using an annotated member. > > I tried a few different ways: > > @Inject > @Any > private Instance<Endpoint> endpointInstance; > > ... > > endpointInstance.select(MockEndpoint.class, new > UriLiteral("mock:outgoing")).get() > > Which consistently gives back (in Weld 1.1.x, 2.x, OWB 1.2.x and OWB 1.6.x) > an error that no beans are defined, even though I have that endpoint > defined. > > Now, if I try the CDI 1.1 way of using the utility class to look up the > instance, it works fine in Weld 2.x but not OWB 1.6.x. As far as I know, > this setup should work in both, and since I know I use pattern in other > apps I don't think its a case of a bug in the impl. I was wondering if any > camel gurus could comment on it? > > https://github.com/johnament/camel/commit/05dd5f6f8cda541fedfc68c6f199e014defe3f09 > > John