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] [Resolved] (FELIX-4607) [DS] Configure with nested annotations/interfaces
Date Sat, 21 May 2016 05:07:12 GMT

     [ https://issues.apache.org/jira/browse/FELIX-4607?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

David Jencks resolved FELIX-4607.
    Resolution: Fixed

Resolving for now.   I'll open another issue if I implement more inheritance support.

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