具有两个或多个字段的AEM OSGi配置多属性

时间:2018-12-11 14:39:17

标签: apache osgi aem cq5 sling

当前,我们可以使用@Property(unbounded=PropertyUnbounded.ARRAY)在OSGi Configuration中使用多值创建属性。

是否可以在OSGi Configuration中创建与AEM创作对话框的多字段功能相同的属性?单击添加按钮后,带有其所有子字段的属性字段将增加。这样我们就可以添加键/值对的多个条目。

[
    {
        "path":"/content/demo/page1",
        "date":"20-12-2018",
        "language":"english"
    },
        {
        "path":"/content/demo/page2",
        "date":"23-10-2019",
        "language":"french"
    }
]

要使用OSGi配置进行配置并根据需要提取的相同键/值对。

1 个答案:

答案 0 :(得分:3)

felix控制台允许您添加多值属性。但是,它们通常是单个字段值。意思是,您不能在问题中创建复杂的数据结构。但是,我看到了允许您输入有序CSV的实现。例如,您可能有一个多值String OSGI属性,其中每个属性的格式为:

<path>,<date>,<language>

您的第一个条目将变为:

/content/demo/page1,20-12-2018,english

或者,您甚至可以将整个JSON作为字符串值输入,然后在需要时进行解析。但这很难迅速进入。

  

您可以将以上内容与任何可序列化的数据结构一起使用,但是它变得越复杂,就越难在单个输入字段中输入。

另一种选择是使用包含多字段的组件创建页面,然后将OSGI配置指向该页面/组件的路径,然后在OSGI服务中查找该路径并提取配置。