osgi 是Adobe Experience Manager (AEM)技术栈栈中的基本元素。 它用于控制AEM的复合捆绑包及其配置。
OSGi ”提供标准化的基元,允许使用小型、可重用和协作组件构建应用程序。 这些组件可以组合为一个应用程序并部署“。
这样可以轻松地管理捆绑包,因为它们可以单独停止、安装和启动。 系统会自动处理相互依赖关系。 每个OSGi组件(请参见 OSGi规范)包含在多个捆绑包中的一个。
您可以通过以下任一方式管理此类捆绑包的配置设置:
虽然存在细微差异,但可以使用任一方法,主要与 运行模式:
Web控制台是OSGi配置的标准界面。 它提供了一个用于编辑各种属性的UI,其中可以从预定义列表中选择可能的值。
因此,这是最简单的方法。
使用Web控制台所做的任何配置都将立即应用并适用于当前实例,而不管当前运行模式或运行模式的任何后续更改。
存储库中的content-nodes (sling:osgiConfig)
sling:OsgiConfig
节点,您可以将配置关联到特定 运行模式. 您甚至可以在同一存储库中保存多个运行模式的配置。无论您使用哪种方法,所有这些配置方法都可以:
以下列出了某些重要设置的详细信息 OSGi配置设置。
此 Web控制台 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...
使用类型执行.ach 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