我有一个(bnd-annotated)组件,它实现了一个简单的 api 并将自己作为服务公开
package com.mycompany.impl;
import com.mycompany.api.IFoo;
@Component(designateFactory=FooImpl.Configuration.class)
class FooImpl implements IFoo {
interface Configuration {
String foo();
// ..
}
Configuration configuration;
@Activate
public void activate(Map properties) {
configuration = Configurable.createConfigurable(Configuration.class, properties);
// ..
}
}
它的配置由 Felix FileInstall 从监视的目录加载,服务由 Felix 配置服务实例化(至少,我假设这是发生了什么 - 我是 OSGi 的新手,请多多包涵)这个,以及生成的 MetaType 描述符工作得很好。
但是,就目前而言, FooImpl 需要结构化配置(列表列表、列表映射..等),我想知道是否有一种优雅的( * )方法可以通过类似的工作流程来配置组件的实例;也就是说,配置发现和实例化/部署仍然是集中的。
在我看来,配置服务规范管理地图 - 我是否必须推出自己的配置服务和 FileInstall 才能呈现带有 xml/json/yaml 支持的结构化配置的组件?
- 与在 properties ...confiception 中定义 xml 配置文件的位置相反?并做我自己的解析。