[ 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.8.0) 1.8.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 > Fix For: 1.8.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 (v6.3.15#6346)