Расширение Spin
|
Этот раздел перенесён из документации Camunda 7 и в дальнейшем будет доработан с учётом особенностей OpenBPM Engine |
Конфигурация форматов данных
Доступные в Spin форматы данных не всегда могут соответствовать вашим потребностям. Иногда необходимо предоставить конфигурацию. Например, при использовании Spin для отображения Java-объектов в JSON необходимо указать формат сериализации дат. Хотя форматы данных Spin используют разумные значения по умолчанию, их также можно изменить.
Для настройки формата данных, обнаруженного Spin, можно реализовать SPI io.openbpm.spin.spi.DataFormatConfigurator. Конфигуратор указывает, какие классы он может настраивать. Spin обнаруживает конфигуратор, используя механизм загрузки служб Java (service loader), и затем предоставляет ему все форматы данных, соответствующие указанному классу (или являющиеся его подклассами). Конкретные параметры конфигурации зависят от фактического формата данных. Например, JSON-формат данных на основе Jackson может изменять используемый в формате данных ObjectMapper.
Чтобы предоставить пользовательский конфигуратор, необходимо:
-
Предоставить пользовательскую реализацию
io.openbpm.spin.spi.DataFormatConfigurator -
Добавить полное имя класса конфигуратора в файл с именем
META-INF/services/io.openbpm.spin.spi.DataFormatConfigurator -
Убедиться, что артефакт, содержащий конфигуратор, доступен из загрузчика классов Spin
Пользовательские форматы данных
Формат данных Spin — это реализация интерфейса io.openbpm.spin.spi.DataFormat. Реализация этого интерфейса может быть зарегистрирована путем реализации SPI io.openbpm.spin.spi.DataFormatProvider. Spin использует механизм загрузки служб Java платформы (service loader) для поиска реализаций провайдеров во время выполнения.
Чтобы предоставить пользовательский формат данных, необходимо:
-
Предоставить пользовательскую реализацию
io.openbpm.spin.spi.DataFormat -
Предоставить пользовательскую реализацию
io.openbpm.spin.spi.DataFormatProvider -
Добавить полное имя класса провайдера в файл с именем
META-INF/services/io.openbpm.spin.spi.DataFormatProvider -
Убедиться, что артефакт, содержащий провайдер, доступен из загрузчика классов Spin
Теперь при вызове io.openbpm.spin.DataFormats.getAvailableDataFormats() пользовательский формат данных будет возвращен вместе со встроенными форматами данных. Кроме того, io.openbpm.spin.DataFormats.getDataFormat(String dataFormatName) может использоваться для явного получения формата данных от конкретного провайдера.
Лицензия и атрибуция
Эта документация была создана на базе материала "Camunda 7 Docs" от Camunda, находится под лицензией Creative Commons Attribution-ShareAlike 3.0 Unported License .
Оригинал документации: https://docs.camunda.org