2012-05-04 11 views
5

私たちのアプリはOSGiに移行しましたが、Eclipseで起動/デバッグするのに問題があります。プロセスとは何ですか:OSGiアプリケーション開発者がEquinox環境をセットアップし、数百のバンドルをインストールし(jar = bundle?)、コンソールから起動することが期待されていますか?言い換えれば、「モジュラーチャレンジ」とは異なる「ホットプラグ・ギフテッド」アプリケーションを起動していますか?EclipseでOSGiアプリケーションを実行/デバッグする

二次、より具体的な質問。そこにすべての世話をすることになっているブートストラップ・バンドルがあるが、クラスのロードの束の後、それが遅くなり、ほとんどの画面でハングアップ:

... 
... 
... 
Flat profile of 0.22 secs (16 total ticks): main 

    Interpreted + native Method       
16.7%  1 +  0 java.awt.Toolkit.addAWTEventLi[Loaded java.awt.SentEvent from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar] 
stener 
16.7%  1 +  0 jav[Loaded java.awt.DefaultKeyboardFocusManager$DefaultKeyboardFocusManagerSentEvent from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar] 
a.util.regex.Pattern.compile 
16.7%  1 +  0 sun.util.logging.PlatformLogger.<init> 
50.0%  3 +  0 Total interpreted 

    Thread-local ticks: 
62.5% 10    Blocked (of total) 
50.0%  3    Class loader 

... 
... 
... 
[Loaded sun.reflect.Label$PatchInfo from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar] 
[Loaded sun.reflect.MethodAccessorGenerator$1 from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar] 
[Loaded sun.reflect.ClassDefiner from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar] 
[Loaded sun.reflect.ClassDefiner$1 from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar] 
[Loaded sun.reflect.GeneratedMethodAccessor1 from __JVM_DefineClass__] 
[Dynamic-linking native method sun.java2d.DefaultDisposerRecord.invokeNativeDispose ... JNI] 
[Dynamic-linking native method java.lang.ref.Finalizer.invokeFinalizeMethod ... JNI] 

編集:少し質問が

[Loaded sun.reflect.GeneratedMethodAccessor1 from __JVM_DefineClass__] 
[Dynamic-linking native method sun.java2d.DefaultDisposerRecord.invokeNativeDispose ... JNI] 
[Dynamic-linking native method java.lang.ref.Finalizer.invokeFinalizeMethod ... JNI] 
--- new stuff --- 
[Loaded sun.awt.windows.WComponentPeer$2 from C:\Program Files\Java\jdk1.7.0_04\jre\lib\rt.jar] 
[Dynamic-linking native method sun.awt.windows.WInputMethod.disableNativeIME ... JNI] 

を掲示するので進行したがって、それはデッドロックではありません。何がそんなに楽観的に遅くなるのでしょうか?

答えて

4

Eclipseでの起動とデバッグは、かなり正しかったはずです。私の見解では、必要なEclipseのサポートはすべて「OSGi」の代わりに「プラグイン」と表示されていることを認識することです。必要なすべての外部バンドルを持つターゲットプラットフォームをセットアップします。ディレクトリにそれらをダンプしてから、ターゲットプラットフォームコンフィグレータをそのフォルダにポイントするだけです。ターゲットプラットフォームの設定は、[環境設定] - > [プラグイン開発] - > [ターゲットプラットフォーム]の順になります。ターゲットプラットフォームを.targetファイルとして共有することができます。優れたターゲットプラットフォームを持つことは、実行とコンパイルの両方に役立ちます。

バンドルを実行するには、右クリックし、[ファイル名を指定して実行] - > [OSGiフレームワーク](または[デバッグ])を選択します。実行時設定に含まれるバンドルと、使用される引数を調整できます。たとえば、-consoleを追加することができます。また、エクスポートするアプリケーションを作成して、config.iniというファイルを作成することもできます。 config.iniを取得すると、バンドルはEquinoxの起動時にプリインストールされます。

関連する問題