【问题标题】:Default values in OSGI configuration in AEMAEM 中 OSGI 配置中的默认值
【发布时间】:2017-12-22 06:17:03
【问题描述】:

在 AEM servlet 中,我设置了 OSGI 配置的四个默认值。第一次构建项目时,在 Felix 控制台中,我可以看到四个 osgi 配置。但是一旦我更新配置,就会发生以下情况。有人可以确认这是否是 OSGI 的工作方式。

  1. 一旦我更新/删除配置(至少有一个配置),如果我再次构建,默认值不会恢复。它保持在以前的修改状态。我认为是正确的行为。请确认。

  2. 由于这是数组类型,当我从 Felix 控制台中删除所有默认配置时,如果我再次构建,则默认值将恢复。此行为与上述情况不同。为什么会这样?

    @Property(value={"gophone", "mobile", "tablet", "desktop"}, unbounded = PropertyUnbounded.ARRAY, cardinality=50, label = "被屏蔽的 urls", 描述=“阻止的网址”) 私有静态最终字符串 URLS_LIST = "blockedUrls";

【问题讨论】:

    标签: aem


    【解决方案1】:

    当您从控制台更改 OSGI 配置时,新配置将存储在 /apps/system/config/<your config PID>

    所以,场景 1 是正确的行为,如果你修改 OSGI 配置,然后重新部署你的 servlet,新的配置会被持久化。

    至于方案2,我认为不是这样,当你清空配置并保存它时,它作为一个空配置存储在/apps/system/config/<your config PID>中,并且重新部署不会在osgi控制台中显示默认值。从 osgi 控制台删除所有配置后,检查配置文件是否被删除。

    【讨论】:

    • 对于场景 2,当我从 felix 控制台中删除所有条目时,它在 crxde 中存储为空配置。但是当我刷新 Felix 控制台页面时,默认值显示在那里(警告说明和三角形符号 - 未设置属性。上面的字段包含是元类型服务中指定的默认值)。但是crxde中的config仍然是空的。一旦我在 felix 控制台中保存默认配置,该三角形图标就会消失,并且值会存储在 crxde.xml 中。这是预期的行为吗?
    猜你喜欢
    • 2019-07-25
    • 1970-01-01
    • 2016-05-18
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 2020-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多