deltaspike-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Karim de Fombelle (JIRA)" <j...@apache.org>
Subject [jira] [Created] (DELTASPIKE-311) @ConfigProperty injects property from a specific ConfigSource
Date Sun, 20 Jan 2013 17:30:13 GMT
Karim de Fombelle created DELTASPIKE-311:
--------------------------------------------

             Summary: @ConfigProperty injects property from a specific ConfigSource
                 Key: DELTASPIKE-311
                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-311
             Project: DeltaSpike
          Issue Type: Improvement
            Reporter: Karim de Fombelle


In deltapsike CDI configuration extension it is possible to add our own _ConfigSourceProvider_
via the service loader mechanism.
Then when a property is searched from the @ConfigProperty annotation, the extension scans
all _ConfigSource_ loaded (according priorities defined as ConfigSource.ordinal attribute).
This mechanism works fine.

However it could be improved allowing users to target a specific ConfigSource for the searched
property.
{code}
@Inject
@ConfigProperty(configSourceId="classpath" name = "property1")
private String property1;
{code}
Or an URI scheme could be used as follows:
{code}
@Inject
@ConfigProperty(name = "configSourceUriScheme://property1") //classpath://property1 for instance
private String property1;
{code}
Benefits would be to:
-enhance a lot readability / maintainability of the code
-enhance flexibility: allow a user to use a property name even it is already used elsewhere.
(i.e. from a different ConfigSource)
-get rid of some tricky overriding if a property is accessible via several ConfigSource
e.g.: a framework should ensure no application deployed within will add ConfigSourceProvider/ConfigSource
with a higher priority and the same property. One way to enforce this would be too implement
another CDI extension checking the ConfiSource priorities but it sounds over complex and highlights
the enhancement would be valuable.

For reference Spring proposes a mechanism not so far of the above and allowing enrichment
by inheritance:
http://static.springsource.org/spring/docs/3.0.x/api/org/springframework/core/io/DefaultResourceLoader.html

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message