在属性出现之前阻止OSGi服务的启动

在属性出现之前阻止OSGi服务的启动,osgi,apache-karaf,blueprint-osgi,karaf,Osgi,Apache Karaf,Blueprint Osgi,Karaf,假设我有一个bundle,它只包含以下类: class FullName { String firstName String lastName public FullName (String firstName, String lastName){ this.firstName = firstName; this.lastName = lastName; } } 我将通过使用以下blueprint配置创建FullName类的对象来实例化此服务: <

假设我有一个bundle,它只包含以下类:

class FullName {

  String firstName
  String lastName

  public FullName (String firstName, String lastName){
     this.firstName = firstName;
     this.lastName = lastName;
  }
}
我将通过使用以下blueprint配置创建FullName类的对象来实例化此服务:

<cm:property-placeholder persistent-id="FullNameApp" update-strategy="reload" >
<!-- No default properties -->
</cm:property-placeholder>

<bean id="full-name" class="org.mypackage.FullName">
  <argument value="${first.name}" />
  <argument value="${last.name}" />
</bean>


我使用的是Karaf3.0。这些属性不存在,$KARAF_HOME/etc/FullNameApp.cfg也不存在。在这些属性出现之前,我如何才能永远开始这个捆绑包块?

我认为blueprint中没有一个好的解决方案。如果需要支持,您可能需要研究声明性服务。

谢谢您的回答。我将自学声明式服务。