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

Apache AEM OSGi配置具有两个或多个字段的多字段属性,apache,osgi,aem,sling,Apache,Osgi,Aem,Sling,目前,我们可以使用@Property(unbounded=propertyunbunded.ARRAY)在OSGi配置中创建具有多个值的属性 是否可以在OSGi配置中创建与AEM创作对话框的多字段功能行为相同的属性?单击“添加”按钮,属性字段及其所有子字段将增加。因此,我们可以添加多个键/值对条目 [ { "path":"/content/demo/page1", "date":"20-12-2018", "language":"engli

目前,我们可以使用
@Property(unbounded=propertyunbunded.ARRAY)
在OSGi配置中创建具有多个值的属性

是否可以在OSGi配置中创建与AEM创作对话框的多字段功能行为相同的属性?单击“添加”按钮,属性字段及其所有子字段将增加。因此,我们可以添加多个键/值对条目

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

要使用OSGi配置配置相同的密钥/值对,并根据需要获取。

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

<path>,<date>,<language>
或者,您甚至可以将整个JSON作为字符串值输入,然后在需要时解析它。但很快进入就变得难看了

您可以将上述内容用于任何可序列化的数据结构,但它越复杂,在单个输入字段中输入就越困难


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

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

<path>,<date>,<language>
或者,您甚至可以将整个JSON作为字符串值输入,然后在需要时解析它。但很快进入就变得难看了

您可以将上述内容用于任何可序列化的数据结构,但它越复杂,在单个输入字段中输入就越困难


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

我认为CSV解决方案是最通用的。复杂的配置可以通过内容包轻松部署并自动生成。通过一些努力,Maven插件可以实现解析CSV文件、创建配置文件,所有内容都可以在CI链中更新和部署,对所有相关人员都是透明的。我认为CSV解决方案是最通用的。复杂的配置可以通过内容包轻松部署并自动生成。通过一些努力,Maven插件可以实现解析CSV文件、创建配置文件,所有内容都可以在CI链中更新和部署,对所有相关人员都是透明的。