Configuración de Eclipse para admitir entornos duales Equinox/Felix
Frecuentes
Visto 709 equipos
1
¿Cuáles son algunos cambios de configuración para que Eclipse PDE funcione mejor con Equinox y Felix?
Aquí hay un problema de ejemplo que estoy teniendo actualmente. Puedo ejecutar mi aplicación correctamente a través del iniciador de Eclipse OSGi Framework. Del mismo modo, no hay problemas de compilación en PDE. Sin embargo, cuando se ejecuta en Felix, obtendré NoClassDefFoundErrors:
java.lang.NoClassDefFoundError: org/w3c/dom/DOMException
Tengo entendido que es mi configuración de Eclipse la que tiene la culpa aquí; org.w3c.dom no es un paquete OSGi 'predeterminado' y no debe cargarse cuando lo ejecuto en Eclipse. De manera similar, la importación en mi código para org.w3c.dom.DOMException debería ser un error.
Sé cómo arreglar esto para Felix: declarar un paquete de importación. Pero esa no es mi pregunta. Mi pregunta es cómo obligar a Eclipse PDE a adoptar una configuración más cercana a Felix... ¿básicamente para hacerlo más estricto en la carga de paquetes?
3 Respuestas
1
creo que equinoccio sí compórtate como Félix, si lo ejecutas solo. Es más una cosa del legado de Eclipse que una cosa de Equinox, como se indica en osgi.org.
Hasta donde yo sé, no hay forma de anular la delegación de arranque de Eclipse, pero me encantaría estar equivocado, ya que me he enfrentado a este problema a menudo.
Respondido 04 Jul 12, 09:07
1
Si está desarrollando una aplicación de servidor, le recomiendo que no use el PDE en absoluto. Estoy usando maven y el complemento maven bundle para desarrollar mis paquetes. Luego implemento en Apache karaf. La depuración también es bastante simple usando el comando karaf dev:watch y la depuración remota. Realmente nunca extrañé las funciones de PDE y nunca funcionaron bien con mi compilación experta.
Respondido 04 Jul 12, 17:07
¿Es ese Maven con bnd o está administrando el manifiesto usted mismo? Tengo entendido que si estás haciendo lo último, eso es dos lugares en los que tienes que especificar dependencias. - Dan Gravel
Uso el complemento maven bundle de felix que usa bnd internamente. Entonces, solo hay un lugar para especificar dependencias. Bnd también detecta la mayoría de las dependencias automáticamente. Así que la mayoría de las veces no hay mucho que hacer. - Christian Schneider
0
Parece que el iniciador está configurando la delegación de arranque en modo heredado. Consulte la siguiente página en OSGi Wiki: http://wiki.osgi.org/wiki/Why_does_Eclipse_find_javax.swing_but_not_Felix%3F
Respondido 04 Jul 12, 11:07
Estas son las opciones que se envían: -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dosgi.dev -Dosgi.debug=/home/gravelld/eclipse-workspaces/bliss/com.elsten.bliss.bundle/.options - Declipse.log.level=TODO -Dbliss.obr.updaterepository=archivo:/home/gravelld/Eclipse-workspaces/bliss/com.elsten.bliss.installer/release/bliss-bundle/repository.xml -Dfile.encoding=UTF -8 -classpath /opt/eclipse-indigo/eclipse/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar org.eclipse.equinox.launcher.Main . Así que no veo nada allí. Además, eso no explica por qué el PDE no lo detecta en tiempo de compilación. - Dan Gravel
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas eclipse osgi equinox eclipse-pde apache-felix or haz tu propia pregunta.
Bueno, gracias. Editaré la pregunta para concentrarme en el iniciador de Eclipse y PDE. - Dan Gravel