現在表示中:

OSGi は、Adobe Experience Manager(AEM)の技術スタックにおける基本要素です。AEM の複合バンドルおよびそれらの設定を制御するために使用します。

OSGi は標準化されたプリミティブを提供し、小さく再利用が可能で連携機能に優れたコンポーネントを組み合わせてアプリケーションを構築することを可能にします。これらのコンポーネントからアプリケーションを作成し、デプロイすることができます。

この構成では、バンドルを個別に停止、インストール、起動できるので、バンドルを簡単に管理できます。相互の依存関係は自動的に処理されます。各 OSGi コンポーネント(OSGi の仕様を参照)は、様々なバンドルのうちいずれかに含まれています。

これらのバンドルの設定は、次のいずれかの方法で管理できます。

注意:

変更を加えるときは、Adobe CQ Web コンソールを使用することをお勧めします。

いずれの方法も使用できますが、主に実行モードに関連して、次のようなわずかな違いがあります。

  • Adobe CQ Web コンソール
    • Web コンソールは OSGi 設定の標準インターフェイスです。様々なプロパティを編集するための UI が提供されており、事前に定義されているリストから設定可能な値を選択できます。
      そのため、これは最も簡単な使用方法です。
    • Web コンソールでおこなわれた設定は、現在のインスタンスにすぐに適用されます。現在の実行モードや、今後の実行モードの変更には関係ありません。
  • 設定ファイル
    • Web コンソールで定義される設定を含みます。
    • 他のインスタンスで使用するために、コンテンツパッケージに含めることができます。
  • リポジトリ内のコンテンツノード(sling:osgiConfig)
    • CRXDE Lite を使用した手動による設定が必要です。
    • sling:OsgiConfig ノードの命名規則により、設定を特定の実行モードに結び付けることができます。また、複数の実行モードの設定を同じリポジトリに保存することもできます。
    • 適切な設定はすぐに適用されます(実行モードに依存)。

どの設定方法を使用した場合でも、次のことが可能です。

  • リポジトリのコンテンツをコピーまたはレプリケートすることにより、同一の設定を再作成できます。
  • セキュリティやさらなる更新のために、FileVault または Subversion に設定をチェックアウトできます。
  • パッケージとして保存し、他のインスタンスを設定する際に使用できます。
  • スクリプトを使用して設定の詳細を反映させることにより、設定のロールアウトを実行できます。

注意:

特定の重要な設定について詳しくは、OSGi 設定を参照してください。

Web コンソールでの OSGi 設定

AEM の Web コンソールは、バンドルを設定するための標準化されたインターフェイスを提供します。「設定」タブは、OSGi バンドルの設定時に使用します。AEM システムパラメーターを設定するための基盤となるメカニズムです。

おこなった変更は、関連する OSGi 設定にすぐに適用されます。再起動の必要はありません。

注意:

Web コンソールで加えた変更は、設定ファイルとしてリポジトリ内に保存されます。このファイルをコンテンツパッケージに含めておき、将来のインストールで再利用することができます。

注意:

Web コンソールでは、デフォルト設定に言及している説明はすべて、Sling のデフォルトに関連しています。

Adobe Experience Manager には独自のデフォルト値があり、設定されるデフォルト値は、コンソールに表示される値と異なる場合があります。

Web コンソールで設定を更新するには:

  1. 次のいずれかの方法で、Web コンソールの「設定」タブにアクセスします。

    • ツール/運営メニューのリンクから Web コンソールを開きます。コンソールにログインしたら、次のドロップダウンメニューを使用できます。
          OSGi >
    • 直接の URL を使用します。次に例を示します。
          http://localhost:4502/system/console/configMgr

    リストが表示されます。

  2. 次のいずれかの方法で、設定するバンドルを選択します。

    • 該当するバンドルの「編集」アイコンをクリック
    • 該当するバンドルの名前をクリック
  3. ダイアログが開きます。ここで、必要に応じて編集できます。例えば、「ログレベル」を「情報」に設定します。

    chlimage_1

    注意:

    更新内容は、設定ファイルとしてリポジトリ内に保存されます。後で必要になったときに探し出せるようにするために(コンテンツパッケージに含めて別のインスタンスで使用できるようにする場合など)、永続識別子(PID)をメモしておく必要があります。

  4. 保存」をクリックします。

    変更内容は、関連する OSGi 設定にすぐに適用され、再起動は不要です。

    注意:

    これで、例えば設定ファイルをコンテンツパッケージに含めて別のインスタンスで使用できるようにしたい場合などに、関連する設定ファイルを見つけられるようになります。

設定ファイルでの OSGi 設定

Web コンソールでおこなった設定変更は、設定ファイル(.config)としてリポジトリ内の以下の場所に保存されます。

    /apps

これらの設定ファイルをコンテンツパッケージに含めて、他のインスタンスで再利用することができます。

注意:

設定ファイルは特殊な形式になっています(詳しくは Sling Apache のドキュメントを参照)。

そのため、実際の変更は Web コンソールを使用しておこない、設定ファイルが作成、維持されるようにすることをお勧めします。

Web コンソールには、リポジトリのどの場所に変更が保存されたかは表示されませんが、次の手順で簡単に見つけることができます。

  1. Web コンソールで最初の変更をおこなうことで、設定ファイルを作成します。

  2. CRXDE Lite を開きます。

  3. ツールメニューの「クエリー」を選択します。

  4. タイプSQL のクエリーを送信して、更新した設定の PID を検索します。

    例えば、Apache Felix OSGi Management Console の永続識別子(PID)は次のとおりです。

        org.apache.felix.webconsole.internal.servlet.OsgiManager

    よって、SQL クエリーは次のようになります。

    select * from nt:base where jcr:path like '/apps/%' and contains(*, 'org.apache.felix.webconsole.internal.servlet.OsgiManager')
  5. 設定ファイルのノードが表示されます。

    上の例では、次のようになります。

        /apps/system/config/org.apache.felix.webconsole.internal.servlet.OsgiManager.config

    警告:

    このファイルを開くと、変更内容を確認できます。ただし、タイプミスを防ぐために、実際の変更はコンソールでおこなうことをお勧めします。

  6. このノードを含むコンテンツパッケージをビルドしておくと、必要に応じて他のインスタンスで使用できます。

リポジトリでの OSGi 設定

Web コンソールを使用するほかに、リポジトリで設定の詳細を定義することもできます。これにより、様々な実行モードを簡単に設定できます。

この設定をおこなうには、リポジトリ内にシステムが参照する sling:OsgiConfig ノードを作成します。これらのノードは OSGi 設定を反映してユーザーインターフェイスを形成します。設定データを更新するには、ノードのプロパティを更新します。

リポジトリで設定データを変更すると、Web コンソールを使用して変更した場合と同様に、関連する OSGi 設定に変更内容がすぐに適用され、適切な検証と整合性チェックがおこなわれます。これは、/libs/ から /apps/ に設定をコピーするアクションにも該当します。

同じ設定パラメーターが複数の場所に配置される場合があるので、システムでは次の処理がおこなわれます。

  • タイプが sling:OsgiConfig のすべてのノードを検索
  • サービス名に従ってフィルター処理
  • 実行モードに従ってフィルター処理

リポジトリへの新しい設定の追加

必要な知識

新しい設定をリポジトリに追加するには、以下を知っておく必要があります。

  1. サービスの永続識別子(PID)。
    Web コンソールの「設定」フィールドを参照します。名前は、バンドル名の後に角括弧で囲んで(またはページの下のほうにある「設定情報」に)表示されます。
    例えば、com.day.cq.wcm.core.impl.VersionManagerImpl. ノードを作成して AEM WCM バージョンマネージャーを設定します。

    chlimage_1
  2. 特定の実行モードが必要かどうか。次のようにフォルダーを作成します。

    • config - すべての実行モード用
    • config.author - オーサー環境用
    • config.publish - パブリッシュ環境用
    • config.<run-mode> - 適宜
  3. 設定またはファクトリ設定が必要かどうか。

  4. 設定対象の個々のパラメーター(再作成が必要になる既存のパラメーター定義を含む)。
    Web コンソールの個々のパラメーターフィールドを参照します。各パラメーターの名前は角括弧で囲んで表示されます。
    例えば、versionmanager.createVersionOnActivation パラメーターを作成して「アクティベーション時にバージョンを作成」を設定します。

    chlimage_1
  5. /libs 内に設定が既に存在するかどうか。インスタンスに含まれるすべての設定をリストするには、CRXDE Lite のクエリーツールを使用して、次の SQL クエリーを送信します。
        select * from sling:OsgiConfig
    設定が存在する場合は、/apps/<yourProject>/ にコピーして、新しい場所でカスタマイズできます。

リポジトリでの設定の作成

新しい設定をリポジトリに実際に追加するには:

  1. CRXDE Lite を使用して次の場所に移動します。

        /apps/<yourProject>

  2. config フォルダーがない場合は作成します(sling:Folder)。

    • config - すべての実行モードに該当
    • config.<run-mode> - 特定の実行モードに固有
  3. このフォルダーの下に、次の設定でノードを作成します。

    • タイプ:sling:OsgiConfig
    • 名前:永続識別子(PID)
      例えば、AEM WCM バージョンマネージャーの場合は、com.day.cq.wcm.core.impl.VersionManagerImpl を使用

    注意:

    ファクトリ設定を作成する場合は、-<identifier> を名前に付加します。

    次に例を示します。org.apache.sling.commons.log.LogManager.factory.config-<identifier>

    <identifier> の部分は、インスタンスを識別するフリーテキストに置き換えます(この情報は省略できません)。次に例を示します。

    org.apache.sling.commons.log.LogManager.factory.config-MINE

  4. 設定するパラメーターごとに、このノードでプロパティを作成します。

    • 名前:Web コンソールに表示される名前。名前は、フィールドの説明の最後に角括弧で囲んで表示されます。例えば、、Create Version on Activation の場合は、、versionmanager.createVersionOnActivation を使用します。
    • タイプ:適宜。
    • 値:必要に応じて。

    プロパティを作成する必要があるのは、設定対象のパラメーターのみです。その他は、AEM で設定されているデフォルト値を引き続き使用します。

  5. すべての変更を保存します。

    変更は、サービスを再起動することによってノードが更新されるとすぐに適用されます(Web コンソールでおこなった変更と同様)。

警告:

/libs パスでは何も変更しないでください。

警告:

起動時に設定を読み込むには、設定のフルパスを正しく指定する必要があります。

設定の詳細

起動時の優先順位

次の優先順位を使用します。

  1. /apps/*/config... の下のリポジトリノード。タイプが sling:OsgiConfig のものまたはプロパティファイル
  2. /libs/*/config... の下にある、タイプが sling:OsgiConfig のリポジトリノード(標準定義)
  3. ローカルファイルシステムの <cq-installation-dir>/crx-quickstart/launchpad/config/... にある .config ファイル

これはつまり、/libs 内の汎用設定は、/apps 内のプロジェクト固有の設定によってマスクできるということです。

実行時の優先順位

システム実行中に設定変更をおこなうと、変更後の設定で再読み込みが開始されます。

その後、次の優先順位が適用されます。

  1. Web コンソールでの設定変更が、実行時に優先されるので、すぐに有効になります。
  2. /apps での設定変更がすぐに有効になります。
  3. /libs での設定変更がすぐに有効になります(/apps の設定によってマスクされていない場合)。

複数の実行モードの解決

実行モードに固有の設定に関しては、複数の実行モードを組み合わせることができます。例えば、設定フォルダーを次のスタイルで作成できます。

/apps/*/config.<runmode1>.<runmode2>/

このようなフォルダー内の設定は、起動時に定義されている実行モードにすべての実行モードが一致した場合に適用されます。

例えば、インスタンスが実行モード author,dev,emea で起動された場合は、/apps/*/config.emea/apps/*/config.author.dev/ および /apps/*/config.author.emea.dev/ の設定ノードが適用され、/apps/*/config.author.asean/ および /config/author.dev.emea.noldap/ の設定ノードは適用されません。

同じ PID に複数の設定が該当する場合は、一致する実行モードの数が最も大きい設定が適用されます。

例えば、インスタンスが実行モード author,dev,emea で起動され、/apps/*/config.author//apps/*/config.emea.author/ の両方で
com.day.cq.wcm.core.impl.VersionManagerImpl の設定が定義されている場合は、/apps/*/config.emea.author/ の設定が適用されます。

このルールの精度は PID レベルです。
/apps/*/config.author/ で同じ PID のいくつかのプロパティを定義して、/apps/*/config.emea.author/ で同じ PID に関してより具体的なプロパティを定義することはできません。
一致する実行モードの数が最も大きい設定が、PID 全体で有効になります。

標準設定

以下のリストは、リポジトリで使用できる(標準インストールの)設定の一部を示しています。

注意:

これらの設定は /libs 内にあるので、直接編集はせず、アプリケーション領域(/apps)にコピーしてからカスタマイズしてください。

インスタンスに含まれるすべての設定ノードをリストするには、CRXDE Lite のクエリ機能を使用して、次の SQL クエリを送信します。

select * from sling:OsgiConfig

設定の永続性

  • Web コンソールを使用して設定を変更した場合、(通常は)リポジトリの次の場所に書き込まれます。
    /apps/{somewhere}
    • デフォルトでは、{somewhere}system/config なので、設定は次の場所に書き込まれます。
      /apps/system/config
    • ただし、もともとリポジトリ内の他の場所、例えば
      /libs/foo/config/someconfig
      にあった設定を編集する場合は、更新された設定は、次のように元の場所の下に書き込まれます。
      /apps/foo/config/someconfig
  • admin によって変更された設定は、次の場所の下の *.config ファイルに保存されます。
    /crx-quickstart/launchpad/config
    • これは OSGi 設定管理者の非公開データ領域であり、システムへの入力方法にかかわらず、admin によって指定された設定の詳細がすべて保持されます。
    • これは実装の詳細であり、このディレクトリをユーザーが直接編集してはいけません。
    • しかし、バックアップや複数インストールのためにコピーを取れるように、これらの設定ファイルの場所を知っておくと便利です。
      • Apache Felix OSGi Management Console
        ../crx/org/apache/felix/webconsole/internal/servlet/OsgiManager.config
      • CRX Sling クライアントリポジトリ
        ../com/day/crx/sling/client/impl/CRXSlingClientRepository/<pid-nr>.config

警告:

次の場所にあるフォルダーやファイルは、決して編集しないでください。

    /crx-quickstart/launchpad/config

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

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