Ok, yeah, Optional was only a symptom it seems not the actual problem.

With Weld, if alternative == true and there's no beans of the base type
registered, that bean is ignored.  So I changed the ConfigInjectionBean to
only mark alternative for provider types.

There's two errors left with Weld.

1. It cannot find the InjectionPoints for a given bean.  I think we should
change the behavior so that for each unique key/type combo we're
registering a bean, this way we can pass the injection points in for a key.

Tests run: 43, Failures: 2, Errors: 0, Skipped: 1, Time elapsed: 2.05 sec
<<< FAILURE! - in TestSuite
can_inject_simple_values_when_defined(org.eclipse.microprofile.config.tck.CDIPlainInjectionTest)
 Time elapsed: 0.008 sec  <<< FAILURE!
java.lang.IllegalStateException: Could not retrieve InjectionPoint
at
org.apache.geronimo.config.cdi.ConfigExtension$5.create(ConfigExtension.java:200)
at
org.jboss.weld.contexts.unbound.DependentContextImpl.get(DependentContextImpl.java:70)
at
org.jboss.weld.bean.ContextualInstanceStrategy$DefaultContextualInstanceStrategy.get(ContextualInstanceStrategy.java:100)
at org.jboss.weld.bean.ContextualInstance.get(ContextualInstance.java:50)
at
org.jboss.weld.manager.BeanManagerImpl.getReference(BeanManagerImpl.java:676)
at
org.jboss.weld.manager.BeanManagerImpl.getInjectableReference(BeanManagerImpl.java:776)
at
org.jboss.weld.injection.FieldInjectionPoint.inject(FieldInjectionPoint.java:92)
at org.jboss.weld.util.Beans.injectBoundFields(Beans.java:335)
at org.jboss.weld.util.Beans.injectFieldsAndInitializers(Beans.java:346)
at
org.jboss.weld.injection.producer.ResourceInjector$1.proceed(ResourceInjector.java:69)
at
org.jboss.weld.injection.InjectionContextImpl.run(InjectionContextImpl.java:48)
at
org.jboss.weld.injection.producer.ResourceInjector.inject(ResourceInjector.java:71)
at
org.jboss.weld.injection.producer.BasicInjectionTarget.inject(BasicInjectionTarget.java:117)

2. I think it may be related.  I suspect because Weld cannot find the
injection points, we're getting a NPE

Caused by: java.lang.NullPointerException
at
org.apache.geronimo.config.cdi.ConfigExtension.getName(ConfigExtension.java:260)
at
org.apache.geronimo.config.cdi.ConfigExtension.lambda$null$2(ConfigExtension.java:136)
at
org.apache.geronimo.config.cdi.ConfigExtension$2.create(ConfigExtension.java:165)
at
org.apache.geronimo.config.cdi.ConfigExtension$2.create(ConfigExtension.java:162)
at
org.jboss.weld.contexts.unbound.DependentContextImpl.get(DependentContextImpl.java:70)

John

On Sat, Jul 8, 2017 at 4:13 PM Mark Struberg <[email protected]> wrote:

> According to the CDI spec this should work in my opinion.
>
> LieGrue,
> strub
>
>
>
> > Am 08.07.2017 um 17:15 schrieb John D. Ament <[email protected]>:
> >
> > Hey guys
> >
> > I made some more enhancements within the Geronimo Config impl.  They
> added three new converter types, all working now.
> >
> > I downgraded back to OWB 1.7.3 since it looks like they won't be signing
> JARs for the release.
> >
> > I have a fix pending for the Weld Arquillian Adapter to handle service
> loaders in child JARs.  With that in, and a local build, I'm down to three
> TCK failures on Weld.  All three have to do with the injection of Optional,
> which I've raised https://issues.jboss.org/browse/WELD-2403 to deal with.
> >
> > I'm fairly confident this won't work on Weld right now.
> >
> > John
>
>

Reply via email to