OSG 是Adobe Experience Manager(AEM)技術堆疊中的基本元素。它用於控制AEM的組合束及其配置。
OSGi "提供標準化的基元,可讓應用程式由小型、可重複使用和協作的元件來建立。 這些元件可以組成到應用程式並部署"。
這樣可以輕鬆管理捆綁包,因為它們可以單獨停止、安裝和啟動。 互依關係會自動處理。 每個OSGi元件(請參見OSGi規範)都包含在各種束之一中。
您可以透過以下任一方式管理此類組合的組態設定:
sling:OsgiConfig
)兩種方法都可使用,但主要與運行模式有關:
Web控制台是OSGi配置的標準介面。 它提供編輯各種屬性的UI,可從預先定義的清單中選擇可能的值。
因此,它是最簡單的使用方法。
使用Web控制台進行的任何配置都會立即應用並適用於當前實例,而不考慮當前運行模式或對運行模式的任何後續更改。
content-nodes(sling:osgiConfig) in the repository
sling:OsgiConfig
節點的命名慣例,您可以將配置關聯到特定的運行模式。 您甚至可以在同一儲存庫中保存多個運行模式的配置。無論您使用哪種方法,所有這些配置方法:
某些重要設定的詳細資訊列在OSGi配置設定下。
AEM中的Web console提供標準化介面來設定叢集。 Configuration標籤用於配置OSGi捆綁包,因此是配置AEM系統參數的基礎機制。
所做的任何更改都會立即應用於相關的OSGi配置,無需重新啟動。
在Web控制台中所做的更改將保存在儲存庫中為配置檔案。 這些內容可包含在內容套件中,以便在進一步安裝中重複使用。
在Web主控台上,任何提及預設設定的說明都與Sling預設值相關。
Adobe Experience Manager有自己的預設值,因此預設值設定可能與主控台上記載的預設值不同。
要使用Web控制台更新配置,請執行以下操作:
通過以下任一方法訪問Web控制台的Configuration頁籤:
從工具->操作菜單上的連結開啟Web控制台。 登入主控台後,您可使用下列功能表:
OSGi >
直接網址;例如:
http://localhost:4502/system/console/configMgr
將會顯示清單。
選擇要通過以下任一方法配置的包:
對話方塊將會開啟。 您可在此視需要編輯;例如,將Log Level設為INFO
:
更新將保存在儲存庫中為配置檔案。 若要在之後找到這些識別碼(例如,要包含在內容套件中以便用於另一個實例),您應記下永久性識別碼(PID
)。
按一下「儲存」。
您的更改會立即應用於正在運行的系統的相關OSGi配置,無需重新啟動。
您現在可以找到相關的配置檔案;例如,要包含在內容套件中,以便用於另一個例項。
使用Web控制台所做的配置更改將作為配置檔案(.config
)保存在儲存庫中,位於:
/apps
這些內容可包含在內容封裝中,並可在其他例項上重複使用。
設定檔的格式非常特定——如需完整詳細資訊,請參閱Sling Apache檔案。
因此,建議在Web控制台中進行實際更改,以建立和維護配置檔案。
Web Console不顯示已保存更改的儲存庫中的位置,但可以輕鬆找到這些更改:
開啟CRXDE Lite。
在工具菜單中,選擇查詢……。
提交Type 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')
將顯示配置檔案節點。
對於上述範例:
/apps/system/config/org.apache.felix.webconsole.internal.servlet.OsgiManager.config
您可以開啟此檔案以檢視您所做的變更,但為避免輸入錯誤,建議您使用主控台進行實際變更。
您現在可以建立包含此節點的內容套件,並視需要在其他執行個體上使用。
除了使用Web控制台外,您還可以在儲存庫中定義配置詳細資訊。 這可讓您輕鬆設定不同的執行模式。
這些配置是通過在儲存庫中建立sling:OsgiConfig
節點來進行的,以供系統參考。 這些節點將鏡像OSGi配置,並對其形成用戶介面。 要更新配置資料,請更新節點屬性。
如果修改儲存庫中的配置資料,則更改將立即應用到相關的OSGi配置,就像更改是使用Web控制台進行的一樣,並執行相應的驗證和一致性檢查。 這也適用於將配置從/libs/
複製到/apps/
的操作。
由於相同的配置參數可以位於多個位置,因此系統:
sling:OsgiConfig
的所有節點另請閱讀如何為特定實例定義基於儲存庫的配置。
要向儲存庫添加新配置,您需要瞭解以下內容:
服務的持久身份(PID)。
參考Web控制台中的Configurations欄位。 名稱在包名稱后面的括弧中顯示(或在頁面底部的配置資訊中)。
例如,建立節點com.day.cq.wcm.core.impl.VersionManagerImpl.
以設定AEM WCM Version Manager。
是否需要特定的運行模式。 建立資料夾:
config
-所有運行模式config.author
-適用於作者環境config.publish
-適用於發佈環境config.<run-mode>
-適當是否需要配置或工廠配置。
要配置的單個參數;包括需要重新建立的任何現有參數定義。
參考Web控制台中的個別參數欄位。 每個參數的名稱以方括弧顯示。
例如,建立屬性
versionmanager.createVersionOnActivation
在啟動 時設定Create Version。
/libs
中是否已存在配置? 要列出實例中的所有配置,請使用CRXDE Lite中的Query工具提交以下SQL查詢:
select * from sling:OsgiConfig
如果是,此配置可以複製到 /apps/<yourProject>/
,然後在新位置中自定義。
要將新配置實際添加到儲存庫,請執行以下操作:
使用CRXDE Lite導覽至:
/apps/<yourProject>
如果尚未存在,請建立config
資料夾(sling:Folder
):
config
-適用於所有運行模式config.<run-mode>
-特定於特定運行模式在此資料夾下建立一個節點:
類型: sling:OsgiConfig
名稱:持久性身份(PID);
例如,AEM WCM Version Manager使用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
對於要配置的每個參數,請在此節點上建立一個屬性:
Create Version on Activation
,請使用versionmanager.createVersionOnActivation
您只需要為要設定的參數建立屬性,其他人仍會採用AEM設定的預設值。
儲存所有變更。
當節點更新時,會立即重新啟動服務(如Web控制台中所做的變更)。
您不得變更/libs
路徑中的任何項目。
配置的完整路徑必須正確,才能在啟動時讀取。
使用下列優先順序:
/apps/*/config...
.either type sling:OsgiConfig
或property files下的儲存庫節點。
在/libs/*/config...
下鍵入sling:OsgiConfig
的儲存庫節點。 (現成可用的定義)。
來自<*cq-installation-dir*>/crx-quickstart/launchpad/config/...
的任何.config
檔案。 在本機檔案系統上。
這表示/libs
中的一般配置可由/apps
中的項目特定配置遮罩。
在系統運行時所做的配置更改會觸發重新載入並使用修改的配置。
接著,應按下列優先順序:
/apps
中修改配置將立即生效。/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定義某些屬性,也不能為相同PID在/apps/*/config.emea.author/
中定義更多特定屬性。
對於整個PID,具有最大匹配運行模式的配置是有效的。
以下清單顯示了儲存庫中可用配置的一小部分(在標準安裝中):
作者- AEM WCM篩選:
libs/wcm/core/config.author/com.day.cq.wcm.core.WCMRequestFilter
發佈- AEM WCM篩選器:
libs/wcm/core/config.publish/com.day.cq.wcm.core.WCMRequestFilter
發佈- AEM WCM頁面統計資料:
libs/wcm/core/config.publish/com.day.cq.wcm.core.stats.PageViewStatistics
由於這些配置位於/libs
中,因此不能直接編輯它們,而是在自定義之前複製到您的應用程式區域(/apps
)。
要列出實例中的所有配置節點,請使用CRXDE Lite中的Query功能提交以下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 Client Repository
../com/day/crx/sling/client/impl/CRXSlingClientRepository/<pid-nr>.config
您必須never編輯以下資料夾或檔案:
/crx-quickstart/launchpad/config