You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "james strachan (JIRA)" <ji...@apache.org> on 2014/01/16 09:29:19 UTC
[jira] [Created] (FELIX-4392) make @Property use
RetentionPolicy.RUNTIME so that code can use runtime field/setter injecting
property values
james strachan created FELIX-4392:
-------------------------------------
Summary: make @Property use RetentionPolicy.RUNTIME so that code can use runtime field/setter injecting property values
Key: FELIX-4392
URL: https://issues.apache.org/jira/browse/FELIX-4392
Project: Felix
Issue Type: Improvement
Components: SCR Annotations
Reporter: james strachan
It'd be nice to be able to write a base class for a @Component with an @Activate method taking the Map<String,Object> of configurations and performing field or setter injection of configurations via @Property - but the annotation is not retained at runtime right now due to CLASS not RUNTIME RetentionPolicy on @Property.
Any idea why not? Was this on purpose or just an oversight?
e.g. it'd be nice to be able to code components like this (and get the SCR and MetaType metadata auto-generated)
{code}
public abstract class MyAbstractComponent {
@Activate
public void activate(Map<String, ?> configuration) throws Exception {
// use introspection to find the fields and setters with @Property annotated...
}
}
...
@Component(name = "foo")
public FooComponent extends MyAbstractComponent {
@Property
private int foo;
@Property
private String bar;
....
{code}
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)