Я использую Apache Aries 0.2 в Servicemix 4.3.1 и создаю cm: managed-service-factory.Создание сервисов с файлами .cfg работает нормально (за исключением # ARIES-584 ), но свойства из файла .cfg не вводятся в объект сервиса.Они настроены правильно в ConfigAdmin, просто мои методы установки бинов никогда не вызываются для значений в моем файле конфигурации.
Я подумал, что, возможно, мне следует использовать cm: managed-properties или что-то подобное, вложенное в мойmanaged-service-factory, но для этого потребуется отдельный pid, поэтому это не так.
Если я не добавлю тег свойства, тогда никакое значение не будет установлено.С помощью тега свойства устанавливается только значение по умолчанию, но не фактическое значение файла конфигурации.
Я не могу найти никакой документации по использованию подпроекта Aries CM, за исключением blueprint-sample.xml , который не показывает управляемые свойства внутри фабрики управляемых сервисов.Я действительно пытался использовать Servicemix, но на каждом шагу отсутствует документация, сломанные или отсутствующие функции или ошибки, которые влияют на функциональность ядра.
Обе пружина и В документации gemini указано, что их реализации фабрики управляемых сервисов также должны функционировать как управляемые свойства.
foo.xml:
<blueprint>
<cm:managed-service-factory id="myfoo-msf" factory-pid="my.msf" interface="my.IFoo">
<cm:managed-component class="my.Foo">
<property name="name" value="default />
</cm:managed-component>
</cm:managed-service-factory>
</blueprint>
IFoo.java
package my;
public interface IFoo {
public String getName();
public void setName(String name);
}
Foo.java
package my;
public class Foo implements IFoo {
private String name;
public void setName(String name) {
this.name = name;
System.out.println("name set to: " + name);
}
public String getName() {
return name;
}
}
my.msf-1.cfg
name=name1
my.msf-2.cfg
name=name2
System.out
name set to default
name set to default
config: proplist
service.pid = my.msf.xxxxxxx-xx-xx-xxxxxxxxxxxxxxx
name = name1
service.factoryPid = my.msf
service.pid = my.msf.yyyyyyy-yy-yy-yyyyyyyyyyyyyyy
name = name2
service.factoryPid = my.msf