【问题标题】:AEM OSGi Configuration Multified Property with two or more fields具有两个或多个字段的 AEM OSGi 配置多重属性
【发布时间】:2019-05-12 13:55:49
【问题描述】:

目前,我们可以使用@Property(unbounded=PropertyUnbounded.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 Configuration 配置并根据需要获取的相同键/值对。

【问题讨论】:

    标签: apache osgi aem sling


    【解决方案1】:

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

    <path>,<date>,<language>
    

    您的第一个条目将变为:

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

    或者,您甚至可以将整个 JSON 作为字符串值输入,然后在需要时对其进行解析。但是很快进入就会变得丑陋。

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

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

    【讨论】:

    • 我认为 CSV 解决方案是最通用的。复杂的配置可以通过内容包轻松部署并自动生成。通过一些努力,可以实现一个 Maven 插件来解析 CSV 文件、创建配置文件,并且所有内容都可以更新和部署在 CI 链中,对所有相关人员都是透明的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2019-02-07
    • 2022-01-01
    相关资源
    最近更新 更多