Hi Robert, Apologies, I didn't read the spec in detail. As it's for unit tests you could access the runtime annotations with ASM?
cheers, Caspar On 13 April 2012 14:03, Robert Munteanu <[email protected]> wrote: > Hi Caspar, > > Thanks for your reply. I've glanced over > http://www.osgi.org/download/osgi-early-draft-2011-09.pdf and noticed > that the annotations are defined with > @Retention(value=RetentionPolicy.CLASS) . I've also found that the same > will happen with the SCR annotations from Felix in the next release ( > https://issues.apache.org/jira/browse/FELIX-3247 ) . > > That means that the annotations will not be available at runtime, so I > will not be able to configure components by myself in unit tests. I assume > that Felix annotations will follow the official ones, so it makes little > sense to argue for making them available at runtime. > > Robert > > > -----Original Message----- > > From: Caspar MacRae [mailto:[email protected]] > > Sent: Friday, April 13, 2012 3:48 PM > > To: [email protected] > > Subject: Re: Proposal to make org.apache.felix.scr.annotations > > available at Runtime > > > > Hi Robert, > > > > In a broader scope this will happen for RFC 0172 Declarative Services > > Annotations (runtime processing of SCR components), however this brings > > with it standardised annotations. > > > > cheers, > > Caspar > > > > > > On 13 April 2012 13:33, Robert Munteanu <[email protected]> wrote: > > > > > Hi, > > > > > > I've noticed that the annotations from > > org.apache.felix.scr.annotations > > > are declared with @Retention(RetentionPolicy.SOURCE) . I think the > > > following use cases would benefit from the annotations being > > available at > > > runtime . > > > > > > 1. Configuring component instances outside a OSGi container > > > > > > I often develop components which I want to test in plain JUnit tests > > > rather than in a container. These components have references which I > > need > > > to satisfy in order for the unit test to run. Since the annotations > > are > > > available only in the source file, I am unable to inspect the > > declared > > > references and inject them in a generic manner. > > > > > > The alternative is to manually configure each reference, but that > > gets > > > tedious pretty fast. > > > > > > 2. Processing SCR annotations in a JSR-269 annotation processor > > > > > > Having the annotations available to the processor ( strictly speaking > > only > > > RetentionPolicy.CLASS is required ) would allow much simpler > > integration of > > > SCR processing since the processor would only need to be available as > > a JAR > > > on the compile classpath, rather than a separate maven plugin > > invocation or > > > explicit ant task call. > > > > > > Above the other two use cases, having annotations at runtime can > > generally > > > ease integration with other systems which can inspect the component > > > configuration at runtime. > > > > > > The single downside that I see is that the annotations will increase > > the > > > file size of the deployed bundles ( although I don't think it will be > > a > > > huge increase ). > > > > > > I'm willing to prepare a patch, but would like your opinion first. > > > > > > Thanks, > > > > > > Robert > > > >

