OSGi-Bundles

Verwenden von semantischer Versionierung

Die vereinbarten Best Practices für die semantische Versionsnummeriierung finden Sie unter https://semver.org/.

Bedarfsbeschränktes Einbetten von Klassen und JAR-Dateien in OSGi-Bundles

Allgemeine Bibliotheken sollten in separate Bundles ausgelagert werden. So können Sie sie für alle Bundles wiederverwenden. Wenn Sie einen JAR-Wrapper für ein OSGi-Bundle erstellen möchten, überprüfen Sie zuerst online, ob dieser Vorgang bereits von jemand anderem ausgeführt wurde. Bereits vorhandene Bundle-Wrapper finden Sie unter anderem in: Apache Felix, Apache Sling, Apache Geronimo, Apache ServiceMix, Eclipse Bundle Recipes und dem SpringSource Enterprise Bundle Repository.

Verwenden der niedrigsten erforderlichen Bundle-Versionen

Verwenden Sie für Kompilierungszeit-Abhängigkeiten in POM-Dateien immer die niedrigste erforderliche Version, die die API verfügbar macht. Dies ermöglicht eine höhere Abwärtskompatibilität und erleichtert die Backport-Fehlerbehebung bei älteren Versionen.

Exportieren der Mindestanzahl erforderlicher Pakete aus OSGi-Bundles

Unmittelbar nach dem Exportieren eines Pakets wird eine API erstellt, von der andere Komponenten abhängen. 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 müssen immer in einem separaten impl-Paket erfolgen. Standardmäßig exportiert das maven-bundle-Plug-in alle Komponenten eines Projekts, die kein impl im Namen enthalten.

Ausdrückliches Definieren einer semantischen Version für jedes exportierte Paket

Dadurch können sich Nutzer der API an Ihr Entwicklungstempo anpassen. Folgen Sie dabei immer den Best Practices für die semantische Versionierung. Verbraucher der API sind dann immer darüber informiert, mit welchen Änderungen in einer neuen Version zu rechnen ist.

Angeben von angezeigten Metatyp-Informationen

Durch Angabe aussagekräftiger Metatyp-Informationen sind Ihre Services und Komponenten in der Felix-Konsole verständlicher. Eine Liste der SCR-Anmerkungen und Attribute finden Sie unter: https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html.

Auf dieser Seite