osgi 是Adobe Experience Manager (AEM)技術棧疊中的基本元素。 它可用來控制AEM的複合套件組合及其設定。
OSGi 」提供標準化的基本概念,允許使用小型、可重複使用的合作元件來建構應用程式。 這些元件可組成應用程式並進行部署「。
如此一來,就能輕鬆地管理套件組合,因為套件組合可以個別停止、安裝和啟動。 系統會自動處理相依性。 每個OSGi元件(請參閱 OSGi規格)包含在多個套件組合中。
您可以透過以下任一方式管理此類套裝的組態設定:
雖然有些細微差異(主要與 執行模式:
Web控制檯是OSGi設定的標準介面。 它提供用於編輯各種屬性的UI,其中可以從預先定義的清單中選擇可能的值。
因此,這是最簡單的方法。
使用Web主控台進行的所有設定都會立即套用並適用於目前的執行個體,無論目前的執行模式或後續對執行模式的任何變更為何。
存放庫中的content-nodes (sling:osgiConfig)
sling:OsgiConfig
節點,您可以將設定連結至特定 執行模式. 您甚至可以在同一存放庫中儲存多個執行模式的設定。無論您使用哪種方法,這些設定方法皆有:
某些重要設定的詳細資訊列於 OSGi組態設定。
此 網頁主控台 AEM中提供標準化介面來設定組合。 此 設定 tab可用來設定OSGi組合,因此是設定AEM系統引數的基礎機制。
所做的任何變更會立即套用至相關的OSGi設定,不需要重新啟動。
在Web主控台中所做的變更會儲存在存放庫中,做為 組態檔. 這些檔案可包含在內容套件中,以供後續安裝重複使用。
在Web主控台上,提及預設設定的任何說明都與Sling預設值有關。
Adobe Experience Manager有自己的預設值,因此設定的預設值可能與主控台上記錄的預設值不同。
若要使用Web主控台更新設定:
存取 設定 Web Console的索引標籤,方法是:
從上的連結開啟Web主控台 工具 — >作業 功能表。 登入主控台後,您可以使用下拉式功能表:
OSGi >
直接URL;例如:
http://localhost:4502/system/console/configMgr
隨即顯示清單。
選取您要透過下列任一方式設定的組合:
對話方塊開啟。 您可以視需要在此編輯。 例如,設定 記錄層級 至 INFO
:
更新會儲存在存放庫中,做為 組態檔. 若要在之後找到這些檔案,以便包含在內容套件中以供其他執行個體使用,例如,記下永久性身分( PID
)。
按一下「儲存」。
您的變更會立即套用至執行中系統的相關OSGi設定,不需要重新啟動。
您現在可以找到相關 組態檔. 例如,將包含在內容套件中以供在其他執行個體上使用。
使用Web主控台進行的組態變更會以組態檔的形式保留在存放庫中( .config
)下:
/apps
這些檔案可包含在內容套件中,並可在其他執行個體上重複使用。
設定檔案的格式是特定的 — 請參閱Sling Apache檔案以瞭解:
因此,建議您在Web主控台中進行實際變更,以建立和維護設定檔案。
Web主控台不會顯示存放庫中儲存變更的位置,但可以輕鬆找到變更:
建立組態檔的方法有: 在Web主控台中進行初始變更.
開啟 CRXDE Lite。
在 工具 功能表,選取 查詢…… .
若要搜尋已更新之設定的PID,請提交 型別 SQL
.
例如, Apache Felix OSGi管理主控台 具有下列的永久性身分(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)的服務。
參考 設定 欄位。 該名稱會顯示在束名稱后的方括弧中(或在 設定資訊 (朝向頁面底部)。
例如,建立節點 com.day.cq.wcm.core.impl.VersionManagerImpl.
進行設定 AEM WCM版本管理員.
是特定 執行模式 必填? 建立資料夾:
config
— 適用於所有執行模式config.author
— 適用於作者環境config.publish
— 適用於發佈環境config.<run-mode>
- 依需要是 設定 或 工廠設定 需要?
要設定的個別引數,包括必須重新建立的任何現有引數定義。
參考Web主控台中的個別引數欄位。 名稱會以方括弧顯示於每個引數。
例如,建立屬性
versionmanager.createVersionOnActivation
進行設定 啟動時建立版本.
設定是否存在於 /libs
? 若要列出執行個體中的所有設定,請使用 查詢 CRXDE Lite工具以提交下列SQL查詢:
select * from sling:OsgiConfig
若是如此,此設定可複製到 /apps/<yourProject>/
,然後在新位置中自訂。
若要將新設定實際新增至存放庫:
使用CRXDE Lite來導覽至:
/apps/<yourProject>
如果不存在,請建立 config
資料夾( sling:Folder
):
config
— 適用於所有執行模式config.<run-mode>
— 特定執行模式專用在此資料夾下,建立節點:
類型: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
針對您要設定的每個引數,在此節點上建立一個屬性:
Create Version on Activation
使用 versionmanager.createVersionOnActivation
您只能為您要設定的引數建立屬性,其他使用者仍會採用AEM設定的預設值。
儲存所有變更。
透過重新啟動服務來更新節點時,會套用變更(如同Web主控台中所做的變更)。
請勿變更中的任何專案 /libs
路徑。
設定的完整路徑必須正確,才能在啟動時讀取。
使用的優先順序如下:
下的存放庫節點 /apps/*/config...
.with type sling:OsgiConfig
或屬性檔案。
具有型別的存放庫節點 sling:OsgiConfig
在 /libs/*/config...
. (現成定義)。
任何 .config
檔案來源 <*cq-installation-dir*>/crx-quickstart/launchpad/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/
中所有規則的URL區段。
此規則的詳細程度位於PID層級。
您無法在中為相同的PID定義某些屬性 /apps/*/config.author/
以及中更具體的專案 /apps/*/config.emea.author/
相同的PID。
符合執行模式數量最多的設定對整個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中用於提交下列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管理主控台
../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