Die vereinbarten Best Practices für die semantische Versionsnummeriierung finden Sie unter https://semver.org/.
Gemeinsame Bibliotheken sollten in separate Bundles zusammengefasst werden. Dadurch können sie in allen Bundles wiederverwendet werden. Beim Umbrechen einer JAR in einem OSGi-Bundle überprüfen Sie die Online-Quellen, um festzustellen, ob dies bereits geschehen ist. Einige gängige Orte, an denen Sie vorhandene Bundle-Wrapper finden, sind: Apache Felix, Apache Sling, Apache Geronimo, Apache ServiceMix, Eclipse Bundle Recipes und das SpringSource Enterprise Bundle Repository.
Bei Kompilierungszeitabhängigkeiten in POM-Dateien hängen Sie immer von der niedrigsten benötigten Version ab, die die benötigte API verfügbar macht. Dies ermöglicht eine höhere Abwärtskompatibilität und erleichtert die Rückportierung von Fehlerbehebungen in älteren Versionen.
Wenn ein Package exportiert wurde, wurde eine API erstellt, von der andere abhängig sind. Exportieren Sie so wenig wie möglich und stellen Sie sicher, dass Sie tatsächlich APIs exportieren. Es ist einfacher, eine private Methode oder Klasse öffentlich zu machen, als eine zuvor exportierte Komponente privat zu machen.
Implementierungen immer in einer separaten impl Paket. Standardmäßig wird die Variable maven-bundle-plugin exportiert alles im Projekt, das keine impl im Namen.
Dadurch können sich Verbraucher Ihrer API mit Ihnen entwickeln. Folgen Sie dabei immer den Best Practices für die semantische Versionierung. Dadurch können Verbraucher Ihrer API wissen, welche Arten von Änderungen in einer neuen Version zu erwarten sind.
Durch Angabe aussagekräftiger Metatypinformationen werden Ihre Dienste und Komponenten in der Felix-Konsole leichter zu verstehen sein. Eine Liste der SCR-Anmerkungen und Attribute finden Sie unter: https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html.