Marshal
Общее описание
Трансформационные блоки Marshal и Unmarshal используются для преобразования сообщений из одного формата в другой с помощью различных методов. Одним из таких методов является форматирование данных, в котором используются маршалинг и демаршалинг.
-
Marshal – преобразует тело сообщения (например, объект Java) в двоичный или текстовый формат, готовый к передаче по сети.
-
Unmarshal – преобразует данные в двоичном или текстовом формате (например, полученные по сети) в объект Java или в другое представление в соответствии с используемым форматом данных.
Блок Marshal может использоваться в качестве:
- блока-обработчика.
Блок-обработчик предназначен для управления, проверки и преобразования данных, которые используются в контексте потока.
Настройка блока
В данном разделе описаны параметры блока Marshal, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Format | format | Обязательный параметр Формат преобразуемых данных Возможные значения:
| asn1 | Список |
asn1
В данном подразделе описаны параметры для формата asn1, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Unmarshal Type | unmarshalType | Класс, который применяется при демаршалинге. | Строка | |
| Using Iterator | usingIterator | Если файл asn1 содержит более одной записи, установка значения True для этого параметра позволяет работать с блоком Split для разделения данных с помощью итератора в потоковом режиме. | False | Логическое значение |
avro
В данном подразделе описаны параметры для формата avro, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Library | library | Определяет, какую библиотеку Avro использовать. Возможные значения:
| Список | |
| Instance Class Name | instanceClassName | Имя класса, который будет использоваться для маршалинга и демаршалинга. | Строка | |
| Use Default Object Mapper | useDefaultObjectMapper | Определяет, нужно ли искать и использовать стандартный Jackson ObjectMapper из реестра. | False | Логическое значение |
| Json View | jsonView | При маршалинге POJO в JSON может потребоваться исключить определённые поля из вывода. С помощью Jackson для этого можно использовать JSON‑представления (views). Данный параметр указывает на класс, содержащий аннотации JsonView. | Строка | |
| Use List | useList | Определяет, следует ли при демаршалинге формировать List из Map либо из POJO. | False | Логическое значение |
| Allow Unmarshall Type | allowUnmarshalType | Если включено, Jackson может попытаться использовать заголовок CamelJacksonUnmarshalType при демаршалинге. Следует включать только при необходимости. | False | Логическое значение |
| Content Type Header | contentTypeHeader | Определяет, должен ли формат данных устанавливать заголовок Content-Type с типом из формата данных (например, application/xml для XML или application/json для JSON). | False | Логическое значение |
| Object Mapper | objectMapper | Позволяет найти и использовать существующий ObjectMapper с указанным ID при работе с Jackson. | Строка | |
| Auto Discover Object Mapper | autoDiscoverObjectMapper | Если установлено значение True, Jackson будет искать ObjectMapper в реестре для использования. | False | Логическое значение |
| Enable Features | enableFeatures | Набор функций, которые нужно включить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую. | Строка | |
| Disable Features | disableFeatures | Набор функций, которые нужно отключить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую. | Строка | |
| Allow Jms Type | allowJmsType | Для пользователей JMS: разрешает использовать заголовок JMSType из спецификации JMS, чтобы указать полное имя класса (FQN), в который нужно выполнить демаршалинг. | False | Логическое значение |
| Collection Type | collectionType | Ссылка на пользовательский тип коллекции, который нужно найти в реестре для использования. Редко используемый параметр, позволяет применять типы коллекций, отличные от стандартных на основе java.util.Collection. | Строка | |
| Module Class Names | moduleClassNames | Позволяет использовать пользовательские модули Jackson (com.fasterxml.jackson.databind.Module), указав их полные имена классов (FQN) в виде строки. Несколько классов можно перечислить через запятую. | Строка | |
| Module Refs | moduleRefs | Позволяет использовать пользовательские модули Jackson, на которые есть ссылки в реестре системы. Несколько модулей можно перечислить через запятую. | Строка | |
| Timezone | timezone | Если задано, Jackson будет использовать указанный часовой пояс при маршалинге/демаршалинге. | Строка | |
| Auto Discover Schema Resolver | autoDiscoverSchemaResolver | Если не отключён, будет выполнен поиск SchemaResolver в реестре. | False | Логическое значение |
| Schema Resolver | schemaResolver | Опциональный резолвер схемы, используемый для поиска схем данных, передаваемых в процессе работы. | Строка |
barcode
В данном подразделе описаны параметры для формата barcode, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Barcode Format | barcodeFormat | Формат штрихкода (например, QR-Code). | Строка | |
| Image Type | imageType | Тип изображения штрихкода, (например, png). | Строка | |
| Width | width | Ширина штрихкода. | Целое число | |
| Height | height | Высота штрихкода. | Целое число |
beanio
В данном подразделе описаны параметры для формата beanio, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Mapping | mapping | Обязательный параметр Файл маппинга BeanIO. По умолчанию загружается из classpath. Можно указать префикс, чтобы обозначить, откуда следует загрузить файл маппинга. Возможные значения:
| Строка | |
| Stream Name | streamName | Обязательный параметр Имя потока, который будет использоваться. | Строка | |
| Ignore Unidentified Records | ignoreUnidentifiedRecords | Определяет, нужно ли игнорировать неидентифицированные записи. | False | Логическое значение |
| Ignore Unexpected Records | ignoreUnexpectedRecords | Определяет, нужно ли игнорировать неожиданные записи. | False | Логическое значение |
| Ignore Invalid Records | ignoreInvalidRecords | Определяет, нужно ли игнорировать недопустимые (некорректные) записи. | False | Логическое значение |
| Encoding | encoding | Кодировка (набор символов), которая будет использоваться. | Строка | |
| Bean Reader Error Handler Type | beanReaderErrorHandlerType | Позволяет использовать пользовательский обработчик ошибок (org.apache.camel.dataformat.beanio.BeanIOErrorHandler) при парсинге. Нужно указать полное имя класса обработчика. Обратите внимание: при использовании пользовательского обработчика ошибок параметры ignoreUnidentifiedRecords, ignoreUnexpectedRecords и ignoreInvalidRecords могут не применяться. | Строка | |
| Unmarshal Single Object | unmarshalSingleObject | Определяет, будет ли демаршалинг выполняться как для списка объектов (режим по умолчанию) или только для одного объекта. Второй вариант предназначен для особых сценариев, когда BeanIO сопоставляет сообщение с одним POJO‑объектом. | False | Логическое значение |
base64
В данном подразделе описаны параметры для формата base64, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Line Length | lineLength | Позволяет задать максимальную длину строки для закодированных данных. | Целое число | |
| Line Separator | lineSeparator | Позволяет задать разделители строк. По умолчанию используются символы новой строки. | Строка | |
| Url Safe | urlSafe | При кодировании вместо символов + и / используются - и _ соответственно. Параметр применяется только к операциям кодирования; при декодировании оба режима обрабатываются автоматически. | False | Логическое значение |
bindy
В данном подразделе описаны параметры для формата bindy, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Type | type | Обязательный параметр Тип формата данных для Bindy: определяет, будет ли использоваться CSV, фиксированная ширина полей или формат «ключ‑значение». Возможные значения:
| Csv | Список |
| Class Type | classType | Имя класса модели, который будет использоваться для маппинга данных. | Строка | |
| Allow Empty Stream | allowEmptyStream | Разрешает пустые потоки в процессе unmarshal. Если значение true, при передаче тела сообщения без записей исключение не формируется. | False | Логическое значение |
json
В данном подразделе описаны параметры для формата json, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Library | library | Обязательный параметр Определяет, какую библиотеку json использовать. Возможные значения:
| Список | |
| Object Mapper | objectMapper | Позволяет найти и использовать существующий ObjectMapper с указанным ID при работе с Jackson. | Строка | |
| Use Default Object Mapper | useDefaultObjectMapper | Определяет, нужно ли искать и использовать стандартный Jackson ObjectMapper из реестра. | False | Логическое значение |
| Auto Discover Object Mapper | autoDiscoverObjectMapper | Если установлено значение True, Jackson будет искать ObjectMapper в реестре для использования. | False | Логическое значение |
| Naming Strategy | namingStrategy | Если задано, Jackson будет использовать указанную стратегию именования свойств. Возможные значения:
| Список | |
| Date Format Pattern | dateFormatPattern | Задаёт формат даты при маршалинге или демаршалинге полей типа Date в JSON (используется с Gson). | Строка | |
| Auto Discover Schema Resolver | autoDiscoverSchemaResolver | Если не отключён, будет выполнен поиск SchemaResolver в реестре. | False | Логическое значение |
| Schema Resolver | schemaResolver | Опциональный резолвер схемы, используемый для поиска схем данных, передаваемых в процессе работы. | Строка | |
| Module Refs | moduleRefs | Позволяет использовать пользовательские модули Jackson, на которые есть ссылки в реестре системы. Несколько модулей можно перечислить через запятую. | Строка | |
| Timezone | timezone | Если задано, Jackson будет использовать указанный часовой пояс при маршалинге/демаршалинге. | Строка | |
| Pretty Print | prettyPrint | Включает форматированный (красивый) вывод данных. | False | Логическое значение |
| Unmarshal Type | unmarshalType | Класс, который применяется при демаршалинге. | Строка | |
| Use List | useList | Определяет, следует ли при демаршалинге формировать List из Map либо из POJO. | False | Логическое значение |
| Allow Unmarshall Type | allowUnmarshalType | Если включено, Jackson может попытаться использовать заголовок CamelJacksonUnmarshalType при демаршалинге. Следует включать только при необходимости. | False | Логическое значение |
| Content Type Header | contentTypeHeader | Определяет, должен ли формат данных устанавливать заголовок Content-Type с типом из формата данных (например, application/xml для XML или application/json для JSON). | False | Логическое значение |
| Json View | jsonView | При маршалинге POJO в JSON может потребоваться исключить определённые поля из вывода. С помощью Jackson для этого можно использовать JSON‑представления (views). Данный параметр указывает на класс, содержащий аннотации JsonView. | Строка | |
| Include | include | Позволяет задать правило обработки полей со значением null при маршалинге POJO в JSON. Например, значение NON_NULL исключает поля с null из итогового JSON. | Строка | |
| Allow Jms Type | allowJmsType | Для пользователей JMS: разрешает использовать заголовок JMSType из спецификации JMS, чтобы указать полное имя класса (FQN), в который нужно выполнить демаршалинг. | False | Логическое значение |
| Collection Type | collectionType | Ссылка на пользовательский тип коллекции, который нужно найти в реестре для использования. Редко используемый параметр, позволяет применять типы коллекций, отличные от стандартных на основе java.util.Collection. | Строка | |
| Module Class Names | moduleClassNames | Позволяет использовать пользовательские модули Jackson (com.fasterxml.jackson.databind.Module), указав их полные имена классов (FQN) в виде строки. Несколько классов можно перечислить через запятую. | Строка | |
| Module Refs | moduleRefs | Позволяет использовать пользовательские модули Jackson, на которые есть ссылки в реестре системы. Несколько модулей можно перечислить через запятую. | Строка | |
| Enable Features | enableFeatures | Набор функций, которые нужно включить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую. | Строка | |
| Disable Features | disableFeatures | Набор функций, которые нужно отключить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую. | Строка |
jacksonXml
В данном подразделе описаны параметры для формата jacksonXml, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Pretty Print | prettyPrint | Включает форматированный (красивый) вывод данных. | False | Логическое значение |
| Include | include | Позволяет задать правило обработки полей со значением null при маршалинге POJO в JSON. Например, значение NON_NULL исключает поля с null из итогового JSON. | Строка | |
| Enable Features | enableFeatures | Набор функций, которые нужно включить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую. | Строка | |
| Disable Features | disableFeatures | Набор функций, которые нужно отключить в ObjectMapper (Jackson). Значения должны соответствовать перечислениям из SerializationFeature, DeserializationFeature или MapperFeature. Несколько функций можно перечислить через запятую. | Строка | |
| Xml Mapper | xmlMapper | Позволяет найти и использовать существующий XmlMapper с указанным ID. | Строка | |
| Allow Jms Type | allowJmsType | Для пользователей JMS: разрешает использовать заголовок JMSType из спецификации JMS, чтобы указать полное имя класса (FQN), в который нужно выполнить демаршалинг. | False | Логическое значение |
| Collection Type | collectionType | Ссылка на пользовательский тип коллекции, который нужно найти в реестре для использования. Редко используемый параметр, позволяет применять типы коллекций, отличные от стандартных на основе java.util.Collection. | Строка | |
| Timezone | timezone | Если задано, Jackson будет использовать указанный часовой пояс при маршалинге/демаршалинге. | Строка | |
| Enable Jaxb Annotation Module | enableJaxbAnnotationModule | Определяет, нужно ли включать модуль аннотаций JAXB при работе с Jackson. При включении Jackson сможет использовать аннотации JAXB. | False | Логическое значение |
| Module Class Names | moduleClassNames | Позволяет использовать пользовательские модули Jackson (com.fasterxml.jackson.databind.Module), указав их полные имена классов (FQN) в виде строки. Несколько классов можно перечислить через запятую. | Строка | |
| Module Refs | moduleRefs | Позволяет использовать пользовательские модули Jackson, на которые есть ссылки в реестре системы. Несколько модулей можно перечислить через запятую. | Строка |
jsonApi
В данном подразделе описаны параметры для формата jsonApi, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Data Format Types | dataFormatTypes | Классы, которые учитываются при маршалинге. Несколько классов можно перечислить через запятую. | Строка | |
| Main Format Type | mainFormatType | Класс, который учитывается при демаршалинге. | Строка |
soap
В данном подразделе описаны параметры для формата soap, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Context Path | contextPath | Обязательный параметр Имя пакета, в котором расположены JAXB‑классы для маппинга данных. | Строка | |
| Encoding | encoding | Кодировка, используемая для обработки данных; позволяет переопределить значение по умолчанию. | Строка | |
| Version | version | Версия протокола SOAP. Возможные значения префиксов:
| 1.1 | Списка |
| Schema | schema | Путь к схеме для валидации данных. Возможные значения:
,. | 1.1 | Строка |
zipFile
В данном подразделе описаны параметры для формата zipFile, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Using Iterator | usingIterator | Если в ZIP‑архиве более одной записи, при значении true позволяет использовать Splitter EIP для разделения данных в потоковом режиме с применением итератора. | False | Логическое значение |
| Allow Empty Directory | allowEmptyDirectory | Если в ZIP‑архиве более одной записи, при значении true итератор будет доступен даже для пустой директории внутри архива. | False | Логическое значение |
| Preserve Path Elements | preservePathElements | При значении true сохраняет элементы пути из имени файла внутри ZIP‑архива (т. е. структуру вложенных директорий). | False | Логическое значение |
| Max Decompressed Size | maxDecompressedSize | Максимальный размер распакованного ZIP‑архива (в байтах). При превышении этого значения будет выброшено исключение IOException. Значение -1 отключает ограничение. | 1073741824 (1 ГБ) | Целое чесло |
csv
В данном подразделе описаны параметры для формата csv, которые необходимо заполнить при настройке блока.
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Delimiter | delimiter | Устанавливает разделитель, который будет использоваться. | Строка | |
| Header Disabled | headerDisabled | Используется для отключения заголовков. | False | Логическое значение |
| Allow Missing Column Names | allowMissingColumnNames | Определяет, разрешено ли отсутствие имён столбцов. | False | Логическое значение |
| Ignore Empty Lines | ignoreEmptyLines | Определяет, нужно ли игнорировать пустые строки. | False | Логическое значение |
| Ignore Surrounding Spaces | ignoreSurroundingSpaces | Определяет, нужно ли игнорировать пробелы в начале и в конце значений. | False | Логическое значение |
| Quote Disabled | quoteDisabled | Используется для отключения кавычек. | False | Логическое значение |
| Quote | quote | Устанавливает символ кавычки, который будет использоваться. | Строка | |
| Record Separator Disabled | recordSeparatorDisabled | Используется для отключения разделителя записей. | False | Логическое значение |
| Record Separator | recordSeparator | Задаёт разделитель записей. | Строка | |
| Skip Header Record | skipHeaderRecord | Определяет, нужно ли пропускать строку с заголовком. | False | Логическое значение |
| Quote Mode | quoteMode | Устанавливает режим использования кавычек. Возможные значения:
| Список | |
| Ignore Header Case | ignoreHeaderCase | Определяет, нужно ли игнорировать регистр при обращении к именам заголовков. | False | Логическое значение |
| Trim | trim | Определяет, нужно ли удалять пробелы в начале и в конце значений. | False | Логическое значение |
| Trailing Delimiter | trailingDelimiter | Определяет, нужно ли добавлять завершающий разделитель. | False | Логическое значение |
| Use Maps | useMaps | Определяет, должны ли при демаршалинге для значений строк формироваться карты (HashMap) вместо списков. Для работы требуется наличие заголовков (заданных или собранных автоматически). | False | Логическое значение |
| Use Ordered Map | useOrderedMap | Определяет, должны ли при демаршалинге для значений строк формироваться упорядоченные карты (LinkedHashMap) вместо списков. Для работы требуется наличие заголовков (заданных или собранных автоматически). | False | Логическое значение |
| Format Name | formatName | Имя формата, который будет использоваться. По умолчанию - CSVFormat.DEFAULT. Возможные значения:
| DEFAULT | Строка |
| Comment Marker Disabled | commentMarkerDisabled | Отключает маркер комментариев для базового формата. | False | Логическое значение |
| Comment Marker | commentMarker | Задаёт маркер комментариев для базового формата. | Строка | |
| Escape Disabled | escapeDisabled | Используется для отключения применения экранирующего символа. | False | Логическое значение |
| Escape | escape | Задаёт экранирующий символ, который будет использоваться. | Строка | |
| Null String Disabled | nullStringDisabled | Используется для отключения обработки строк со значением null. | False | Логическое значение |
| Null String | nullString | Задаёт строку, которая будет интерпретироваться как значение null. | Строка | |
| Lazy Load | lazyLoad | Определяет, должен ли демаршалинг формировать итератор, считывающий строки «на лету», или все строки должны быть считаны единовременно. | False | Логическое значение |
| Capture Header Record | captureHeaderRecord | Определяет, нужно ли при демаршалинге захватить запись с заголовком и сохранить её в заголовке сообщения. | False | Логическое значение |
Расширенные параметры
| Название в UI | Название | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Disabled | disabled | Определяет будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |