私はIFooインターフェイスのDS-サービスのコンシューマーがありますのOSGiは:特定のサービスが利用可能になったときにDS-サービスの消費者は、同期通知を受けるですか
@Component
public class IFooListener {
@Reference(bind = "bind",
unbind = "unbind",
referenceInterface = IFoo.class,
cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE,
policy = ReferencePolicy.DYNAMIC)
public static final Map<String, IFoo> allServices = new ConcurrentHashMap<>();
protected void bind(IFoo service, Map<String, String> properties) {
....
}
....
}
私はIFooサービスがそのように登録されている:
をBundleContext ctx = FrameworkUtil.getBundle(IFooListener.class).getBundleContext();
Properties properties = new Properties();
....
ServiceRegistration managementSrv = ctx.registerService(IFoo.class.getName(), iFooImpl, properties);
私が知りたいのは、ctx.registerService(...)メソッドが返ってくると、その時点で既に利用可能だったすべてのDSコンシューマに、IFooサービスが登録されたことが通知されることです? このosgi実装固有のことはありますか?または、DS仕様のこの部分ですか?
いくつか存在するため、使用する注釈を指定する必要があります。これらは、標準のOSGiアノテーションではありません。答えとして、そのような保証に頼るのは非常に悪い習慣です。 –