持続可能なアップグレード sustainable-upgrades

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

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

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

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

API サーフェス api-surface

Adobe Experience Manager(AEM) の以前のリリースでは、多くの API が Uber Jar を介して公開されていました。 これらの API の一部は、お客様による使用を想定していなかったが、バンドルをまたいでAEM機能をサポートするために公開されていた。 今後、アップグレードのコンテキストで使用して安全な API をお客様に示すために、Java™ API は「公開」または「非公開」としてマークされます。 その以外の詳細を次に示します。

  • Java™ API は Public は、カスタム実装バンドルで使用および参照できます。

  • パブリック API は、互換性パッケージのインストールと後方互換性があります。

  • 互換性パッケージには、後方互換性を確保するための互換性 Uber JAR が含まれています

  • Java™ API は Private は、AEMの内部バンドルでのみ使用されることを意図しており、カスタムバンドルでは使用されません。

NOTE
の概念 Private および Public このコンテキストでは、パブリッククラスおよびプライベートクラスの Java™の概念と混同しないでください。

image2018-2-12_23-52-48

コンテンツの分類 content-classifications

AEMは、AEMの機能を拡張およびカスタマイズするために、長い間オーバーレイと Sling Resource Merger のプリンシパルを使用してきました。 AEMコンソールと UI を強化する事前定義済みの機能は、 /libs. 顧客は、以下の条件を変更することは決してありません。 /libs ただし、の下にコンテンツを追加する必要があります /apps で定義された機能をオーバーレイして拡張するには、以下を実行します。 /libs (詳しくは、オーバーレイを使用した開発を参照してください)。 その結果、AEMをのコンテンツとしてアップグレードする際に、多くの問題が引き続き発生していました。 /libs が変更され、オーバーレイ機能が予期しない方法で壊れる場合があります。 お客様は、 sling:resourceSuperTypeまたは単に /libs sling:resourceType を介して直接アクセスできます。 同様のアップグレードの問題が、参照および上書きのユースケースで発生する可能性があります。

顧客がのどの領域を理解しやすく、より安全に /libs は、 /libs は、次の mixin で分類されています。

  • パブリック (granite:PublicArea) — ノードをパブリックとして定義し、オーバーレイして継承 ( sling:resourceSuperType) または直接使用 ( sling:resourceType) をクリックします。 /libs の下のノードは、互換性パッケージを追加することで、安全にアップグレードできます。 一般に、お客様は公開としてマークされたノードのみを使用する必要があります。

  • 抽象(granite:AbstractArea) - ノードを抽象として定義します。ノードはオーバーレイまたは継承できます ( sling:resourceSupertype) ですが、直接使用されません ( sling:resourceType) をクリックします。

  • 最終(granite:FinalArea) - ノードを最終として定義します。最終として分類されたノードは、オーバーレイまたは継承しないことが望ましいです。最終ノードは、 sling:resourceType. 最終ノードの下のサブノードは、デフォルトで内部と見なされます。

  • 内部(granite:InternalArea) - ノードを内部として定義します。内部として分類されるノードは、オーバーレイ、継承、直接使用しないのが理想です。 これらのノードは、AEMの内部機能のみを対象としています。

  • 注釈なし — ノードは、ツリー階層に基づいて分類を継承します。 /ルートは、デフォルトでは「公開」です。 親が「内部」または「最終」と分類されているノードも、「内部」として扱われます。

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

CRXDE Liteコンテンツタイプインジケーター crxde-lite-content-type-indicators

CRXDE Liteで適用された Mixin は、としてマークされたコンテンツノードとツリーを表示します INTERNAL を灰色表示(灰色表示)にする。 の場合 FINALを選択した場合、アイコンのみが灰色表示になります。 これらのノードの子も淡色表示になります。 どちらの場合も、ノードをオーバーレイ機能は無効になっています。

公開

image2018-2-8_23-34-5

最終

image2018-2-8_23-34-56

内部

image2018-2-8_23-38-23

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

NOTE
AEM 6.5 以降では、パターン検出を使用してコンテンツのアクセス違反を検出することをお勧めします。パターン検出レポートの詳細化、問題の検出、偽陽性の確率の低減を行います。
詳しくは、パターン検出を使用したアップグレードの複雑性の評価を参照してください。

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

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 が正しく使用されなかった場合は、違反がレポートされます。

recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2