Igo*_*r P 6 osgi annotations maven-bundle-plugin
我正在从org.apache.felix.scr注释迁移到org.osgi.service.component注释.我有一组继承自公共抽象类的组件.在felix的情况下,我可以在超类上使用@Component带有选项的注释componentAbstract=true,然后@Reference在超类中使用注释.我找不到如何将其迁移到osgi注释.
是否可以在Component的超类中使用Component注释?如果是这样,那么处理属性和元类型生成的适当方法是什么?
所以,我正在寻找的是这样的
/* No component definition should be generated for the parent, as it is
abstract and cannot be instantiated */
@Component(property="parent.property=parentValue")
public abstract class Parent {
@Reference
protected Service aService;
protected activate(Map<String,Object> props) {
System.out.println("I have my parent property: "+props.get("parent.property"));
@Override
public abstract void doSomething();
}
/* For this class, the proper Component definition should be generated, also
including the information coming from the annotations in the parent */
@Component(property="child.property=childValue")
public class Child extends Parent {
@Activate
public activate(Map<String,Object> props) {
super.activate(props);
System.out.println("I have my child property: "+props.get("child.property"));
}
public void doSomething() {
aService.doSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,BND不会处理父类中的DS注释.你可以改变它,-dsannotations-options: inherit但请参阅http://enroute.osgi.org/faq/ds-inheritance.html为什么你不应该!
| 归档时间: |
|
| 查看次数: |
2279 次 |
| 最近记录: |