設定OSGi configuring-osgi

OSGi是Adobe Experience Manager (AEM)技術棧疊中的基本元素。 它可用來控制AEM的複合套件組合及其設定。

OSGi「」提供標準化的原語,允許使用小型、可重複使用且協同合作的元件來建構應用程式。 這些元件可組成應用程式並部署

如此一來,就能輕鬆地管理套件組合,因為套件組合可以個別停止、安裝和啟動。 系統會自動處理相依性。 每個OSGi元件(請參閱OSGi規格)都包含在其中一個不同套件組合中。

您可以透過以下任一方式管理此類套裝的組態設定:

雖然有細微的差異(主要與執行模式有關),但可以使用其中一種方法:

  • Adobe CQ Web主控台

    • Web控制檯是OSGi設定的標準介面。 它提供用於編輯各種屬性的UI,其中可以從預先定義的清單中選擇可能的值。

      因此,這是最簡單的方法。

    • 使用Web主控台進行的所有設定都會立即套用並適用於目前的執行個體,無論目前的執行模式或後續對執行模式的任何變更為何。

  • 組態檔

    • 包含在Web主控台中定義的設定。
    • 可以包含在內容套件中,以供在其他執行個體上使用。
  • 存放庫中的content-nodes (sling:osgiConfig)

    • 需要使用CRXDE Lite進行手動設定。
    • 由於sling:OsgiConfig節點的命名慣例,您可以將組態連結至特定的執行模式。 您甚至可以在同一存放庫中儲存多個執行模式的設定。
    • 任何適當的設定都會立即套用(取決於執行模式)。

無論您使用哪種方法,這些設定方法皆有:

  • 請確定複製或復寫存放庫內容會重新建立相同的設定。
  • 可讓您將組態簽出至FileVault或Subversion;以取得安全性或進一步的更新。
  • 可儲存在套件中,以便在設定其他執行個體時使用。
  • 可讓您使用指令碼執行設定轉出,以傳播設定詳細資訊。
NOTE
某些重要設定的詳細資料列在OSGi組態設定下。

使用Web主控台進行OSGi設定 osgi-configuration-with-the-web-console

AEM中的Web主控台提供標準化介面來設定組合。 Configuration ​索引標籤是用來設定OSGi組合,因此是設定AEM系統引數的基礎機制。

所做的任何變更會立即套用至相關的OSGi設定,不需要重新啟動。

NOTE
在Web主控台中所做的變更會以組態檔的形式儲存在存放庫中。 這些檔案可包含在內容套件中,以供後續安裝重複使用。
NOTE
在Web主控台上,提及預設設定的任何說明都與Sling預設值有關。
Adobe Experience Manager有自己的預設值,因此設定的預設值可能與主控台上記錄的預設值不同。

若要使用Web主控台更新設定:

  1. 存取Web Console的​ 組態 ​索引標籤,方法如下:

    • 正在從​ 工具>作業 ​功能表上的連結開啟Web主控台。 登入主控台後,您可以使用下拉式功能表:

      OSGi >

    • 直接URL;例如:

      http://localhost:4502/system/console/configMgr

    隨即顯示清單。

  2. 選取您要透過下列任一方式設定的組合:

    • 按一下該套件組合的​ 編輯 ​圖示
    • 按一下組合的​ 名稱
  3. 對話方塊開啟。 您可以視需要在此編輯。 例如,將​ 記錄層級 ​設定為INFO

    chlimage_1-140

    note note
    NOTE
    更新會以組態檔的形式儲存在存放庫中。 若要在之後找到這些檔案,以包含在內容套件中,以供其他執行個體使用,例如,記下永久性身分識別( PID)。
  4. 按一下「儲存」。

    您的變更會立即套用至執行中系統的相關OSGi設定,不需要重新啟動。

    note note
    NOTE
    您現在可以找到相關的組態檔。 例如,將包含在內容套件中以供在其他執行個體上使用。

使用組態檔的OSGi組態 osgi-configuration-with-configuration-files

使用Web主控台進行的組態變更會作為組態檔( .config)保留在儲存庫中,位於:

/apps

這些檔案可包含在內容套件中,並可在其他執行個體上重複使用。

NOTE
設定檔案的格式是特定的 — 請參閱Sling Apache檔案以瞭解:
因此,建議您在Web主控台中進行實際變更,以建立和維護設定檔案。

Web主控台不會顯示存放庫中儲存變更的位置,但可以輕鬆找到變更:

  1. 透過在Web主控台中進行初始變更來建立組態檔。

  2. 開啟 CRXDE Lite。

  3. 在​ 工具 ​功能表中,選取​ 查詢……

  4. 若要搜尋您已更新的組態PID,請提交​ 型別 SQL的查詢。

    例如,Apache Felix OSGi管理主控台 ​的永久性身分(PID)為:

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

    因此,SQL查詢可能是:

    code language-shell
    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

    note caution
    CAUTION
    您可以開啟此檔案來檢視您的變更,但為了避免輸入錯誤,建議使用主控台進行實際的變更。
  6. 您現在可以建立包含此節點的內容套件,並視需要在其他執行個體上使用。

存放庫中的OSGi設定 osgi-configuration-in-the-repository

除了使用Web主控台,您也可以在存放庫中定義設定詳細資訊。 如此可讓您輕鬆設定不同的執行模式。

這些設定是透過在存放庫中建立sling:OsgiConfig節點以供系統參考來進行。 這些節點會反映OSGi設定,並在其中形成使用者介面。 若要更新設定資料,請更新節點屬性。

如果您修改存放庫中的設定資料,變更會立即套用至相關的OSGi設定。 就好像變更是使用Web主控台所進行,並透過適當的驗證和一致性檢查。 此工作流程也適用於將設定從/libs/複製到/apps/的動作。

由於相同的組態引數位於數個位置,因此系統:

  • 搜尋型別sling:OsgiConfig的所有節點
  • 根據服務名稱篩選
  • 根據執行模式篩選

新增設定至存放庫 adding-a-new-configuration-to-the-repository

您需要瞭解的事項 what-you-need-to-know

若要將設定新增到存放庫,您必須知道以下內容:

  1. 服務的​ 持續性身分 (PID)。

    參考Web主控台中的​ 組態 ​欄位。 此名稱會顯示在組合名稱后的方括弧中(或顯示在頁面底部的​ 組態資訊 ​中)。

    例如,建立節點com.day.cq.wcm.core.impl.VersionManagerImpl.以設定​ AEM WCM版本管理員

    chlimage_1-141

  2. 是否需要特定的執行模式? 建立資料夾:

    • config — 適用於所有執行模式
    • config.author — 適用於作者環境
    • config.publish — 用於發佈環境
    • config.<run-mode> — 視情況而定
  3. 需要​ 組態 ​或​ 工廠組態 ​嗎?

  4. 要設定的個別引數,包括必須重新建立的任何現有引數定義。

    參考Web主控台中的個別引數欄位。 名稱會以方括弧顯示於每個引數。

    例如,建立屬性
    versionmanager.createVersionOnActivation設定​ 啟動時建立版本

    chlimage_1-142

  5. /libs中是否有組態? 若要列出執行個體中的所有組態,請使用CRXDE Lite中的​ 查詢 ​工具來提交下列SQL查詢:

    select * from sling:OsgiConfig

    若是如此,此設定可以複製到 /apps/<yourProject>/,然後在新的位置自訂。

在存放庫中建立組態 creating-the-configuration-in-the-repository

若要將新設定實際新增至存放庫:

  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

    note note
    NOTE
    進行Factory組態時,將-<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主控台中所做的變更)。

CAUTION
請勿變更/libs路徑中的任何專案。
CAUTION
設定的完整路徑必須正確,才能在啟動時讀取。

設定詳細資料 configuration-details

啟動時的解決順序 resolution-order-at-startup

使用的優先順序如下:

  1. /apps/*/config...下的存放庫節點。具有型別sling:OsgiConfig或屬性檔案。

  2. /libs/*/config...下型別為sling:OsgiConfig的存放庫節點。 (現成定義)。

  3. 來自<*cq-installation-dir*>/crx-quickstart/launchpad/config/...的任何.config檔案。 在本機檔案系統上。

/libs中的一般組態可以被/apps中的專案特定組態遮罩。

執行階段的解決順序 resolution-order-at-runtime

系統執行時進行的設定變更會觸發使用修改後的設定重新載入。

然後套用下列優先順序:

  1. 在Web主控台中修改組態會立即生效,因為它在執行階段具有優先權。
  2. /apps中修改組態會立即生效。
  3. /libs中修改組態會立即生效,除非它被/apps中的組態遮罩。

多重執行模式的解析度 resolution-of-multiple-run-modes

對於執行模式特定的配置,可以組合多個執行模式。 例如,您可以以下列樣式建立組態資料夾:

/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有效。

標準設定 standard-configurations

下列清單顯示存放庫中(在標準安裝中)提供的一小部分設定:

  • 作者 — AEM WCM篩選器:

    libs/wcm/core/config.author/com.day.cq.wcm.core.WCMRequestFilter

  • Publish - AEM WCM篩選器:

    libs/wcm/core/config.publish/com.day.cq.wcm.core.WCMRequestFilter

  • Publish - AEM WCM頁面統計資料:

    libs/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatistics

NOTE
由於這些設定位於/libs,因此不可直接編輯它們,但在自訂之前必須先複製到您的應用程式區域( /apps)。

若要列出執行個體中的所有設定節點,請使用CRXDE Lite中的​ 查詢 ​功能來提交下列SQL查詢:

select * from sling:OsgiConfig

設定持續性 configuration-persistence

  • 如果您透過Web主控台變更設定,則通常會將該設定寫入存放庫:

    /apps/{somewhere}

    • 根據預設,{somewhere}system/config,因此組態會寫入

      /apps/system/config

    • 不過,如果您要編輯的組態最初來自存放庫中的其他位置,例如:

      /libs/foo/config/someconfig

      然後,更新的設定會寫入原始位置下;例如:

      /apps/foo/config/someconfig

  • admin變更的設定儲存在*.config個檔案中:

    code language-none
       /crx-quickstart/launchpad/config
    
    • 此區域是OSGi設定管理員的私人資料,並保留admin所指定的所有設定詳細資料,無論他們如何進入系統。

    • 此區域是實作詳細資料,您絕不可直接編輯此目錄。

    • 不過,瞭解這些組態檔的位置會很有用,這樣就可以擷取復本進行備份、進行多重安裝,或同時進行兩者:

      • Apache Felix OSGi管理主控台

        ../crx/org/apache/felix/webconsole/internal/servlet/OsgiManager.config

      • CRX Sling使用者端存放庫

        ../com/day/crx/sling/client/impl/CRXSlingClientRepository/<pid-nr>.config

CAUTION
切勿編輯下列資料夾或檔案:
/crx-quickstart/launchpad/config
recommendation-more-help
19ffd973-7af2-44d0-84b5-d547b0dffee2