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 07:59:19 UTC
[jira] [Created] (FELIX-4607) [DS] Configure with nested
annotations/interfaces
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)