【问题标题】:Eclipse tooling for osgi bundle restart on workspace change用于在工作区更改时重新启动 osgi 包的 Eclipse 工具
【发布时间】:2014-11-04 22:38:48
【问题描述】:

我们开发了大量基于 Equinox 的 OSGi 包,并在 Eclipse 中使用“OSGi 框架”启动配置启动它。包含所有必要的包和数据的框架启动需要 1-2 分钟,这就是我们使用 DCEVM 和 JRebel 热部署更改的类的原因。

现在在 Java 8 中,这些方法不再正常工作(DCEVM 仅适用于 Java 7,而 JRebel 有太多限制 - 冻结调试会话,不支持添加的实例字段等)。由于我们的应用程序非常模块化,我想象一个 Eclipse 函数(通过插件?),它监视工作区的类更改并在增量构建完成后重新启动受影响的包。

您是否知道一些可能有助于完成这项任务的工具?

【问题讨论】:

  • 其实,JRebel 6 只是增加了对添加新实例字段的支持。但实际上,您可能想看看 bndtools
  • 是的,我们最近使用了 JRebel 6 beta 并且今天更新了 eclipse 插件,但是我们仍然遇到频繁的类加载器死锁和不可靠的代码重新加载(有时只是没有应用更改,这也妨碍了有用的调试)
  • 能否将此问题报告给 JRebel 支持。

标签: java eclipse osgi equinox jrebel


【解决方案1】:

Bndtools 提供了这样一个环境。它在很多其他方面也优于 eclipse 插件透视图。例如,它对声明式服务有很好的支持。

【讨论】:

  • 它会在保存时将一个包重新部署到正在运行的测试框架中。
  • 将 100 多个包从 PDE 迁移到 bndtools 的最佳方法是什么?我看到了github.com/duckAsteroid/bndtools-pde-migration,但它似乎不是最新的。
  • 我不认为现在有一种标准的方法,但如果有的话我会非常有兴趣采用它。你能提供关于 bnd(tools) 的 PR 或资助某人去做吗?
【解决方案2】:

DCEVM 现在支持 java8。让我们看看https://github.com/dcevm/dcevm 如果你需要热插拔支持 Eclipse RCP/OSGI 你可以使用https://github.com/HotswapProjects/HotswapAgent 它有 Eclipse OSGI 的模块。

【讨论】:

    猜你喜欢
    • 2012-03-23
    • 2012-11-15
    • 2014-09-16
    • 2011-04-22
    • 2011-05-18
    • 1970-01-01
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多