Data Format

Поддерживается только производитель

Компонент «Data Format» позволяет использовать Data Format как компонент Camel.

URI format

dataformat:name:(marshal|unmarshal)[?options]

Где name -- имя формата данных. За ним следует операция, которая может быть либо , marshalлибо unmarshal. Параметры используются для настройки используемого формата данных . (opens in a new tab)

Сведения о поддерживаемых параметрах см. в документации по формату данных. (opens in a new tab)

DataFormat Options

Configuring Options

Компоненты Camel настраиваются на двух отдельных уровнях:

  • уровень компонентов

  • уровень конечной точки

Configuring Component Options

На уровне компонентов задаются общие и общие конфигурации, которые затем наследуются конечными точками. Это самый высокий уровень конфигурации.

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

У некоторых компонентов всего несколько параметров, а у других -- много. Поскольку компоненты обычно имеют предустановленные значения по умолчанию, которые широко используются, зачастую вам может потребоваться настроить лишь несколько параметров компонента, а то и вовсе ни одного.

Вы можете настроить компоненты, используя:

  • Компонент DSL (opens in a new tab) .

  • в файле конфигурации ( application.propertiesфайлы *.yaml, и т.д.).

  • непосредственно в коде Java.

Configuring Endpoint Options

Настройка конечных точек обычно занимает больше времени, поскольку у них есть множество параметров. Эти параметры помогают вам настроить функции конечной точки. Параметры также классифицируются по тому, используется ли конечная точка как потребитель ( от ), как производитель ( от ) или и то, и другое.

Конечные точки чаще всего настраиваются непосредственно в URI конечной точки в виде параметров пути и запроса . Вы также можете использовать Endpoint DSL (opens in a new tab) и DataFormat DSL (opens in a new tab) в качестве типобезопасного способа настройки конечных точек и форматов данных в Java.

Хорошей практикой при настройке параметров является использование заполнителей свойств (opens in a new tab) .

Заполнители свойств обеспечивают несколько преимуществ:

  • Они помогают предотвратить использование жестко запрограммированных URL-адресов, номеров портов, конфиденциальной информации и других настроек.

  • Они позволяют вынести конфигурацию за пределы кода.

  • Они помогают коду стать более гибким и пригодным для повторного использования.

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

Component Options

Компонент «Формат данных» поддерживает 2 параметра, перечисленные ниже.

lazyStartProducer (producer)

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: boolean

autowiredEnabled (advanced)

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

  • По умолчанию: true

  • Тип: boolean

Endpoint Options

Конечная точка формата данных настраивается с использованием синтаксиса URI:

dataformat:name:operation

Со следующими параметрами пути и запроса :

Path Parameters (2 parameters)

name (producer)

  • Обязательное название формата данных.

  • По умолчанию:

  • Тип: String

  • Тип: operation (producer)

  • Требуемая операция для использования функции marshal или unmarshal.

    Значения перечисления:

    • marshal

    • unmarshal

  • String

Query Parameters (1 parameters)

lazyStartProducer (producer (advanced))

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • По умолчанию: false

  • Тип: boolean

Examples

Например, чтобы использовать JAXB (opens in a new tab) Data Format мы можем сделать следующее: (opens in a new tab)

  • Java

from("activemq:My.Queue"). to("dataformat:jaxb:unmarshal?contextPath=com.acme.model"). to("mqseries:Another.Queue");

  • XML

<span class="hljs-tag" style="color: navy;">&lt;<span class="hljs-name" style="color: navy;">camelContext</span> <span class="hljs-attr" style="color: teal;">id</span>=<span class="hljs-string" style="color: rgb(221,17,68);">"camel"</span> <span class="hljs-attr" style="color: teal;">xmlns</span>=<span class="hljs-string" style="color: rgb(221,17,68);">"<a href="http://camel.apache.org/schema/spring">http://camel.apache.org/schema/spring</a>"</span>&gt;</span><span style="color: rgb(79,81,174);"> </span><span class="hljs-tag" style="color: navy;">&lt;<span class="hljs-name" style="color: navy;">route</span>&gt;</span><span style="color: rgb(79,81,174);"> </span><span class="hljs-tag" style="color: navy;">&lt;<span class="hljs-name" style="color: navy;">from</span> <span class="hljs-attr" style="color: teal;">uri</span>=<span class="hljs-string" style="color: rgb(221,17,68);">"activemq:My.Queue"</span>/&gt;</span><span style="color: rgb(79,81,174);"> </span><span class="hljs-tag" style="color: navy;">&lt;<span class="hljs-name" style="color: navy;">to</span> <span class="hljs-attr" style="color: teal;">uri</span>=<span class="hljs-string" style="color: rgb(221,17,68);">"dataformat:jaxb:unmarshal?contextPath=com.acme.model"</span>/&gt;</span><span style="color: rgb(79,81,174);"> </span><span class="hljs-tag" style="color: navy;">&lt;<span class="hljs-name" style="color: navy;">to</span> <span class="hljs-attr" style="color: teal;">uri</span>=<span class="hljs-string" style="color: rgb(221,17,68);">"mqseries:Another.Queue"</span>/&gt;</span><span style="color: rgb(79,81,174);"> </span><span class="hljs-tag" style="color: navy;">&lt;/<span class="hljs-name" style="color: navy;">route</span>&gt;</span><span style="color: rgb(79,81,174);"> </span><span class="hljs-tag" style="color: navy;">&lt;/<span class="hljs-name" style="color: navy;">camelContext</span>&gt;</span>

Spring Boot Auto-Configuration

При использовании dataformat с Spring Boot обязательно используйте следующую зависимость Maven для поддержки автоматической настройки:

<dependency>
  <groupId>org.apache.camel.springboot</groupId>
  <artifactId>camel-dataformat-starter</artifactId>
  <version>x.x.x</version>
  <!-- use the same version as your Camel core version -->
</dependency>

Компонент поддерживает 3 опции, которые перечислены ниже.

camel.component.dataformat.autowired-enabled

  • Включено ли автоматическое связывание. Это используется для параметров автоматического связывания (параметр должен быть помечен как autowired) путём поиска в реестре экземпляра соответствующего типа, который затем настраивается в компоненте. Это может использоваться для автоматической настройки источников данных JDBC, фабрик JMS-подключений, клиентов AWS и т. д.

  • По умолчанию: true

  • Тип: Boolean

camel.component.dataformat.enabled

  • Включить ли автоматическую настройку компонента формата данных. По умолчанию эта функция включена.

  • По умолчанию:

  • Тип: Boolean

  • Тип: camel.component.dataformat.lazy-start-producer

  • Следует ли запускать производитель в режиме ленивого запуска (при первом сообщении). Запуск в режиме ленивого запуска позволяет разрешить запуск CamelContext и маршрутов в ситуациях, когда производитель может выйти из строя при запуске, что приведет к сбою запуска маршрута. Отложив запуск в режим ленивого запуска, можно обработать сбой запуска во время маршрутизации сообщений с помощью обработчиков ошибок маршрутизации Camel. Имейте в виду, что после обработки первого сообщения создание и запуск производителя могут занять некоторое время и увеличить общее время обработки.

  • false

  • Boolean