私は現在、OSGi アプリケーションを IDE から実行するときにどの pax executor を使用するかを決定しています (使用可能なもののリストについては、http://paxrunner.ops4j.org/space/Executorsを参照してください)。pax runner を使用して IDE からプロセスを実行する場合、基本的に 2 つの選択肢があります。
In-Process-Executor (Pax Runner 自体と同じ Java プロセスで OSGi プロセスを実行します):
- PRO : デバッガーの取り付けが簡単。
- PRO : 2 番目の Java VM が開始されないため、OSGi プロセスを簡単に強制終了できます。
PRO : 起動が速くなります。
CON : paxrunner の機能を非 javaVM 設定に大幅に制限します (これは Pax Runner のドキュメントからのものです)。
Default Executor: (新しい Java プロセスで OSGi プロセスを実行します)
PRO : Pax Runner がさまざまな JavaVM 設定を設定できるようにします。
CON : デバッガーを接続するのが難しくなります (リモート デバッグのセットアップが必要です)。
- 短所: Pax Runner が適切に実行しない場合、OSGi プロセスを強制終了することはほとんど不可能です。
- CON : 2 つの JVM が開始されるため、起動時間が長くなります。
したがって、私の質問は基本的に、Pax Runner の JVM 設定機能が重要であり、インプロセス エグゼキューターを使用すると OSGi プロセスが機能しないというシナリオを誰かが経験した場合です。私はまだそのような例を見つけていませんが、インプロセス、デフォルトのエグゼキューター、またはその両方をサポートするかどうかを決定する必要があるため、デフォルトのエグゼキューターの JVM 設定機能を利用する実際のユースケースは本当に役に立ちますその決定を下します。