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