java - OSGI捆绑优先级机制

标签 java osgi osgi-bundle

我有一个使用 OSGI 模型的 Java 应用程序:

我有两个预先存在的 bundle :

  1. com.mos
  2. com.login

com.login 实现并注册了 Authenticator 服务(自己的身份验证服务)。com.login 以及 com.mos 使用此身份验证服务。

现在我正在编写一个新包 (com.new),并且我必须添加/修改身份 validator 服务,因此我编写了自己的实现。

一旦我启动我的程序/应用程序,如果我的新 bundle com.newcom.login之后运行,那么所有 bundle 都使用新的Authenticator Service >.但是,如果 com.new bundle 在 com.login 之前运行,则旧的 Authenticator Service 可用。

OSGI 中是否有任何机制可以让我们给予一些优先级,例如哪个包应该首先启动。

最佳答案

OSGi 包启动级别允许您影响每个包的启动顺序。 请参阅相应的 javadocs http://www.osgi.org/javadoc/r4v43/core/org/osgi/framework/startlevel/package-summary.html 但我不建议这样做。 启动级别通常不应用作控制服务启动的方法。在 OSGi 中,不保证服务启动顺序,服务可能随意出现和消失。

根据您的身份 validator 服务的具体实现来制作新包 (com.new) 将达到目的并保证正确的顺序。

关于java - OSGI捆绑优先级机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17109103/

相关文章:

Java 泛型和数组类型

java - 将 spring-cloud 与 netflix Eureka 一起使用时,如何让 Discovery Client 工作?

java - 如何选择合适的服务实现?

java - 在 Manifest.mf 中包含自定义条目

java - 使用 Amdatu 创建 Mongodb OSGI Bundle 时 bundle 未解析

java - 创建 HttpsSession 时如何更改 DefaultSessionTrackingModes

java - eclipse 链接 : No Persistence provider for EntityManager named

java - KURA使用: "com.sun.net.httpserver.*" in an OSGI bundle包下的类

java - org.osgi.framework.BundleException : Unresolved constraint in bundle SampleModel

java - 找出文件夹中有多少文件,然后将该数字写入android中的ListView