Pacotes OSGI

Usar controle de versão semântico

É possível encontrar as práticas recomendadas para a numeração semântica de versões acordadas em https://semver.org/.

Não incorpore mais classes e jars do que o estritamente necessário em pacotes OSGi

As bibliotecas comuns devem ser transformadas em pacotes separados. Isso permitirá que elas sejam reutilizadas em seus pacotes. Quando quebrar uma JAR em um pacote OSGI, verifique as fontes online para ver se alguém já fez isso antes. Alguns locais comuns para encontrar os invólucros de pacote existentes são: Apache Felix, Apache Sling, Apache Geronimo, Apache ServiceMix, Eclipse Bundle Recipes e o SpringSource Enterprise Bundle Repository.

Depende das versões de pacote mais baixas necessárias

Para compilar dependências de tempo em arquivos POM, sempre dependa da versão mais baixa necessária que expõe a API necessária. Isso permitirá maior compatibilidade com versões anteriores e facilitará as correções de backporting para versões mais antigas.

Exportar um conjunto mínimo de pacotes de pacotes OSGi

Assim que um pacote for exportado, criamos uma API para que outros dependam. Certifique-se de exportar o mínimo possível e verifique se o que está sendo exportado é uma API. É muito mais fácil usar um método/classe privado e torná-lo público do que pegar algo que já foi exportado e torná-lo privado.

As implementações devem sempre ser colocadas em um impl pacote. Por padrão, a variável maven-bundle-plugin exportará qualquer item no projeto que não tenha um impl em seu nome.

Sempre defina explicitamente uma versão semântica para cada pacote exportado

Isso permitirá que os consumidores de sua API evoluam junto com você. Ao fazer isso, sempre siga as práticas recomendadas semânticas de controle de versão. Isso permitirá que os consumidores de sua API saibam quais tipos de alterações esperar em uma nova versão.

Incluir informações de tipo de métrica quando expostas

Ao especificar informações de metattipo significativas, seus serviços e componentes serão mais fáceis de entender no console Felix. Uma lista de anotações e atributos SCR pode ser encontrada em: https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html.

Nesta página