You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltaspike.apache.org by "Karim de Fombelle (JIRA)" <ji...@apache.org> on 2013/01/20 18:30:13 UTC

[jira] [Created] (DELTASPIKE-311) @ConfigProperty injects property from a specific ConfigSource

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