現在表示中:

AEM(旧称 CQ)は、以前からオーバーレイという原理を利用して、開発者がコンソールおよびその他の機能(ページオーサリングなど)を拡張し、カスタマイズできるようにしてきました。

オーバーレイは様々なコンテキストで使用される用語です。このコンテキスト(AEM の拡張)では、オーバーレイとは、「事前定義済みの機能に対して独自の定義を強制的に付加する(標準の機能をカスタマイズする)こと」を表します。

標準インスタンスでは、事前定義された機能は /libs 以下に置かれるので、オーバーレイ(カスタマイズ)は /apps ブランチ以下に定義することが推奨されます。AEM がリソースを検索するときには検索パスを使用します。具体的には、最初に /apps ブランチを検索し、次に /libs ブランチを検索します(検索パスは必要に応じて設定可能)。このメカニズムにより、オーバーレイ(およびそこに定義されているカスタマイズ)が優先されることになります。

AEM 6.0 以降、オーバーレイの実装方法と使用方法が次のように変更されました。

  • AEM 6.0 以降 - Granite 関連のオーバーレイ(つまりタッチ操作向け UI)
    • 方法
      • 適切な /libs 構造を /apps 以下に再構成します。
        1:1 のコピーは不要で、Sling Resource Merger の使用により、必要な元の定義が相互参照されます。Sling Resource Merger は、差分メカニズムによってリソースにアクセスおよびマージするためのサービスを提供します。
      • 変更は /apps 以下でおこないます。
    • メリット
      • /libs 以下の変更に対する堅牢性が高くなります。
      • 実際に必要な項目のみを再定義できます。
  • Granite 以外によるオーバーレイおよび AEM 6.0 より前のバージョンでのオーバーレイ
    • 方法
      • コンテンツを /libs から /apps にコピーします。
        プロパティを含むサブブランチ全体をコピーする必要があります。
      • 変更は /apps 以下でおこないます。
    • デメリット
      • /libs 以下で変更が行われても開発者による変更内容は失われませんが、/apps 以下のオーバーレイにおける一部の変更作業をやり直す必要がある場合があります。

警告:

Sling Resource Merger および関連する手法は、Granite と併用する場合に限り使用できます。つまり、オーバーレイをスケルトン構造で作成する方法は、タッチ操作向け UI でのみ使用できます。

他の領域(クラシック UI など)でのオーバーレイには、該当するノードとサブ構造全体をコピーして、必要な変更を加えます。

オーバーレイは、コンソールの設定サイドパネル内にあるアセットブラウザーへの選択カテゴリの作成(ページのオーサリング時に使用)など、多くの変更において推奨される方法です。オーバーレイは、次の理由で必要になります。

  • /libs ブランチで変更をおこなうことはできません。
    このブランチは、次の場合に変更される可能性が高く、その際に開発者による変更内容が失われる可能性があります。
    • インスタンス上のアップグレード
    • ホットフィックスの適用
    • 機能パックのインストール
  • オーバーレイにより、変更を 1 箇所に集中させることができます。そのため、必要に応じて変更の追跡、移行、バックアップ、デバッグを実行しやすくなります。

検索パスの設定

オーバーレイの場合、配信されるリソースは、取得されたリソースとプロパティの集合体で、定義可能な以下の検索パスに応じます。

  • OSGi 設定Apache Sling Resource Resolver Factory 用に定義された、リソースの Resolver Search Path
    • 検索パスの順序は、上から下の順で、それぞれの優先順位を示します。
    • 標準インストールの場合、主なデフォルトは /apps/libs で、/apps のコンテンツの方が /libs のコンテンツより優先されます(つまり、前者が後者をオーバーレイします)。

使用例

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー