宣言型サービスの使用法を含むバンドルを作成しています。構成には、DS宣言のプロパティを使用しています。これらの小道具は通常、Config Adminによって変更できますが、永続化されません。コンテナの再起動後、コンポーネントにはデフォルト値があります。
私は次のようにConfigadminを使用しています:
Configuration c = configurationAdmin.getConfiguration(UserAgent.SERVICE_PID, null);
System.out.println(c.getProperties()); // every time is null!
Dictionary props = new Hashtable();
props.put(UserAgent.PROPERTY_PORT, 5555);
c.update(props);
そして私が持っているコンポーネントで:
// ...
@Modified
public void updated(ComponentContext context) {
config = context.getProperties();
init();
}
@Activate
protected void activate(ComponentContext context) {
config = context.getProperties();
init();
}
//...
Felixを使用していますが、プロパティファイルはキャッシュに保存されています
service.bundleLocation="file:bundles/cz.b2m.osgi.phonus.core_1.0.0.SNAPSHOT.jar"
service.pid="cz.b2m.osgi.phonus.sip"
port=I"5555"
しかし、再起動後はロードされません。私が間違っているのは何ですか?すべてのヒントをありがとう。