felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David Jencks (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-4607) [DS] Configure with nested annotations/interfaces
Date Mon, 18 Aug 2014 06:17:18 GMT

    [ https://issues.apache.org/jira/browse/FELIX-4607?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14100321#comment-14100321

David Jencks commented on FELIX-4607:

I forgot to mention that this capability needs to be turned on per-component using a flag
in the xml in the felix extension attribute namespace introduced recently.  So far I'm calling
the flag "configureWithInterfaces"

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

View raw message