Adobe Experience Manager as a Cloud Service では、オーバーレイの原則を使用して、コンソールやその他の機能(ページオーサリングなど)の拡張やカスタマイズが可能です。
オーバーレイは様々なコンテキストで使用される用語です。このコンテキスト(AEM as a Cloud Service の拡張)では、オーバーレイとは、「事前定義済みの機能に対して独自の定義を強制的に付加する(標準の機能をカスタマイズする)こと」を表します。
標準インスタンスでは、定義済みの機能は /libs
に保持され、(リソースを解決する検索パスを使用して)/apps
ブランチの下にオーバーレイ(カスタマイズ)を定義することをお勧めします。
タッチ対応 UI は Granite 関連のオーバーレイを使用します。
方法
/apps
の下に適切な /libs
構造を再構築します。
1:1 コピーは不要です。Sling Resource Merger は、必要な元の定義を相互参照するのに使用されるからです。Sling Resource Merger は、差分メカニズムによってリソースにアクセスおよびマージするためのサービスを提供します。
変更は /apps
以下で行います。
メリット
/libs
以下の変更に対する堅牢性が高まります。Sling Resource Merger および関連する手法は、Granite と併用する場合に限り使用できます。つまり、スケルトン構造を持つオーバーレイの作成は、標準のタッチ操作対応 UI にのみ適しています。
オーバーレイは、コンソールの設定、サイドパネル内にあるアセットブラウザーへの選択カテゴリの作成(ページのオーサリング時に使用)など、多くの変更において推奨される方法です。オーバーレイは、次の理由で必要になります。
/libs
ブランチ**で変更を行うことは**できません。
このブランチは、インスタンスにアップグレードが適用されるたびに変更される可能性が高く、その際に変更内容が失われる場合があるからです。
オーバーレイにより、変更を 1 箇所に集中させることができます。そのため、必要に応じて変更の追跡、移行、バックアップ、デバッグを実行しやすくなります。
AEM は、検索パスを使用してリソースを検索し、(デフォルトでは)最初に /apps
ブランチを検索し、次に /libs
ブランチを検索します。このメカニズムにより、/apps
のオーバーレイ(およびそこに定義されているカスタマイズ)が優先されることになります。
オーバーレイの場合、配信されるリソースは、取得されたリソースとプロパティの集合体で、OSGi 設定で定義されている検索パスに応じます。