一组 OSGI 捆绑包的单独 GUI



我有一组OSGI捆绑包(大约10个,那些有激活/停用声明的捆绑包(,它们合并在一个.product文件下,共同创建一个Java应用程序。这些捆绑包做了很多工作,但作为输出,它们只是在控制台上打印一些重要的日志记录数据。

我想做什么 - 我想要一个简单的 GUI,它允许 3 件事: 1(用于激活所有这些捆绑包的按钮(运行整个程序(, 2(一个窗口,我将在其中看到所有输出日志记录数据, 3(用于停用所有这些捆绑包的按钮(结束程序(。

最初我计划使用 e4 RCP。问题是,我不能在这个大项目中添加一个新的 GUI 插件(捆绑包(,因为存在位冲突:JNA 在这些捆绑包中使用,它加载 32 位本机库。这意味着,所有的东西也应该在 32 位 jvm 上运行。但是,它运行在 64 位 eclipse 目标平台上(仅采用外部的旧 equinox 启动器,仍然支持 32 位(,并且这个 tp 就像我的公司的黄金标准,所以我不能只是切换到 eclipse 32 位目标平台对于所有捆绑包并感到高兴。然而,据我所知,你不能只用32位SWT库做同样的技巧,就像使用Equinox启动器一样,因为它们是eclipse的重要组成部分,应该保持与eclipse相同的位数。eclipse 允许使用部分 32/64 位库,并可以选择自动选择仅适用于<4.10 版本的库。我必须使用最新的日食版本。

这让我寻找组织 GUI 和主逻辑之间关系的其他概念,尤其是当我可以单独执行此操作时:f.e.我在 32 位目标平台中将我的 GUI 编码为一个完全独立的项目,然后以某种方式从主项目中调用这些东西(在运行时?在这里,我被困住了。如果我在一个项目中有 10 个捆绑包,如何从另一个 (GUI( 项目中激活/停用它们?如何通过单击按钮等正确组织此通信?真的可能吗?也许不是使用 e4,而是使用其他一些乐器?

我在OSGI开发方面有点新手,如果我说了一些奇怪的话 - 提前对不起。

显而易见的解决方案似乎使用 Swing?Swing 没有本机依赖项。

您可以在 Java 中重定向System.out/err,以便轻松捕获输出并将其显示在 Swing 组件中。您可以将此代码放在其自己的捆绑包中。

最新更新