Apache sling と CQ5 の開発を始めたばかりです。Sling には OSGI バンドルを使用するというこの概念があります。
Sling フレームワークがこれらのバンドルと実際にどのように相互作用するのか、バンドルからの応答はどこに行くのかわかりません。
OSGi は、Sling および CQ5 製品で使用されるモジュール フレームワークおよびサービス プラットフォームです。Sling 自体は、Felix OSGi コンテナ内でホストされる一連のバンドルで構成されています。バンドルは、コンテナーによって管理されるコンポーネント/サービスおよび Java クラスのコレクション グループです。バンドルは、インポート、エクスポートするパッケージと、それらの依存関係のバージョンを指定できます。
Sling から OSGi を操作するには、いくつかの方法があります。JSP/JSP から、(タイプSlingScriptHelperの) sling オブジェクトを使用できます。これは、次の行を含めた場合に JSP ページで使用できる可能性が最も高くなります。
<%@include file="/libs/foundation/global.jsp"%>
あなたのコンポーネントで、または以下を持っています:
<cq:defineObjects>
次のように使用できます。
QueryBuilder queryBuilder = sling.getService(QueryBuilder.class);
さらに、独自の OSGi コンポーネント (サーブレット、サービスなど) がある場合は、SCR アノテーションを使用して他の OSGI コンポーネント/サービスへの参照を挿入できます。Bertrand は、 Getting OSGi services from a bundle in Sling/CQへの回答でこれについて説明しています。事実上、これはコンポーネント内の OSGI コンポーネント変数に @Reference アノテーションを追加することを意味します。
@Reference
private SlingRepository repository;
コンポーネントがロードされると、OSGi コンテナーによって参照が注入されます。
バンドル自体には応答がありません。デプロイされたバンドルは、システム コンソールに表示されます。
http://localhost:4502/system/console/bundles
そのコンポーネント、サービス、および構成をここで宣言します。
http://localhost:4502/system/console/services
http://localhost:4502/system/console/components
http://localhost:4502/system/console/configMgr
(localhost:4502 を独自の CQ サーバーのホスト:ポートに置き換えます)
コンポーネントへの参照を取得したら、そのメソッドを呼び出して、それらの呼び出しからの戻り値を使用できます。