2012-05-04 17 views
5

Nuestra aplicación ha migrado a OSGi, pero tengo problemas para iniciar/depurarla en Eclipse. ¿Cuál es el proceso: se espera que el desarrollador de la aplicación OSGi configure el entorno Equinox, instale cientos de paquetes (jar = paquete?) Y comience desde la consola? En otras palabras, ¿el lanzamiento de la aplicación "hot-plug-dotado" es diferente del "desafío modular"?Ejecutar/depurar aplicación OSGi en Eclipse

Pregunta secundaria, más concreta. Hay un paquete de arranque que se supone que hacerse cargo de todo, pero después montón de carga de clases se ralentiza y casi cuelga en:

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

Editar: progresó un poco desde pregunta publicar

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

Por lo tanto, no es un punto muerto, ¿qué podría hacerlo tan extremadamente lento?

Respuesta

4

El inicio y la depuración en Eclipse deberían ser bastante estables. El truco (en mi opinión) es darse cuenta de que todo el soporte de Eclipse que necesita está etiquetado como 'plug-in' en lugar de 'OSGi'. Configure una plataforma de destino con todos los paquetes externos que necesita; puede simplemente colocarlos en un directorio y luego apuntar al configurador de la plataforma de destino en esa carpeta. La configuración de la plataforma de destino se encuentra en Preferencias-> Desarrollo de complementos-> Plataforma de destino. Puede compartir la plataforma de destino como un archivo .target. Tener una buena plataforma de destino ayuda a ejecutar y compilar.

Para ejecutar sus paquetes, haga clic con el botón derecho y seleccione Ejecutar como -> OSGi Framework (o depurar como). Puede ajustar qué paquetes están incluidos en la configuración de tiempo de ejecución y qué argumentos se utilizan. Por ejemplo, puede querer agregar -console. También puede crear una aplicación para exportar, que le dará un archivo config.ini. Una vez que tenga un config.ini, sus paquetes se preinstalarán en el inicio de Equinox.

Cuestiones relacionadas