if you call get() can be yes. Happy to help if you can sort out a test like
the one i sent.


Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog
<https://rmannibucau.metawerx.net/> | Old Blog
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> |
LinkedIn <https://www.linkedin.com/in/rmannibucau>

2017-12-18 15:18 GMT+01:00 John D. Ament <[email protected]>:

> We register a single bean per injection point.  That bean handles the look
> up but only returns the type of the injection point.  But its still a bit
> odd.
>
> I added CDI.current().select(int[].class, new ConfigProperty...) to my
> test
> to see what happens.  In Weld, I see it call the producer but fail (because
> of missing annotations).  In OWB, it doesn't call the bean's create method
> at all.  Which makes me think its an OWB issue.  I'll see if I can come up
> with a local test case.
>
> John
>
> On Mon, Dec 18, 2017 at 8:50 AM Romain Manni-Bucau <[email protected]>
> wrote:
>
> > Isn't it cause we reuse a generic producer?
> >
> >
> > Romain Manni-Bucau
> > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > <https://rmannibucau.metawerx.net/> | Old Blog
> > <http://rmannibucau.wordpress.com> | Github <
> > https://github.com/rmannibucau> |
> > LinkedIn <https://www.linkedin.com/in/rmannibucau>
> >
> > 2017-12-18 13:01 GMT+01:00 John D. Ament <[email protected]>:
> >
> > > That's good that this works. However, I wonder if my issue is specific
> to
> > > 3rd Party Bean creation?  Same problem seems to be on both OWB and
> Weld,
> > > which makes me think it's an impl issue, but I can't think of anything
> > else
> > > required on the impl side.
> > >
> > > Bean.getTypes() correctly returns String[].class
> > > qualifiers are correct
> > >
> > > The create method on the bean is never invoked, the injection point is
> > > always null.
> > >
> > > John
> > >
> > > On Mon, Dec 18, 2017 at 3:59 AM Romain Manni-Bucau <
> > [email protected]>
> > > wrote:
> > >
> > > > Works for me:
> > > >
> > > > public class ArrayProducerTest extends AbstractUnitTest
> > > > {
> > > >
> > > >     @Test
> > > >     public void test()
> > > >     {
> > > >         startContainer(StringProducer.class);
> > > >
> > > >         final String[] produced1 = getInstance(String[].class);
> > > >         final StringProducer[] produced2 =
> > > > getInstance(StringProducer[].class);
> > > >
> > > >         Assert.assertEquals(1, produced1.length);
> > > >         Assert.assertEquals("string", produced1[0]);
> > > >
> > > >         Assert.assertEquals(1, produced2.length);
> > > >         Assert.assertNotNull(produced2[0]);
> > > >
> > > >         shutDownContainer();
> > > >
> > > >     }
> > > >
> > > >     public static class StringProducer
> > > >     {
> > > >         @Produces
> > > >         public String[] produces()
> > > >         {
> > > >             return new String[] { "string" };
> > > >         }
> > > >
> > > >         @Produces
> > > >         public StringProducer[] produces2()
> > > >         {
> > > >             return new StringProducer[] { this };
> > > >         }
> > > >     }
> > > >
> > > > }
> > > >
> > > >
> > > >
> > > > Romain Manni-Bucau
> > > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > > <http://rmannibucau.wordpress.com> | Github <
> > > > https://github.com/rmannibucau> |
> > > > LinkedIn <https://www.linkedin.com/in/rmannibucau>
> > > >
> > > > 2017-12-18 9:15 GMT+01:00 Mark Struberg <[email protected]>:
> > > >
> > > > > I think it should work.
> > > > >
> > > > > Could you please create a ticket?
> > > > >
> > > > > txs and LieGrue,
> > > > > strub
> > > > >
> > > > >
> > > > > > Am 18.12.2017 um 03:47 schrieb John D. Ament <
> > [email protected]
> > > >:
> > > > > >
> > > > > > MP Config is adding arrays as a valid type for config properties.
> > In
> > > > > doing
> > > > > > so, without making any changes to Geronimo Config I get this
> > failure
> > > > (not
> > > > > > what I'm expecting, I'm expecting no valid beans at this point):
> > > > > >
> > > > > > arquillianBeforeClass(org.eclipse.microprofile.config.
> > > > > tck.ClassConverterTest)
> > > > > > Time elapsed: 0.022 sec  <<< FAILURE!
> > > > > > org.apache.webbeans.exception.WebBeansConfigurationException:
> > > > > > java.lang.IllegalArgumentException: Can't determine the type for
> > > > Class<?
> > > > > > extends Object>[]
> > > > > > at org.apache.webbeans.config.BeansDeployer.deploy(
> > > > > BeansDeployer.java:351)
> > > > > > at
> > > > > > org.apache.webbeans.lifecycle.AbstractLifeCycle.
> > > bootstrapApplication(
> > > > > AbstractLifeCycle.java:137)
> > > > > > at
> > > > > > org.apache.webbeans.lifecycle.AbstractLifeCycle.
> startApplication(
> > > > > AbstractLifeCycle.java:103)
> > > > > > at
> > > > > >
> > > >
> > org.apache.webbeans.arquillian.standalone.OwbStandaloneContainer.deploy(
> > > > > OwbStandaloneContainer.java:118)
> > > > > > at
> > > > > > org.jboss.arquillian.container.impl.client.container.
> > > > > ContainerDeployController$3.call(ContainerDeployController.
> java:161)
> > > > > > at
> > > > > > org.jboss.arquillian.container.impl.client.container.
> > > > > ContainerDeployController$3.call(ContainerDeployController.
> java:128)
> > > > > > at
> > > > > > org.jboss.arquillian.container.impl.client.container.
> > > > > ContainerDeployController.executeOperation(
> ContainerDeployController.
> > > > > java:271)
> > > > > > at
> > > > > > org.jboss.arquillian.container.impl.client.container.
> > > > > ContainerDeployController.deploy(ContainerDeployController.
> java:127)
> > > > > > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> > > > > > at
> > > > > > sun.reflect.NativeMethodAccessorImpl.invoke(
> > > > > NativeMethodAccessorImpl.java:62)
> > > > > > at
> > > > > > sun.reflect.DelegatingMethodAccessorImpl.invoke(
> > > > > DelegatingMethodAccessorImpl.java:43)
> > > > > > at java.lang.reflect.Method.invoke(Method.java:498)
> > > > > >
> > > > > > It seems that OWB can't handle array types as fields for
> injection.
> > > Is
> > > > > > this in fact expected?  This is even though for any given class
> T,
> > > > > > T[].class is a valid object.
> > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to