[ 
https://issues.apache.org/jira/browse/DELTASPIKE-1441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mark Struberg reassigned DELTASPIKE-1441:
-----------------------------------------

    Assignee: Mark Struberg

> ConfigProperty support for maps
> -------------------------------
>
>                 Key: DELTASPIKE-1441
>                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-1441
>             Project: DeltaSpike
>          Issue Type: Wish
>      Security Level: public(Regular issues) 
>            Reporter: Andrew Marinchuk
>            Assignee: Mark Struberg
>            Priority: Major
>
> Let's assume that we have the following configuration:{code}my.param.a=1
> my.param.b=2
> my.param.c=3
> ...{code}
> And we want to load all the {{my.param.*}} parameters into the {{Map<String, 
> Integer>}}.
> With the current configuration api there two ways to load such config:
> # add parameter {{my.param.all=a,b,c,...}} with complete list of 
> {{my.param.*}} parameters, add an {{@Inject}}'ed {{List<String>}} field with 
> {{@ConfigProperty}} annotation to read this parameter and then fill the map 
> values by reading value by each of the provided keys.
> # iterate through ConfigResolver.getAllProperties() by code like 
> [filterPropsByPrefix 
> function|https://issues.apache.org/jira/browse/DELTASPIKE-1212?focusedCommentId=16986128&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16986128]
>  and fill the Map with it
> But I think that loading such config shouldn't be a user problem, library 
> should be capable of loading it. Of course, user can introduce the 
> {{@ApplicationScoped}} bean which will inherits the 
> {{org.apache.deltaspike.core.spi.config.BaseConfigPropertyProducer}} and 
> introduce the {{@Producer}} methods for {{Map<String, ?>}} analog for 
> producers introduced in  
> org.apache.deltaspike.core.impl.config.DefaultConfigPropertyProducer. But it 
> should be a library code.
> Another use case which should be covered is loading Map<String, Intf> where 
> Intf - interface with {{@Configuration}} annotation, i.e.:
> {code}datasources.one.url=jdbc://...
> datasources.one.user=myuser
> datasources.one.password=pass
> datasources.two.url=jdbc://....
> datasources.two.user=myuser2
> datasources.two.password=pass2
> ...{code}
> Currently we use code from [this 
> comment|https://issues.apache.org/jira/browse/DELTASPIKE-1212?focusedCommentId=16986128&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16986128]
>  to load such configuration, but it could be much simpler if deltaspike had 
> ConfigProperty support for maps with ability to use @Configuration interfaces 
> as values.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to