現在表示中:

カスタマイズフレームワーク

アーキテクチャ(機能/インフラストラクチャ/コンテンツ/アプリケーション)

カスタマイズフレームワーク機能は、アップグレードしづらいコード(APIS など)またはコンテンツ(オーバーレイなど)などの拡張できない領域での違反が減少するように設計されています。

カスタマイズフレームワークには、API サーフェスコンテンツ分類の 2 つのコンポーネントがあります。

API サーフェス

AEM の以前のリリースでは、多くの API が Uber Jar を介して公開されていました。これらの API の一部は、お客様による使用を意図して公開されたものではなく、複数のバンドルにまたがって AEM 機能をサポートするために公開されたものです。今後は、アップグレードの観点からどの API が安全に使用できるかをお客様に示すために、Java API は、公開または非公開としてマークされます。その他の詳細を次に示します。

  • 公開としてマークされた Java API は、カスタム実装バンドルによって使用および参照できます。
  • 公開 API は、互換パッケージのインストールによる後方互換性があります。
  • 互換パッケージには、後方互換性を確保するために互換 Uber JAR が含まれます。
  • 非公開としてマークされた Java API は、AEM の内部バンドルによる使用のみが意図されており、カスタムバンドルでは使用できません。

注意:

このコンテキストでの非公開および公開の概念を、Java の private クラスおよび public クラスの概念と混同しないようにしてください。

image2018-2-12_23-52-48

コンテンツ分類

AEM では、以前からオーバーレイの原理と Sling Resource Merger を使用して、ユーザーが AEM の機能の拡張およびカスタマイズをおこなうことができるようになっています。AEM コンソールと UI を強化する事前定義済みの機能は、/libs に格納されます。ユーザーは /libs の下は何も変更できませんが、/apps の下にコンテンツを追加して、/libs 内で定義されている機能をオーバーレイおよび拡張できます(詳しくは、「オーバーレイを使用した開発」を参照)。この場合も、AEM のアップグレード時に多数の問題が発生します。/libs 内のコンテンツが変更され、オーバーレイ機能が予期しない動作で破損することがあるからです。ユーザーは、sling:resourceSuperType を介した継承によって、または sling:resourceType を使用して /libs 内のコンポーネントを直接参照することによって、AEM コンポーネントを拡張することもできます。同様のアップグレードの問題は、参照およびオーバーライドの使用例で発生する可能性があります。

安全に使用およびオーバーレイできる /libs の領域を容易に理解してより安全になるように、/libs 内のコンテンツは次の mixin によって分類されています。

  • 公開(granite:PublicArea) - オーバーレイ、継承(sling:resourceSuperType)または直接使用(sling:resourceType)できるように、ノードを公開として定義します。公開としてマークされた /libs の下のノードは、互換パッケージを追加することで、アップグレードしても安全になります。通常、顧客は公開としてマークされたノードのみを利用する必要があります。
  • 抽象(granite:AbstractArea) - ノードを抽象として定義します。ノードは、オーバーレイおよび継承(sling:resourceSupertype)することはできますが、直接使用(sling:resourceType)することはできません。
  • 最終(granite:FinalArea) - ノードを最終として定義します。最終として分類されたノードは、オーバーレイも継承もできません。最終ノードは、sling:resourceType を介して直接使用できます。最終ノードの下のサブノードは、デフォルトで内部と見なされます。
  • 内部(granite:InternalArea) - ノードを内部として定義します。内部として分類されたノードは、オーバーレイ、継承、直接使用のいずれもできません。これらのノードは、AEM の内部機能でのみ使用されます。
  • 注釈なし - ノードはツリー階層に基づいて分類を継承します。/ root はデフォルトで公開です。親が内部または最終として分類されているノードも、内部として扱われます。

注意:

これらのポリシーは、Sling 検索パスに基づくメカニズムに対してのみ適用されます。クライアント側ライブラリなど /libs の他の領域は、内部としてマークされることがありますが、標準で clientlib を含めることで使用できます。このような場合は、お客様が引き続き内部分類に従うことが重要です。

CRXDE Lite コンテンツタイプインジケーター

CRXDE Lite で適用される mixin では、内部としてマークされたコンテンツノードとツリーがグレー表示されます。最終については、アイコンのみがグレー表示されます。これらのノードの子もグレー表示されます。どちらの場合も、オーバーレイノード機能は無効になります。

公開

image2018-2-8_23-34-5

最終

image2018-2-8_23-34-56

内部

image2018-2-8_23-38-23

コンテンツヘルスチェック

AEM 6.4 にはヘルスチェックが付属しています。オーバーレイまたは参照されたコンテンツがコンテンツ分類と一致しない方法で使用された場合は、このヘルスチェックにより警告が表示されます。

Sling/Granite コンテンツアクセスチェックは、リポジトリを監視して、お客様のコードが AEM の保護されたノードに誤ってアクセスしていないかどうかを確認する新しいヘルスチェックです。

このヘルスチェックは /apps をスキャンし、通常は完了するまで数秒かかります。

この新しいヘルスチェックにアクセスするには、次の手順に従います。

  1. AEM ホーム画面から、ツール/運営/ヘルスレポートに移動します。

  2. 次に示すように、Sling/Granite コンテンツアクセスチェックをクリックします。

    screen_shot_2017-12-14at55648pm

スキャンが完了すると、警告のリストが表示され、誤って参照されている保護されたノードをエンドユーザーに通知します。

screenshot-2018-2-5healthreports

違反を修正すると、緑の状態に戻ります。

screenshot-2018-2-5healthreports-violations

ヘルスチェックには、バックグラウンドサービスによって収集された情報が表示されます。バックグラウンドサービスでは、オーバーレイまたはリソースタイプがすべての Sling 検索パスにわたって使用される場合は常に、非同期的にチェックが実行されます。コンテンツ mixin が誤って使用された場合、違反が報告されます。

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

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