Пишу бандл с использованием декларативных сервисов. Для настройки я использую свойства в объявлении DS. Эти реквизиты обычно могут быть изменены администратором конфигурации, но они не сохраняются. После перезапуска контейнера компонент имеет значения по умолчанию.
Я использую Config admin следующим образом:
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"
Но после перезагрузки не загружается. Что я делаю неправильно? Спасибо за все советы.