OSGi-Bundles osgi-bundles

CAUTION
AEM 6.4 hat das Ende der erweiterten Unterstützung erreicht und diese Dokumentation wird nicht mehr aktualisiert. Weitere Informationen finden Sie in unserer technische Unterstützung. Unterstützte Versionen suchen here.

Verwenden der semantischen Versionierung use-semantic-versioning

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

Betten Sie nicht mehr Klassen und JARs ein, als in OSGi-Bundles unbedingt erforderlich sind do-not-embed-more-classes-and-jars-than-strictly-needed-in-osgi-bundles

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 Stellen, an denen vorhandene Bundle-Wrapper gefunden werden, sind: Apache Felix, Apache Sling, Apache Geronimo, Apache ServiceMix, Eclipse Bundle Recipes und das SpringSource Enterprise Bundle Repository.

Abhängig von den am wenigsten benötigten Bundle-Versionen depend-on-the-lowest-needed-bundle-versions

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 export-a-minimal-set-of-packages-from-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 sollten immer in einem separaten impl Paket. Standardmäßig wird die maven-bundle-plugin exportiert alles im Projekt, das keine impl im Namen.

Definieren Sie immer explizit eine semantische Version für jedes exportierte Paket always-explicitly-define-a-semantic-version-for-each-package-exported

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 include-metatype-information-where-exposed

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.

recommendation-more-help
2315f3f5-cb4a-4530-9999-30c8319c520e