Show Menu
TÓPICOS×

Pacotes OSGI

Usar controle de versão semântico

As práticas recomendadas para a numeração semântica de versão aprovadas podem ser encontradas 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 integradas em pacotes separados. Isso permitirá que eles sejam reutilizados em seus pacotes. Ao vincular um JAR em um pacote OSGI, verifique as fontes online para ver se alguém já fez isso antes. Alguns locais comuns para encontrar invólucros de pacotes existentes são: Apache Felix, Apache Sling, Apache Geronimo, Apache ServiceMix, Receitas do pacote Eclipse e o Repositório do pacote SpringSource Enterprise.

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

Para as dependências de tempo de compilação em arquivos POM, sempre dependa da versão mais baixa necessária que exponha a API necessária. Isso permitirá uma 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 é exportado, criamos uma API para que outras pessoas dependam. Certifique-se de exportar o mínimo possível e verifique se o que está sendo exportado é uma API. É muito mais fácil pegar um método/classe privado e torná-lo público do que pegar algo que antes era exportado e torná-lo privado.
As implementações devem ser sempre colocadas em um pacote impl separado. Por padrão, o plug-in maven-bundle exportará qualquer item no projeto que não tenha um impl em seu nome.

Sempre definir 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, siga sempre as práticas recomendadas de controle de versão semântica. Isso permitirá que os consumidores de sua API saibam que tipos de alterações devem ser esperadas em uma nova versão.

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

Ao especificar informações significativas de metatótipo, seus serviços e componentes serão mais fáceis de entender no console do 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 .