2012-05-04 21 views
5

Nasza aplikacja została przeniesiona do OSGi, ale mam problem z uruchomieniem/debugowaniem go w środowisku Eclipse. Jaki jest proces: czy programista aplikacji OSGi ma skonfigurować środowisko Equinox, zainstalować setki pakietów (jar = bundle?) I zacząć od konsoli? Innymi słowy, uruchamia aplikację "hot-plug-utalentowaną" inną niż "modularnie zakwestionowana"?Aplikacja Run/Debug OSGi w środowisku Eclipse

Dodatkowe, bardziej konkretne pytanie. Jest to pakiet bootstrap, który ma dbać o wszystko, ale po załadowaniu pęczek klas spowalnia i prawie wisi na:

... 
... 
... 
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] 

EDIT: postępuje trochę ponieważ kwestia księgowania

[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] 

Zatem to nie jest impas, co może sprawić, że będzie tak powolny?

Odpowiedz

4

Uruchamianie i debugowanie w środowisku Eclipse powinno być dość surowe. Podstępem (moim zdaniem) jest uświadomienie sobie, że wszystkie potrzebne wsparcie Eclipse jest oznaczone jako "wtyczka" zamiast "OSGi". Skonfiguruj platformę docelową ze wszystkimi potrzebnymi pakietami zewnętrznymi - możesz po prostu zrzucić je do katalogu, a następnie wskazać konfigurator platformy docelowej w tym folderze. Konfiguracja platformy docelowej znajduje się w obszarze Preferencje-> Rozwój wtyczek-> Platforma docelowa. Możesz udostępnić platformę docelową jako plik .target. Posiadanie dobrej platformy docelowej pomaga zarówno w prowadzeniu, jak i kompilacji.

Aby uruchomić pakiety, kliknij prawym przyciskiem myszy i wybierz opcję Uruchom jako -> OSGi Framework (lub debuguj jako). Możesz dostosować, które pakiety są zawarte w konfiguracji środowiska wykonawczego i jakie argumenty są używane. Możesz na przykład dodać -console. Możesz również utworzyć aplikację do eksportu, która da Ci plik config.ini. Po uzyskaniu config.ini, twoje pakiety zostaną wstępnie zainstalowane na starcie Equinox.

Powiązane problemy