AEM中OSGI配置中的默认值

AEM中OSGI配置中的默认值,aem,Aem,在AEMServlet中,我设置了OSGI配置的四个默认值。第一次在Felix控制台中构建项目时,我可以看到四种osgi配置。但一旦我更新了配置,就会出现以下情况。有人能确认一下OSGI是否就是这样工作的吗 一旦我更新/删除配置(至少有一个配置),如果我再次构建,默认值将不会恢复。它保持在先前修改的状态。我认为这是正确的行为。请确认 因为这是数组类型,所以当我从Felix控制台删除所有默认配置时,如果我再次构建,那么默认值将被恢复。此行为与上述场景不同。为什么会这样 @属性(值={“gophon

在AEMServlet中,我设置了OSGI配置的四个默认值。第一次在Felix控制台中构建项目时,我可以看到四种osgi配置。但一旦我更新了配置,就会出现以下情况。有人能确认一下OSGI是否就是这样工作的吗

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

  • 因为这是数组类型,所以当我从Felix控制台删除所有默认配置时,如果我再次构建,那么默认值将被恢复。此行为与上述场景不同。为什么会这样

    @属性(值={“gophone”、“mobile”、“tablet”、“desktop”},无界= PropertyUnbounded.ARRAY,基数=50,label=“阻止的URL”, description=“阻止的URL”) 私有静态最终字符串URL\u LIST=“blockedUrls”


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

    因此,场景1是正确的行为,如果您修改OSGI配置,然后重新部署servlet,新配置将被持久化


    至于场景2,我认为情况并非如此,当您清空配置并保存它时,它将作为空配置存储在
    /apps/system/config/
    中,并且重新部署不会在osgi控制台中显示默认值。从osgi控制台删除所有配置后,检查配置文件是否已删除。

    对于场景2,当我从felix控制台删除所有条目时,它将作为空配置存储在crxde中。但当我刷新Felix控制台页面时,默认值显示在那里(警告注释和三角符号-表示未设置属性。上面的字段包含的是Meta-type服务中指定的默认值)。但配置在crxde中仍然为空。一旦我在felix控制台中保存默认配置,那个三角形图标就会消失,值就会存储在crxde中。这是预期的行为吗?