java - 尝试在 OSGI 中创建抽象包

标签 java inheritance osgi declarative-services

我想在 OSGI 中创建一些抽象包。这个想法是,当我们假设bundle Ax(x从1到9)需要通过B提供的服务绑定(bind)到bundle B时,可以通过制作asbtractA来更轻松地完成此操作(因此Ax扩展了abstractA)

这里的abstractA是一个带有声明服务文件的包。 xml 文件描述了bundle B 所引用的服务,并且在abstractA 的相应类中实现了bind、unbind 和start 方法。

假设 Ax 有自己的启动方法 startx,并绑定(bind)到几个服务,因此该包有自己的 .xml 文件。

问题:start(来自abstractBundle)和startx都会被调用吗?来自bundleAx和bundleabstractA引用的服务的绑定(bind)会发生吗?

最佳答案

虽然我当然不清楚你的具体细节,但我对这里“继承”的使用表示怀疑。在我看来,您最好使用以下任一方法:

  1. 代表团。含义:将通用功能委托(delegate)给 bundle A 中的服务。
  2. 服务工厂解决方案。含义:通过工厂模式创建多个服务,其中工厂由bundle A 注册。

关于java - 尝试在 OSGI 中创建抽象包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24732199/

相关文章:

java - 带有运行时 pojos 的 Hibernate 的 OSGi 片段包

java - 如何避免PDF添加内容后签名失效?

java - 关于字节添加和分配的有趣观察

c# - 从页面基类查找页面中的控件

web-applications - 如何在 Tapestry 中使用 OSGi 服务

java - 如何反序列化 OSGi 中的实现类

java - 删除传输编码 :chunked in the POST request?

java - 从 karaf 4 pax-jetty 中删除 JSESSIONID httponly 漏洞

perl - 如何调用类:method determined at runtime in perl?

ruby-on-rails - 在哪里找到多个 Rails Controller 使用的方法并限制对基本 Controller 的访问