David Jencks created FELIX-4607:
-----------------------------------

             Summary: [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


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)

Reply via email to