Java Eclipse中的插件间通信

Java Eclipse中的插件间通信,java,eclipse,ipc,Java,Eclipse,Ipc,可以创建自动发现彼此的Eclipse插件吗 我正在开发一套插件,需要在两种主要情况下运行: 个别地 彼此协调一致 当单独运行时,插件应该“正常工作”,但在协同工作时,它们将共享一些相同的模型内容,其中一个插件应该向用户提供一个其他插件的列表,以便与用户共享内容。例如: Foo插件检测到以下问题 它可以与之共享本体的插件: []条插件 []Baz插件 []不要共享 Eclipse是否提供了任何内部发布/检测方法来促进对其他插件的这种自动检测?答案应该是通过,它结合了Eclipse xml扩展和

可以创建自动发现彼此的Eclipse插件吗

我正在开发一套插件,需要在两种主要情况下运行:

  • 个别地
  • 彼此协调一致
当单独运行时,插件应该“正常工作”,但在协同工作时,它们将共享一些相同的模型内容,其中一个插件应该向用户提供一个其他插件的列表,以便与用户共享内容。例如:

Foo插件检测到以下问题 它可以与之共享本体的插件:

[]条插件

[]Baz插件

[]不要共享


Eclipse是否提供了任何内部发布/检测方法来促进对其他插件的这种自动检测?

答案应该是通过,它结合了Eclipse xml扩展和osgi POJO服务的优点。一些隐式动态的东西,比如osgi服务,但像eclipse扩展一样“按需”加载

在2006年推出的eclipse3.3中,您将在中找到这些概念的说明

声明性服务提供了定义对其他服务的引用的选项。还可以指定引用的基数。基数由两个数字指定,第一个数字0或1表示可选性,第二个数字1或n表示多重性

实际上,这些并不容易使用,因为您必须访问BundleContext,这意味着要跟踪BundleActivator

如果您需要定义某种面向服务的组件模型,那么应该为您提供现有的不同替代方案,并详细说明那些“声明性服务”


要发布rcreswick发现的与DS相关的内容,请执行以下操作:

  • OSGi入门:
  • OSGi入门:

好的,OSGI服务注册中心可以在运行时完成基于pojo的服务共享,而不是插件本身。有几个选项可以帮助实现这一点,比如直接编码到OSGiAPI、声明性服务、SpringDM和iPojo(我相信还有其他选项)


您可能想查看白板模式,作为实现动态观察者/可观察式解决方案的一种方式。

谢谢您提供的信息。我正在通过链接工作,并试图吸收许多新术语,但到目前为止,这似乎是DS可能是正确的事情。。。事实上,最后一个链接列出了可以实现相同目标的其他技术:IPojo看起来特别有希望,但不像DS(OSGI R4的一部分)那样标准通过谷歌搜索更多关于声明性服务的信息,我可以找到本教程:第1部分:第2部分:它看起来正是我需要的东西。谢谢