You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Carsten Ziegeler (JIRA)" <ji...@apache.org> on 2015/08/06 14:21:06 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 ]

Carsten Ziegeler updated FELIX-4607:
------------------------------------
    Fix Version/s:     (was: scr-2.0.0)
                   scr-2.0.2

> [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.2
>
>
> 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.3.4#6332)