Bundle OSGI

Utilizzare le versioni semantiche

Le best practice concordate per la numerazione delle versioni semantiche sono disponibili all'indirizzo https://semver.org/.

Non incorporare più classi e jar di quanto strettamente necessario nei bundle OSGi

Le librerie comuni devono essere raggruppate in pacchetti separati. In questo modo sarà possibile riutilizzarli nei bundle. Quando racchiudete un JAR in un pacchetto OSGI, verificate di aver controllato le origini online per verificare se qualcuno ha già fatto questo. Alcuni luoghi comuni per trovare i bundle esistenti sono: Apache Felix, Apache Sling, Apache Geronimo, Apache ServiceMix, Eclipse Bundle Recipes e SpringSource Enterprise Bundle Repository.

Dipende dalle versioni bundle necessarie più basse

Per le dipendenze in fase di compilazione nei file POM, dipende sempre dalla versione minima necessaria che espone l'API necessaria. Ciò consentirà una maggiore compatibilità con le versioni precedenti e faciliterà il backport delle correzioni alle versioni precedenti.

Esportare un set minimo di pacchetti dai bundle OSGi

Non appena un pacchetto è stato esportato, abbiamo creato un'API da cui gli altri utenti possono dipendere. Assicuratevi di esportare il meno possibile e assicuratevi che ciò che viene esportato sia un'API. È molto più facile prendere un metodo/classe privato e renderlo pubblico che prendere qualcosa che è stato precedentemente esportato e renderlo privato.

Le implementazioni devono sempre essere collocate in un pacchetto impl separato. Per impostazione predefinita, il maven-bundle-plugin esporta qualsiasi elemento del progetto che non abbia un impl nel nome.

Definire sempre esplicitamente una versione semantica per ciascun pacchetto esportato

In questo modo i consumatori delle API potranno evolvere insieme a voi. In questo modo, segui sempre le best practice relative alle versioni semantiche. In questo modo gli utenti dell'API potranno sapere quali tipi di modifiche sono previste in una nuova versione.

Includi informazioni sul tipo di dati in esposizione

Specificando informazioni significative per il tipo di dati, i vostri servizi e componenti saranno più facili da comprendere nella console Felix. Un elenco delle annotazioni e degli attributi SCR è disponibile all'indirizzo: https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html.

In questa pagina