OSGI Bundles

Använd semantisk version

Information om de bästa metoderna för semantisk versionsnumrering finns på https://semver.org/.

Bädda inte in fler klasser och burkar än vad som är absolut nödvändigt i OSGi-paket

Gemensamma bibliotek bör delas upp i separata paket. På så sätt kan de återanvändas i alla dina paket. När du omsluter en JAR-fil i ett OSGI-paket måste du kontrollera om någon redan har gjort det här innan. En del vanliga platser att hitta befintliga paketbrytare på är: Apache Felix, Apache Sling, Apache Geronimo, Apache ServiceMix, Eclipse Bundle Recipes och SpringSource Enterprise Bundle Repository.

Beroende på vilka paketversioner som behövs

För kompileringsberoenden i POM-filer är alltid beroende av vilken version som har lägst storlek som visar det API som behövs. Detta ger bättre bakåtkompatibilitet och underlättar korrigering av äldre versioner.

Exportera en minimal uppsättning paket från OSGi-paket

När ett paket har exporterats har vi skapat ett API som andra kan lita på. Se till att exportera så lite som möjligt och se till att det som exporteras är ett API. Det är mycket enklare att ta en privat metod/klass och göra den offentlig än att ta något som tidigare exporterats och göra den privat.

Implementeringar ska alltid placeras i ett separat impl-paket. Som standard exporterar maven-bundle-plugin allt i projektet som inte har impl i namnet.

Definiera alltid explicit en semantisk version för varje exporterat paket

Detta kommer att göra det möjligt för användare av ditt API att utvecklas tillsammans med dig. När du gör det ska du alltid följa vedertagna standarder för semantisk versionshantering. På så sätt kan användare av ditt API veta vilka typer av ändringar som förväntas i en ny version.

Inkludera metatypsinformation där exponeras

Genom att specificera meningsfull metatypsinformation blir era tjänster och komponenter lättare att förstå i Felix-konsolen. En lista över SCR-anteckningar och -attribut finns på: https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html.

På denna sida