[
https://issues.apache.org/jira/browse/DELTASPIKE-1241?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mark Struberg updated DELTASPIKE-1241:
--------------------------------------
Fix Version/s: (was: 1.9.0)
1.9.1
> [Config] fallback chain logic
> -----------------------------
>
> Key: DELTASPIKE-1241
> URL: https://issues.apache.org/jira/browse/DELTASPIKE-1241
> Project: DeltaSpike
> Issue Type: New Feature
> Components: Configuration
> Affects Versions: 1.7.2
> Reporter: Mark Struberg
> Assignee: Mark Struberg
> Priority: Major
> Fix For: 1.9.1
>
>
> We got the request to add handling similar to
> ConfigResolver#getProjectStageAwarePropertyValue and
> ConfigResolver#getPropertyAwarePropertyValue but in a more generic way.
> Something I've been experimenting with since a long time was to introduce a
> more generic logic based on different lookup paths with themselves represent
> a postfix.
> The idea is to extend the TypedResolver with a method
> {code}
> TypedResolver#withLookupPath(String... lookupPaths)
> {code}
> where each lookupPath String could either be a hardcoded value (e.g.
> evaluated upfront) or a variable "${somevariable}" which will be evaluted on
> the fly.
> ConfigResolver.getPropertyAwarePropertyValue("dbvendor") could e.g. also be
> written as
> {code}
> TypedResolver<String> ds =
> ConfigResolver.resolve("myprj.datasource")
> .withLookupPath("${dbvendor}", "${deltaspike.projectstage}");
> ds.get();
> {code}
> Assuming we are in the ProjectStage UnitTest this would result in the
> following lookup paths:
> * datasource.mysql.UnitTest
> * datasource.mysql
> * datasource.UnitTest
> * datasource
> The lookupChain is kind of a binary field with all flags set to 1 (in the
> sample this would be: 11) and then decremented for each lookup (11, 10, 01,
> 00). Where 1 means to lookup with the specific postfix and 0 without.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)