Tengo un paquete de fragmentos que he creado para acceder a algunas funciones de agregar a un jar de terceros. Mi fragmento debería registrar un servicio para exponer esta nueva funcionalidad. No parece funcionar. Antes de profundizar en la resolución de problemas, me gustaría saber si esto está permitido. Es decir, ¿el observador de paquetes de Felix SCR observa o ignora los fragmentos?¿Puede un paquete de fragmentos OSGi publicar un servicio declarativo?
Respuesta
Aha, encontré la respuesta yo mismo en la especificación, sección 112.4.2: "SCR ignora un encabezado de manifiesto de componente de servicio especificado en un fragmento". Esto es coherente con 3.14.3: "La siguiente lista contiene los encabezados que no se deben usar en un paquete de fragmentos: Activador de paquete"
Sí. Pero el paquete anfitrión debe estar abierto a esto. Al abrir, quiero decir que el paquete de host debe tener el encabezado Service-Components
configurado de modo que se encuentren los descriptores en el fragmento. Por ejemplo:
Service-Components: OSGI-INF/*.xml
encontrará todos .xml
archivos de la carpeta OSGi-INF/
del paquete de acogida todos los fragmentos unidos.
Vi que el proyecto SmartHome de Eclipse usa esta solución para hacer su interfaz de usuario más personalizable.
Más información: http://apache-felix.18485.x6.nabble.com/DS-amp-fragments-td5004610.html
- 1. OSGi JAX-RS y servicio declarativo Bnd
- 2. Referencias de servicio en OSGi
- 3. ¿Puede un ListView contener fragmentos
- 4. ¿Se puede pasar un paquete a un servicio?
- 5. ¿Cuál es la forma correcta de deshabilitar un servicio OSGi al inicio del servicio?
- 6. Encuentra el paquete OSGI que exporta un paquete?
- 7. Iniciando el paquete OSGi
- 8. No se puede encontrar el servicio porque el paquete OSGi no está activado
- 9. Carga DLL (usando JNA) dentro de un paquete OSGi
- 10. Estructura del paquete del paquete OSGi
- 11. Obtener servicios OSGi de un paquete en Sling/CQ
- 12. Ejemplo de trabajo para un servicio OSGI remoto
- 13. no se puede iniciar el paquete de osgi porque no se puede resolver la importación
- 14. Cómo usar sbtosgi para generar paquete osgi como parte de la tarea de publicar sbt
- 15. ¿Cómo funciona la actualización del paquete OSGi?
- 16. servicio OSGi declarativa condicional vinculante
- 17. Encontrar archivos y carpetas en un paquete OSGI
- 18. ¿Cómo crear un paquete OSGi desde la biblioteca jar?
- 19. ¿Cuándo se adjunta un fragmento OSGi al host?
- 20. ¿Cómo publicar un servicio web de Visual Studio en IIS?
- 21. ¿Se puede usar un LoaderManager de un servicio?
- 22. Embedded OSGi o paquete de aplicación
- 23. Fragmentos del paquete onCreateView(). ¿De dónde viene?
- 24. conseguir OSGi paquete de Eclipse IConfigurationElement
- 25. Además de un lenguaje declarativo, ¿SQL es un lenguaje funcional?
- 26. ¿Cómo puedo compartir bibliotecas que no sean OSGi entre paquetes en un contenedor OSGi?
- 27. Declarativo GTK
- 28. ¿Cómo publicar datos a un servicio web utilizando JSON?
- 29. Cómo publicar Nuget paquete de versión preliminar
- 30. Uso de JavaCompiler en un OSGi Bundle
Véase también http://stackoverflow.com/questions/8592860/component-inside-a-fragment-never-activated, lo que confirma lo que acaba de decir, pero con el añadido de que la información blueprint funciona para fragmentos. –