communication - eclipse 声明式服务和 View (ContentProviders)之间如何通信

标签 communication osgi eclipse-pde declarative-services

假设您有一个带有各种 View 的 eclipse 插件,这些 View 应该显示来自将数据推送到 View 的某些 OSGi 包中的数据。我没有让每个 View 都与 OSGi 包通信,而是有一个中间 Facade 类,它充当 View 的黑板并管理 View 和其他 OSGi 包之间的通信——嗯,这就是理论。

问题的产生是因为 ui 包(带有 View 和外观)使用声明式服务与其他包(称为数据存储)进行通信。由于数据存储从另一个源接收异步数据更新,它需要将内容推送到 Facade(以及其他包,如果它们可用)。 OSGi 实例化 Facade 以满足对 DataStore 的 DS 配置的基数要求,但 View 由插件的 IApplication 实现实例化。即使 IApplication 和 Facade 是同一个类,我也会得到两个互不相识的独立实例。

如何启用这些组件(插件应用程序、 View 等和 OSGi 实例化 Facade)之间的通信?

最佳答案

一种解决方案是使用单例,并将 Application 和 Facade 寄存器中的一个或两个都用于该单例。

但是,我真的不喜欢在这个问题上抛出一个全局变量的想法。这似乎没有意义——这一定是一个常见问题,所以我假设有一个优雅的解决方案,但我不知道如何搜索它。

关于communication - eclipse 声明式服务和 View (ContentProviders)之间如何通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/282509/

相关文章:

arduino - 如何在不使用计算机的情况下使用Arduino发送电子邮件?

java - OSGi 中的反序列化问题

java - OSGi 服务引用为空(从启动器到 bundle 的服务)

eclipse - 如何在Eclipse中使只读编辑器(Eclipse插件开发)

java - 使用eclipse API读取eclipse安装路径

documentation - 向团队成员展示/解释代码和设计决策

c++ - ZMQ 经销商 - 路由器通讯

docker - 在Docker容器之间进行通讯的最佳实践

java - OSGI 初学者教程已过时。有新标准吗?

Eclipse插件开发: Discouraged access: The type EclipseStarter is not accessible due to restriction on required library