我目前正在决定在从 IDE 运行 OSGi 应用程序时使用哪个 pax 执行程序(请参阅http://paxrunner.ops4j.org/space/Executors以获得可用的列表)。当我想使用 pax runner 从 IDE 运行进程时,基本上有两种选择:
In-Process-Executor(在与 Pax Runner 本身相同的 Java 进程中运行 OSGi 进程):
- PRO:易于附加调试器。
- PRO:很容易杀死 OSGi 进程,因为没有启动第二个 Java VM。
PRO:启动速度更快。
CON:严重限制 paxrunner 对非 javaVM 设置的功能(来自 Pax Runner 的文档)。
默认执行器:(在新的 Java 进程中运行 OSGi 进程)
PRO:使 Pax Runner 能够设置各种 JavaVM 设置。
CON:更难附加调试器(需要一些远程调试设置)。
- 缺点:如果 Pax Runner 没有正确执行,几乎不可能杀死 OSGi 进程。
- CON : 随着两个 JVM 的启动,启动时间更长。
所以我的问题基本上是,如果有人遇到 Pax Runner 的 JVM 设置功能至关重要并且 OSGi 进程在使用进程内执行程序时无法工作的情况。我还没有找到这样的例子,但是我需要确定我是否支持进程内执行程序、默认执行程序或两者都支持,所以一些利用默认执行程序的 JVM 设置功能的实际用例将真正帮助我做出那个决定。