Pregunta

¿Alguien ha usado OSGi y JSF juntos?

Lo pregunto porque JSF usa la magia del cargador de clases para encontrar componentes personalizados. De un tutorial (énfasis mío):

  

Este archivo de configuración terminará   siendo META-INF / faces-config.xml en el   archivo .jar que representa esto   componente. JSF buscará tal   Nombre del archivo en cada uno de los archivos .jar.   que se cargan en tiempo de ejecución (en el   Directorio WEB-INF / lib para archivos .war)   y usar cada uno de ellos en su   configuración. De esta manera, múltiples   componentes .jar archivos pueden ser combinados   en una aplicación web, y todos   Los componentes descritos en cada .jar.   Estará disponible para la aplicación.

Me gustaría poder tener componentes personalizados JSF como paquetes OSGi (es decir, los componentes personalizados están en paquetes OSGi diferentes a los del tiempo de ejecución JSF) y para que JSF pueda encontrarlos en tiempo de ejecución.

¿Alguien ha hecho algo similar?

¿Fue útil?

Solución

Es posible de la siguiente manera:

  • Su paquete web osgi tiene que tener " Require-Bundle " en MANIFEST.MF que apunta al paquete que contiene los componentes
  • El contenedor de componentes debe tener un paquete de exportación que contenga META-INF y subpaquetes de META-INF donde haya algún archivo relacionado con JSF (y, por supuesto, paquetes estándar del componente). Por ejemplo: Export-Package: META-INF, META-INF.resources ...

Si usa el complemento de paquete de maven, debe usar un apóstrofe y un igual para exportar META-INF y subpaquetes. Por ejemplo:

<Export-Package>
  a.b.c,
  '=META-INF',
  '=META-INF.resources',
  ...
</Export-Package>

En JSF Spec 2.2 puede haber partes sobre la relación JSF-OSGI. Para ver el progreso, consulte http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-942

Otros consejos

No estoy seguro de que responda exactamente a tu problema, pero encontré este hilo sobre Spring y osgi interresting, especialmente este respuesta específica donde las dependencias y classpath están agrupadas en MANIFEST.MF.

Ese hilo también conduce a la actualización de este tutorial sobre Spring Dynamic Modules (DM) para plataformas de servicio OSGi ™ que también puede ser de interés.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top