Paquetes OSGI

Uso de versiones semánticas

Las prácticas recomendadas acordadas para la numeración de versiones semánticas se encuentran en https://semver.org/.

No incruste más clases y tarros de los estrictamente necesarios en los paquetes OSGi

Las bibliotecas comunes deben dividirse en paquetes independientes. Esto permite reutilizarlos en todos los paquetes. Al envolver un JAR en un paquete OSGI, asegúrese de comprobar las fuentes en línea para ver si alguien ya lo ha hecho antes. Algunos lugares comunes para encontrar envoltorios de paquetes existentes son: Apache Felix, Apache Sling, Apache Geronimo, Apache ServiceMix, Recetas de paquetes Eclipse y el Repositorio de paquetes Enterprise de SpringSource.

Depender de las versiones de paquete más bajas necesarias

Para las dependencias de tiempo de compilación en archivos POM, siempre dependen de la versión más baja necesaria que expone la API necesaria. Esto permitirá una mayor compatibilidad con versiones anteriores y facilita las correcciones de la compatibilidad con versiones anteriores.

Exportación de un conjunto mínimo de paquetes desde paquetes OSGi

Tan pronto como se ha exportado un paquete, hemos creado una API de la que otros pueden depender. Asegúrese de exportar lo menos posible y de que lo que se exporta es una API. Es mucho más fácil tomar un método/clase privado y hacerlo público que tomar algo que se exportó anteriormente y hacerlo privado.

Las implementaciones siempre deben colocarse en una carpeta independiente impl paquete. De forma predeterminada, la variable maven-bundle-plugin exportará cualquier elemento del proyecto que no tenga un impl en su nombre.

Siempre defina explícitamente una versión semántica para cada paquete exportado

Esto permitirá que los consumidores de su API evolucionen junto con usted. Al hacerlo, siga siempre las prácticas recomendadas de control semántico de versiones. Esto permitirá a los consumidores de su API saber qué tipos de cambios esperar en una nueva versión.

Incluir información de tipos de metales donde se expone

Al especificar información significativa sobre el tipo de metal, hará que sus servicios y componentes sean más fáciles de entender en la consola Felix. Puede encontrar una lista de anotaciones y atributos de SCR en: https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html.

En esta página