【发布时间】:2020-01-29 15:15:52
【问题描述】:
假设 eclipse rcp 应用程序中有两个插件 P1 和 P2 可用。
P1 和 P2 都是由不同的构建过程分别构建的
在我的场景中,根据用户的选择,基础产品中只有 p1、p2 或两个插件可用。
当两个插件都可用时,我想在插件 P1 和 P2 之间交换数据,否则插件将使用自己的数据。
OSGI 声明式服务在我的场景中能否正常工作,
有什么方法可以公开从插件 P1 返回 json 或字符串的服务 api,而 P2 可以在不依赖它的情况下使用它,我的意思是,插件 p2 应该只在 p1 存在时使用它,如果不存在,它应该可以正常工作。
请多多指教。
编辑: 谢谢你的建议
我完全同意拥有一个通用插件是理想的。
但是在我们的例子中,我们有一个基础产品,不幸的是我们无法控制,我的意思是我们可以将任何插件添加到基础存储库。
插件 P1 和 P2 是 2 个不同的产品,它们彼此独立工作,但具有可以相互补充的数据。我们喜欢从插件 p2 进行 api 调用,如果插件 p1 安装在基础产品上并使用数据来增强 p2 中的现有视图,否则仅显示 p2 数据。
我假设,使用 declerative 服务,插件 P2 可以使用作为 Eclipse 标准插件的一部分的 osgi 规范 api 调用插件 P1 公开的 api,而无需在插件 P1 和 P2 之间添加任何依赖关系。如果有任何选项可以实现这一点,请告诉我。
【问题讨论】:
标签: eclipse eclipse-plugin osgi rcp declarative-services