You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "David Jencks (JIRA)" <ji...@apache.org> on 2014/08/18 08:15:18 UTC
[jira] [Updated] (FELIX-4607) [DS] Configure with nested
annotations/interfaces
[ https://issues.apache.org/jira/browse/FELIX-4607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
David Jencks updated FELIX-4607:
--------------------------------
Fix Version/s: scr-2.0.0
> [DS] Configure with nested annotations/interfaces
> -------------------------------------------------
>
> Key: FELIX-4607
> URL: https://issues.apache.org/jira/browse/FELIX-4607
> Project: Felix
> Issue Type: New Feature
> Components: Declarative Services (SCR)
> Affects Versions: scr-2.0.0
> Reporter: David Jencks
> Assignee: David Jencks
> Fix For: scr-2.0.0
>
>
> RFC 190 has the unfortunate limitation that annotations used for configuration cannot have annotation field values. This is easy to remedy if we pick a format for mapping typed data trees into a map. I'm going to implement this following James Strachan's system for creating an xml DSL for spring configuration for ActiveMQ (see also geronimo's xbean-spring and xbean-blueprint) and inspired by xpath.
> Here's an example of how the mapping works. Lets say you have annotations
> A { B[] b();} and B { String foo();}. The configuration map will have entries with keys of the form:
> b.0.foo
> b.1.foo
> b.2.foo
> b.<arrayIndex>.foo
> <element name of outer class>.<arrayIndex>.<element name of inner class>
> Obviously this can be extended to any level of nesting. Non array annotation valued elements will correspond to arrayIndex 0.
> To extend support to interfaces with inheritance, it's also necessary to include the class of the desired sub-interface in the source map. I don't have a proposal yet for the name of the sub key.
--
This message was sent by Atlassian JIRA
(v6.2#6252)