OSGi でコンポーネントを接続するプロセスは、時間の経過とともに進化したようです。
進行は以下のようです。
- ダイレクト API アクセス
- ServiceTracker パターン
- ホワイトボードのパターン
- 宣言型サービス
- 境界
- アイポジョ?? 春?? この時点でかなり曖昧です。
非常に多くの異なるライブラリとアプローチがあるため、選択肢を合理的なアプローチに絞り込む方法が必要です。テクノロジーが同じ問題に対する重複したアプローチであるか、相互に構築されているかはわかりません。
私は次のものを使用することを知っています:
- アパッチ・フェリックス
- アパッチスリング
- メイヴン
それ以上に、重複することなくバンドルを作成するための簡単な手法が必要です。
これは、maven と次のプラグインを使用して作成したバンドルのスクリーンショットです: maven-bundle-plugin、maven-scr-plugin。
多くの冗長性に気づき、何が必要かわかりません。
pom.xml pom.xml が jar に含まれているのはなぜですか? OSGi は、OSGi バンドル リポジトリ (OBR) から依存関係をプルするためにこれを必要としますか?
MANIFEST.MF これも依存関係をリストし、serviceComponents.xml を参照します
Service-Component: OSGI-INF/serviceComponents.xml
serviceComponents.xml は、SCR 注釈の XML 表現を使用したマニフェストの拡張のようです。この時点で、Java クラスの SCR アノテーションは無関係ですか、それとも OSGi はこの XML を使用してアノテーション付きのクラスを検索しますか? iPojo を使用した場合、この XML は iPojo XML に置き換えられると思いますか?
scrinfo.xml これは、
private="false"
各ノードにのみ追加される serviceComponents.xml の複製です。metatype.xml これは、生成された他の XML のように見えますが、SCR 名前空間を使用していません。
ライブラリ これらは、システムの残りの部分に公開されていないバンドルのプライベートな依存関係であると推測しています。
これがうねる質問であるという事実は好きではありませんが、OSGi の Apache-Felix 実装が探しているものと、一方のテクノロジーがどこで終わり、他方のテクノロジーがどこで始まるかについて、信頼できる図を見つけることができないようです。オーバーラップを示す適切な図がどこかにあれば、それは役に立ちます。または、誰かが特定の推奨スタックに絞り込んで、技術的な詳細を整理しながら目隠しをすることができれば、それは素晴らしいことです.