セマンティックバージョニング番号付けに関する合意に基づいたベストプラクティスについては、https://semver.org/ を参照してください。
共通のライブラリは、別々のバンドルにファクタリングする必要があります。 これにより、バンドル間で再利用できます。 をラッピングする場合 JAR OSGi バンドルで、オンラインソースで、既にこの操作を実行しているかどうかを確認します。 既存のバンドルラッパーを見つける一般的な場所は次のとおりです。Apache Felix、Apache Sling、Apache Geronimo、Apache ServiceMix、Eclipse バンドルレシピおよび SpringSource Enterprise バンドルリポジトリ。
POM ファイルのコンパイル時依存関係の場合、常に、必要な API を公開するために最低限必要なバージョンに依存するようにします。このようにすると、下位互換性を高め、以前のリリースに対するバックポート修正が容易になります。
パッケージのエクスポートが完了したら、すぐに他のユーザーが依存する API を作成しておきます。エクスポート対象を可能な限り少なくし、エクスポートされているものが API であることを確認してください。以前にエクスポートしたものを取得してプライベートにするよりも、プライベートメソッドまたはクラスを取得してパブリックにする方がはるかに簡単です。
実装は常に別の impl パッケージ。 デフォルトでは、 maven-bundle-plugin は、 impl 名前に。
このようにすることで、API の利用者も新しいバージョンに取り組むことができます。定義の際には、必ずセマンティックバージョニングのベストプラクティスに従ってください。これにより、API の利用者は、新しいバージョンでの変更点がどのようなタイプのものかを知ることができます。
意味のあるメタタイプ情報を指定することで、Felix コンソールでのサービスおよびコンポーネントが理解しやすくなります。SCR 注釈および属性のリストについては、https://felix.apache.org/documentation/subprojects/apache-felix-maven-scr-plugin/scr-annotations.html を参照してください。