@John: it is not a technical issue, it is a model issue:
public class MyConfig {
@Inject @ConfigProperty(name = "...") int port;
}
will work in standalone, spring, ... but if you have a cdi extension
bridging the lib it will just fail - that is why proxy model is more
portable for config for instance ;).
Alternative would be to make cdi support primitive, agree there is no
blocker at all to do it but then for libs i think we need to limit to the
most constrained impl, cdi here.
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>
2017-07-30 0:47 GMT+02:00 John D. Ament <[email protected]>:
> It knows enough about primitives to satisfy the converters/programmatic
> lookup. For CDI, I convert the type back to the wrapper.
>
>
> On Sat, Jul 29, 2017 at 6:44 PM Romain Manni-Bucau <[email protected]>
> wrote:
>
>> Dont think we should. Would make the api asymmetric/not consistent in cdi
>>
>>
>> Le 29 juil. 2017 17:21, "John D. Ament" <[email protected]> a écrit :
>>
>> Ok i can push when im back at a computer (have changes locally). Do we
>> want to introduce geronimo specific tests or wait until i can push to mp
>> config?
>>
>> On Jul 29, 2017 11:02 AM, "Mark Struberg" <[email protected]> wrote:
>>
>>> Oh I see. Now I get what you mean.
>>> Yes, we should just register the same converters for their primitive
>>> counterparts as well.
>>>
>>> LieGrue,
>>> strub
>>>
>>> > Am 29.07.2017 um 13:12 schrieb John D. Ament <[email protected]>:
>>> >
>>> > Hey guys
>>> >
>>> > I raised a spec level issue on MP Config because primitives don't work
>>> quite right in Geronimo Config and when I looked at the spec, it didn't say
>>> they should.
>>> >
>>> > Basically, primitives aren't used in the TCK, and the follow behaviors
>>> are noticed:
>>> >
>>> > int port = config.getValue("some key", Integer.class); // this works
>>> via unboxing
>>> > int port = config.getValue("some key", int.class); //fails due to
>>> missing converter
>>> > @Inject
>>> > @ConfigProperty(name="some key",defaultValue = "8080")
>>> > private int port;
>>> > // also fails due to missing converter
>>> >
>>> > So should they? Is this a Geronimo specific issue?
>>> >
>>> > John
>>>
>>>
>>