+1
On 5 Mar 2012, at 16:17, Adrian Gonzalez wrote:
> What about having both options ?
>
> 1. be able to use directly @ConfigProperty
> @Produces
> public LoginContext
> produceLoginContext(@ConfigProperty("loginConfigFile") String
> loginConfigFileName, @ConfigProperty("loginModuleName") String
> loginModuleName)
> }
> }
> Handy when all config values are only used in a centralized class (e.g.
> MyAppConfig).
>
> 2. type safe config annotations
> @ConfigProperty(
> name = "pool_size",
> eager = true, //true is also the default value -> the value gets converted
> during the bootstrapping process
> converter = StringToIntegerConverter.class
> )
> public @interface PoolSize {
> }
>
> ----- Mail original -----
> De : Gerhard Petracek <[email protected]>
> À : [email protected]
> Cc :
> Envoyé le : Lundi 5 mars 2012 17h08
> Objet : Re: Re : ConfigResolver : adding @ConfigProperty injection ?
>
> hi adrian,
>
> @#1:
> it isn't the default value of the property.
> eager should be true by default -> the configured value gets converted
> during bootstrapping (if the value has an invalid format the bootstrapping
> process fails).
> if eager is false, the configured value will be converted directly before
> the injection (e.g. for values stored in dynamic config-sources).
>
> @#2:
> afaik there is an upcoming jsr about it.
>
> regards,
> gerhard
>
>
>
> 2012/3/5 Adrian Gonzalez <[email protected]>
>
>> Hi Gerhard,
>>
>> 1. didn't understood the meaning of eager attribute
>> If eager = default value, it should have been some integer value in your
>> sample
>>
>>
>> 2. StringToIntegerConverter converter
>> Is there an existing conversion API (standard, in deltaspike, ...) ?
>> (otherwise we're gonna need one here - and end up with another conversion
>> API ;) )
>>
>> Thanks !
>>
>> ----- Mail original -----
>> De : Gerhard Petracek <[email protected]>
>> À : [email protected]
>> Cc :
>> Envoyé le : Lundi 5 mars 2012 12h57
>> Objet : Re: ConfigResolver : adding @ConfigProperty injection ?
>>
>> hi adrian,
>>
>> if we agree also on adding a bit more to allow e.g.:
>>
>> //...
>> @ConfigProperty(
>> name = "pool_size",
>> eager = true, //true is also the default value -> the value gets
>> converted during the bootstrapping process
>> converter = StringToIntegerConverter.class
>> )
>> public @interface PoolSize
>> {
>> }
>>
>> @Inject
>> @PoolSize
>> private int configuredPoolSize;
>>
>> then i would vote +1
>> (for sure the details need further discussions.)
>>
>> regards,
>> gerhard
>>
>>
>>
>> 2012/3/5 Adrian Gonzalez <[email protected]>
>>
>>> Hello,
>>>
>>> Deltaspike config module is based on ConfigResolver usage :
>>> ConfigResolver.getPropertyValue("test")
>>>
>>>
>>> Wouldn't it be interesting to add on top of it some injection
>>> capacity ? (i.e. providing @ConfigProperty annotation)
>>>
>>> Sample usage [1] :
>>> @Produces
>>> public LoginContext
>> produceLoginContext(@ConfigProperty("loginConfigFile")
>>> String loginConfigFileName,
>>>
>> @ConfigProperty("loginModuleName")
>>> String loginModuleName)
>>> blabla
>>> }
>>>
>>> This approach is based on Antonio's petstore application - config code is
>>> available in [2]
>>>
>>> [1]
>>>
>> https://github.com/agoncal/agoncal-application-petstore-ee6/blob/master/src/main/java/org/agoncal/application/petstore/security/LoginContextProducer.java
>>>
>>> [2]
>>>
>> https://github.com/agoncal/agoncal-application-petstore-ee6/blob/master/src/main/java/org/agoncal/application/petstore/util/ConfigProperty.java
>>>
>>>
>> https://github.com/agoncal/agoncal-application-petstore-ee6/blob/master/src/main/java/org/agoncal/application/petstore/util/ConfigPropertyProducer.java
>>>
>>>
>>
>>
>