【发布时间】:2012-05-28 23:01:52
【问题描述】:
是否可以使用某种 api 添加声明式服务?
一点背景:
我有一个基于动态脚本的服务器应用程序(可以随时添加、编辑或删除它们)。 这些脚本依赖于 OSGi 服务,并且可能相互依赖。每当脚本获取 编辑后,脚本被编译为 javascript,并检测到它的依赖关系。
那时,我想(重新)将其注册为声明性服务,因此当它被激活/停用时 依赖关系来来去去。
- 这甚至可能吗?还是我缺少什么重要的东西?
- 如果 OSGi 标准无法实现,是否有针对 Felix 或 Equinox 的特定解决方案?
- 你能在其他框架中做到这一点吗,比如 iPojo 或 blueprint?
【问题讨论】:
-
您确定不能使用“正常”的 OSGi 服务吗?即较低级别的 API -
BundleContext.registerService()等? -
是的,这是可能的,但是“正常”的 OSGi 服务没有依赖于其他服务的概念,因此这将涉及重建 DS 的很大一部分。我最终生成了捆绑包,并安装/更新了这些捆绑包,并让 DS 处理其余的。我在 ApacheCon 2012 上讨论过这个问题:slideshare.net/FrankLyaruu/scripting-languages-in-osgi
标签: osgi equinox apache-felix declarative-services