Andrew Marinchuk created DELTASPIKE-1441:
--------------------------------------------

             Summary: 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


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.3.4#803005)

Reply via email to