Многофункциональное свойство конфигурации AEM OSGi с двумя или более полями - PullRequest
0 голосов
/ 11 декабря 2018

В настоящее время мы можем использовать @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 и извлечена при необходимости.

1 Ответ

0 голосов
/ 11 декабря 2018

Консоль felix позволяет добавлять свойства с несколькими значениями.однако они, как правило, представляют собой одно значение поля.Это означает, что вы не можете создать сложную структуру данных в своем вопросе.Тем не менее, я видел реализации, которые позволили вам ввести заказанный CSV.Например, у вас может быть многозначное свойство String OSGI, где каждое свойство имеет формат:

<path>,<date>,<language>

, тогда ваша первая запись становится:

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

Или вы даже можете ввестиВесь JSON как строковое значение, а затем проанализируйте его, когда вам это нужно.Но вводить его очень быстро становится уродливым.

Вы можете использовать вышеприведенное с любой сериализуемой структурой данных, но чем сложнее это становится, тем сложнее вводить в одном поле ввода.

Другой вариант - создать страницу с компонентом, который имеет многоуровневое пространство, и просто указать в конфигурации OSGI путь к этой странице / компоненту, а затем в службе OSGI найти этот путь и извлечь конфигурацию..

...