配置OSGi

OSGi是Adobe Experience Manager (AEM)技术堆栈中的一个基本要素。 它用于控制AEM的复合束及其配置。

OSGi"提​供了标准化的基元,它允许应用程序由小的、可重用的和协作的组件构建。 这些组件可以组成一个应用程序并进行部署”。

这样,可以轻松管理捆绑套件,因为可以单独停止、安装和启动捆绑套件。 互依关系将自动处理。 每个OSGi组件(请参 阅OSGi规范)都包含在各种包中的一个中。

您可以通过以下任一方式管理此类包的配置设置:

虽然存在细微差异,但可以使用两种方法,主要与“运行 模式”相关:

  • Adobe CQ网络控制台

    • Web控制台是OSGi配置的标准界面。 它提供了用于编辑各种属性的UI,在该UI中,可以从预定义的列表中选择可能的值。

      因此,这是最简单的方法。

    • 使用Web控制台进行的任何配置都将立即应用并适用于当前实例,而不管当前运行模式或后续对运行模式所做的任何更改。

  • 配置文件

    • 包含在Web控制台中定义的设置。
    • 可以包含在内容包中,以用于其他实例。
  • 存储库中的content-nodes(sling:osgiConfig)

    • 这需要使用CRXDE Lite进行手动配置。
    • 根据节点的命名约 sling:OsgiConfig 定,您可以将配置绑定到特定 运行模式。 您甚至可以在同一存储库中保存多个运行模式的配置。
    • 将立即应用任何适当的配置(取决于运行模式)。

无论您使用哪种方法,所有这些配置方法:

  • 确保复制或复制存储库内容会重新创建相同的配置。
  • 允许您检查FileVault或Subversion的配置; 安全更新或更新。
  • 可以保存在包中,以便在设置其他实例时使用。
  • 允许您使用脚本执行配置转出以传播配置详细信息。
注意

某些重要设置的详细信息列在“OSGi配 置设置”下。

OSGi配置与Web控制台

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. 此时将打开一个对话框。您可以在此根据需要进行编辑; 例如,将“日志 级别 ”设置为 INFO:

    chlimage_1-140

    注意

    更新将作为配置文件保 存在存储库中。 要在之后找到这些标识,(例如,要包含在内容包中以用于另一个实例),您应记下永久标识( 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配置,并为它们形成用户界面。 要更新配置数据,请更新节点属性。

如果修改存储库中的配置数据,则更改会立即应用于相关OSGi配置,就像是使用Web控制台进行了更改一样,并会进行相应的验证和一致性检查。 此操作也适用于将配置从复制到的 /libs/ 操作 /apps/

由于同一配置参数可以位于多个位置,因此系统:

  • 搜索所有类型的节点 sling:OsgiConfig
  • 过滤器根据服务名称
  • 过滤器根据运行模式

将新配置添加到存储库

您需要了解的内容

要向存储库添加新配置,您需要了解以下内容:

  1. 务的永久 标识(PID)。

    引用Web 控制台 中的“配置”字段。 该名称在捆绑名称后面的括号中显示(或 在页面底部 的“配置信息”中显示)。

    例如,创建一个节点 com.day.cq.wcm.core.impl.VersionManagerImpl. 以配置 AEM WCM Version Manager

    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>/新位置,然后在新位置进行自定义。

在存储库中创建配置

要将新配置实际添加到存储库,请执行以下操作:

  1. 使用CRXDE Lite导航到:

    /apps/<yourProject>

  2. 如果文件夹尚未存在,请 config 创建文 sling:Folder件夹():

    • config -适用于所有运行模式
    • config.<run-mode> -特定于特定运行模式
  3. 在此文件夹下,创建一个节点:

    • 类型: 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

  4. 对于要配置的每个参数,在此节点上创建一个属性:

    • 名称: Web控制台中显示的参数名称; 该名称显示在字段描述末尾的括号中。 例如,供 Create Version on Activation 使用 versionmanager.createVersionOnActivation
    • 类型: 酌情。
    • 值: 。

    您只需为要配置的参数创建属性,其他参数仍将采用AEM设置的默认值。

  5. 保存所有更改。

    通过重新启动服务更新节点后,更改会立即应用(与在Web控制台中所做的更改一样)。

注意

您不得更改路径中的任 /libs 何内容。

注意

配置的完整路径必须正确,才能在启动时读取。

配置详细信息

启动时的分辨率顺序

使用以下优先顺序:

  1. 存储库节 /apps/*/config...点位于。(类型 sling:OsgiConfig 或属性文件)下。

  2. 类型为以下的存储库 sling:OsgiConfig 节点 /libs/*/config...。 (现成定义)。

  3. 任何 .config 文件 <*cq-installation-dir*>/crx-quickstart/launchpad/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级别。
不能为同一PID定义某些属性, /apps/*/config.author/ 而为同一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 中的查询功能提交以下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

在此页面上