Кастомные теги

Кастомные теги представляют собой мощные инструменты в интеграционной платформе Entaxy ION, обеспечивая гибкость в настройке и создании интеграционных процессов. С их помощью можно выбирать и указывать коннекторы для связи с внешними системами, выполнять специальные операции перед обработкой данных, задавать точные пункты назначения для отправки данных, добавлять метаданные для отслеживания и управления процессами и многое другое.

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

Tag Размещение Краткое описание

<m:connector-selector />

Out-Flow → Output connector selector

connector-selector
выбор коннектора на основе свойств и шаблонов

<m:set-destination />

In-Flow → pre-route
Connector-In → pre-route
(Custom-connector-In → custom-route/pre-route)

Default-route → route (размещается до тега <m:standard-router>)

set-destination
указание имени целевой системы

<m:entaxy-trace />

во всех точках кастомизации

entaxy-trace
используется для отслеживания маршрута прохождения данных

<m:respond />

In-Flow → pre-route
Connector-In → pre-route

respond
начать отправку ответа сейчас и продолжить обработку данных

<m:to-connection />

In-Flow → pre-route
Connector-In → pre-route

to-connection
используется для указания пути, по которому данные будут переданы на конкретную коннекцию

<m:xslt />

во всех точках кастомизации

xslt
используется для xslt-преобразования пакета при помощи xslt-ресурса

<m:xslt-xalan />

во всех точках кастомизации

xslt-xalan
используется для xslt-преобразования пакета при помощи xslt-ресурса с использованием процессора Xalan

<m:default-destination />

In-Flow → pre-route
Connector-In → pre-route
Default-route → route (размещается до тега <m:standard-router>)

default-destination
установка значений заголовков для маршрутизации или обработки данных по умолчанию

<m:next-route />

In-Flow → pre-route
Connector-In → pre-route

next-route
обход дефолтного маршрута, с указанием заголовка следующей точки маршрута

<m:standard-router>

default-route

standard-router
используется для маршрутизации данных на основе заданных правил или условий

<m:prefer-connector />

In-Flow → pre-route
Connector-In → pre-route

prefer-connector
параметр выбора выходного коннектора

<m:connector-preferred-as-mandatory>

Out-Flow → Output connector selector

connector-preferred-as-mandatory
определение поведения системы при выборе коннектора

<m:dynamic-system />

во всех точках кастомизации

dynamic-system
динамический вызов системы в маршруте

<m:atlasmap />

во всех точках кастомизации

atlasmap
для указания ресурса конфигурации, определяющего структуру данных и обеспечивающего их преобразование

<m:read-secret />

во всех точках кастомизации

read-secret
используется для чтения секрета из хранилища

<m:set-log-key />

во всех точках кастомизации

set-log-key
настраивает ключевые параметры логирования

<m:log />

во всех точках кастомизации

log
записывает сообщение в лог с заданными параметрами

<blueprint:reference />

во всех точках кастомизации, внутри определения маршрута.

рекомендуется размещать его в начале маршрута.

blueprint:reference
используется для создания ссылок на сервисы других компонентов или бандлов в OSGi контейнере.

<blueprint:bean />

во всех точках кастомизации

blueprint:bean
определяет и настраивает экземпляры Java-бинов

<m:call-route />

во всех точках кастомизации

call-route
вызов маршрута

<m:map-data />

во всех точках кастомизации

map-data
маппинг данных

<m:use-connection />

во всех точках кастомизации

use-connection
использование указанной коннекции в маршруте

<m:ignite-cache />

<m:cache-write />

<m:cache-read />

во всех точках кастомизации

ignite-cache
используется для работы с кэшированными данными в Ignite

cache-read
используется для чтения из кэша

cache-write
используется для записи в кэш

<m:set-content />

<m:freemarker />

<m:content />

<m:args />

<m:arg />

<m:description />

во всех точках кастомизации

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

freemarker
используется для шаблонной обработки данных с помощью FreeMarker

description
используется для добавления текстового описания

content
используется для определения содержимого, которое будет вставлено в целевой элемент

args
используется как контейнер для аргументов используемых в шаблоне.

arg
определяет отдельный аргумент

<m:filter />

во всех точках кастомизации

filter
проверяет условие и выполняет дополнительные действия только для сообщений, прошедших фильтрацию.

<m:threshold-filter />

<m:filter-key />

<m:test-value />

во всех точках кастомизации

threshold-filter
фильтр порогового значения, который сравнивает значение из кэша с заданным значением и обновляет кэш при выполнении условия

filter-key
ключ по которому будет выбрано значение в кэше

test-value
установка значения для сравнения

connector-selector

Описание: Тег определяет механизм выбора коннектора на основе заданных свойств и шаблонов.

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:connector-selector>
		<m:properties-to-use>
			<m:property>connector.type</m:property>
			<m:property>connector.protocol</m:property>
			<m:property>connector.classifier</m:property>
		</m:properties-to-use>
		<m:patterns>
			<m:pattern>*:*:=</m:pattern>
		</m:patterns>
		<m:options>
			<m:fail-back-to-legacy-router/>
			<m:use-the-only-connector>false</m:use-the-only-connector>
			<m:use-default-connector/>
			<m:connector-preferred-as-mandatory>false</m:connector-preferred-as-mandatory>
			<m:allow-all-stars-pattern>false</m:allow-all-stars-pattern>
			<m:treat-no-property-as-any>false</m:treat-no-property-as-any>
		</m:options>
	</m:connector-selector>

</entaxy:object-route>

Внутренние теги:

<properties-to-use> - содержит список свойств, которые будут использованы при выборе коннектора:

  • <property>connector.type</property> - тип коннектора

  • <property>connector.protocol</property> - протокол коннектора

  • <property>connector.classifier</property> - классификатор коннектора

<patterns> - содержит список шаблонов, которые будут сопоставлены с переданными параметрами для выбора соответствующего коннектора:

  • <pattern>=:=:=</pattern> - соответствует точным значениям всех трех свойств (connector.type, connector.protocol и connector.classifier).

  • <pattern>=:=:*</pattern> - соответствует точным значениям первых двух свойств (connector.type и connector.protocol), а значение connector.classifier может быть любым.

  • <pattern>=:*:*</pattern> - соответствует точному значению connector.type и любым значениям connector.protocol и connector.classifier.

  • <pattern>*:=:=</pattern> - соответствует любому значению connector.type и точным значениям connector.protocol и connector.classifier.

  • <pattern>*:=:*</pattern> - соответствует любому значению connector.type и connector.classifier и точному значению connector.protocol.

<options> - элемент содержит дополнительные настройки для выбора коннектора:

  • <fail-back-to-legacy-router /> - если не удалось выбрать коннектор с использованием <connector-selector> система вернется к использованию legacy маршрутизации.

  • <use-the-only-connector /> - если в системе существует только один коннектор, то он будет автоматически использован. Значение по умолчанию - true.

  • <use-default-connector /> - использовать коннектор по умолчанию.

  • <connector-preferred-as-mandatory /> - определяет поведение системы при выборе коннектора. Значение по умолчанию - false.

  • <allow-all-stars-pattern>false</allow-all-stars-pattern> - запретить использование шаблона со звездочкой (*) для всех свойств. Значение по умолчанию - false.

  • <treat-no-property-as-any>false</treat-no-property-as-any> - если в коннекторе нет property, то рассматривать ли это как любое значение property или нет. Значение по умолчанию - false.

set-destination

Описание: Тег служит для указания имени целевой системы.

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:set-destination>system2</m:set-destination>

</entaxy:object-route>

entaxy-trace

Описание: Тег используется для добавления трассировочной информации о прохождении данных через различные этапы или компоненты системы, используя заголовок ENTAXY_TRACE. Он позволяет маркировать данные для последующего отслеживания и анализа, помогая понять, как информация перемещается через кастомизируемые точки маршрута.

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:entaxy-trace>
		<simple>any text</simple>
	</m:entaxy-trace>

</entaxy:object-route>

respond

Описание: Используется для управления потоком данных и маршрутизацией в процессе интеграции.

В точке кастомизации pre-route входного коннектора / в точке кастомизации pre-route входного потока профиля.
Вот как работает каждый вариант:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:respond now="true" continue="false" />

</entaxy:object-route>
  • <m:respond now="true" continue="true" continueAsync="true" />: Процесс интеграции немедленно начинает отправку ответа отправителю (now="true"), и после этого продолжает обработку данных (continue="true"), но асинхронно (continueAsync="true").

  • <m:respond now="true" continue="false" />: Процесс интеграции немедленно начинает отправку ответа отправителю (now="true"), и после этого не продолжает обработку данных (continue="false").

  • <m:respond now="false" continue="true" />: Отправка ответа происходит при достижении дефолтного маршрута (now="false"), и после этого продолжается обработка данных (continue="true").

  • <m:respond now="false" continue="false" />: Отправка ответа происходит по умолчанию при достижении дефолтного маршрута (now="false"), и после этого не продолжается обработка данных (continue="false").

to-connection

Описание: Используется для указания пути, по которому данные будут переданы на конкретную коннекцию.

<m:to-connection>
    <!-- Здесь могут быть любые опции и настройки компонента подключения (коннекции) -->
</m:to-connection>
<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
    xmlns="http://camel.apache.org/schema/blueprint"
    xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
    xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

    <!-- Установка заголовка JMSPriority с фиксированным значением 6 -->
    <setHeader name="JMSPriority">
        <simple>6</simple>
    </setHeader>

    <!-- Настройка подключения к брокеру сообщений с указанным путем и динамическими настройками -->
    <m:to-connection name="entaxy-broker" path="queue:test16" dynamic="true">
        <transacted>true</transacted>
        <!-- Установка приоритета сообщения, берется из заголовка JMSPriority -->
        <priority>${headers.JMSPriority}</priority>
    </m:to-connection>

</entaxy:object-route>

xslt

Описание: Тег используется для xslt-преобразования пакета при помощи xslt-ресурса

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:xslt resource="entaxy-resource://schemas/example.xsl"/>
	<setHeader name="CamelFileName">
		<constant>b.xml</constant>
	</setHeader>

</entaxy:object-route>
Атрибут Описание Тип Значение по умолчанию

contentCache (producer)

Кэширование содержимого ресурса (файла стилей) при его загрузке. Если установлено значение false, Camel будет перезагружать файл трансформаций для каждого сообщения. Это полезно для разработки. Кэшированный файл стилей можно принудительно перезагрузить во время работы через JMX, используя операцию clearCachedStylesheet.

boolean

true

deleteOutputFile (producer)

Определяет, следует ли удалять выходной файл после обработки Exchange. Например, если выходной файл является временным, его можно удалить после использования.

boolean

false

failOnNullBody (producer)

Указывает, следует ли выбрасывать исключение, если тело входящего сообщения null.

boolean

true

lazyStartProducer (producer)

Определяет, следует ли продюсеру запускаться лениво (при обработке первого сообщения). Это позволяет избегать ошибок при старте, если продюсер не может быть запущен сразу. Однако, при обработке первого сообщения запуск может занять время, что увеличивает общее время обработки.

boolean

false

output (producer)

Определяет тип выходных данных. Возможные значения: string, bytes, DOM, file. Параметры string, bytes, DOM хранятся в памяти, а file — записывается напрямую в файл. Для параметра file необходимо указать имя файла в заголовке Exchange.XSLT_FILE_NAME.

string

string

transformerCacheSize (producer)

Количество объектов javax.xml.transform.Transformer, которые кэшируются для повторного использования, чтобы избежать вызова Template.newTransformer().

int

0

basicPropertyBinding (advanced)

Определяет, следует ли использовать базовую привязку свойств (Camel 2.x) или новую привязку с дополнительными возможностями.

boolean

false

entityResolver (advanced)

Использует кастомный org.xml.sax.EntityResolver с javax.xml.transform.sax.SAXSource.

EntityResolver

-

errorListener (advanced)

Настроить использование кастомного javax.xml.transform.ErrorListener. Если используется этот параметр, стандартный слушатель ошибок не будет работать, и информация об ошибках не будет сохраняться в Exchange.

ErrorListener

-

resultHandlerFactory (advanced)

Использует кастомный org.apache.camel.builder .xml.ResultHandlerFactory, который может работать с кастомными типами ResultHandler.

ResultHandlerFactory

-

synchronous (advanced)

Определяет, должна ли использоваться синхронная обработка, или Camel может использовать асинхронную обработку, если она поддерживается.

boolean

false

transformerFactory (advanced)

По умолчанию используется entaxyXslUrlResolver, который резолвит файл трансформации через реестр ресурсов.

TransformerFactory

-

transformerFactoryClass (advanced)

Использует кастомный XSLT трансформер, указанный как полное имя класса.

String

-

transformerFactory ConfigurationStrategy (advanced)

Стратегия конфигурации для применения к новосозданным экземплярам TransformerFactory.

TransformerFactory ConfigurationStrategy

-

uriResolver (advanced)

Использует кастомный javax.xml.transform.URIResolver.

URIResolver

-

saxonConfiguration (advanced)

Использование кастомной конфигурации Saxon.

SaxonConfiguration

-

xslt-xalan

Описание: Тег используется для xslt-преобразования пакета при помощи xslt-ресурса

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:xslt-xalan resource="entaxy-resource://schemas/example.xsl"/>
	<setHeader name="CamelFileName">
		<constant>b.xml</constant>
	</setHeader>

</entaxy:object-route>
Атрибут Описание Тип Значение по умолчанию

resource

Указывает ресурс, содержащий XSLT шаблон.

String

-

basicPropertyBinding (advanced)

Определяет, следует ли использовать базовую привязку свойств (Camel 2.x) или новую привязку с дополнительными возможностями.

boolean

false

synchronous (advanced)

Определяет, должна ли использоваться синхронная обработка, или Camel может использовать асинхронную обработку, если она поддерживается.

boolean

false

contentCache (producer)

Кэширование содержимого ресурса (XSLT шаблона). Если установлено значение false, Camel будет перезагружать файл трансформаций для каждого сообщения. Это полезно для разработки.

boolean

true

deleteOutputFile (producer)

Определяет, следует ли удалять выходной файл после обработки Exchange. Например, если выходной файл является временным, его можно удалить после использования.

boolean

false

output (producer)

Определяет тип выходных данных. Возможные значения: string, bytes, DOM, file. Параметры string, bytes, DOM хранятся в памяти, а file — записывается напрямую в файл. Для параметра file необходимо указать имя файла в заголовке Exchange.XSLT_FILE_NAME.

string

string

errorListener (advanced)

Настроить использование кастомного javax.xml.transform.ErrorListener. Если используется этот параметр, стандартный слушатель ошибок не будет работать, и информация об ошибках не будет сохраняться в Exchange.

ErrorListener

-

lazyStartProducer (producer)

Определяет, следует ли продюсеру запускаться лениво (при обработке первого сообщения). Это позволяет избежать ошибок при старте, если продюсер не может быть запущен сразу.

boolean

false

entityResolver (advanced)

Использует кастомный org.xml.sax.EntityResolver с javax.xml.transform.sax.SAXSource.

EntityResolver

-

transformerFactory ConfigurationStrategy (advanced)

Стратегия конфигурации для применения к новосозданным экземплярам TransformerFactory.

TransformerFactory ConfigurationStrategy

-

failOnNullBody (producer)

Указывает, следует ли выбрасывать исключение, если тело входящего сообщения null.

boolean

true

transformerCacheSize (producer)

Количество объектов javax.xml.transform.Transformer, которые кэшируются для повторного использования, чтобы избежать вызова Template.newTransformer().

int

0

resultHandlerFactory (advanced)

Использует кастомный org.apache.camel.builder .xml.ResultHandlerFactory, который может работать с кастомными типами ResultHandler.

ResultHandlerFactory

-

transformerFactory (advanced)

Использует кастомный XSLT трансформер.

TransformerFactory

-

transformerFactoryClass (advanced)

Использует кастомный XSLT трансформер, указанный как полное имя класса.

String

-

uriResolver (advanced)

Использует кастомный javax.xml.transform.URIResolver.

URIResolver

-

default-destination

Описание: Установка значений заголовков для маршрутизации или обработки данных по умолчанию

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<m:default-destination>system-b:system</m:default-destination>

</entaxy:object-route>

next-route

Описание: Обход дефолтного маршрута, с указанием заголовка следующей точки маршрута

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<m:next-route local="false" async="false">lama</m:next-route>

</entaxy:object-route>

где:
lama - идентификатор точки входа (endpoint) в маршруте.
local - переменная, определяющая, является ли следующий маршрут (next-route) локальным (true) или удаленным (false).
async - переменная, определяющая, является ли следующий маршрут (next-route) асинхронным (true) или синхронным (false).

standard-router

Описание: Тег используется для маршрутизации данных на основе заданных правил или условий

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:standard-router />

</entaxy:object-route>

prefer-connector

Описание: Тег используется для выбора выходного коннектора в соответствии с указанными параметрами: протокол, классификатор, тип.

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:prefer-connector>
		<m:protocol>file</m:protocol>
		<m:classifier>main</m:classifier>
		<m:type>file</m:type>
	</m:prefer-connector>
	<m:respond now="true" continue="false" />

</entaxy:object-route>

Добавлены параметры в компонент system для возможности вызвать компонент вне entaxy генератора:

<to uri="system:system-crm?connectorProtocol=file&amp;connectorClassifier=main&amp;connectorType=file"/>

connector-preferred-as-mandatory

Описание: Тег используется для определения поведения системы при выборе коннектора. Когда флаг установлен в true, это указывает системе, что подходящий коннектор должен рассматриваться как обязательный. Если подходящий коннектор не найден, будет сгенерирована ошибка, указывающая на отсутствие коннектора. По умолчанию установлен в значение false.

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route xmlns="http://camel.apache.org/schema/blueprint" xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:entaxy="http://www.entaxy.ru/schemas/1.0" xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

    <m:connector-selector>
        <m:properties-to-use>
            <m:property>connector.type</m:property>
            <m:property>connector.protocol</m:property>
            <m:property>connector.classifier</m:property>
        </m:properties-to-use>
        <m:patterns>
            <m:pattern>*:*:=</m:pattern>
        </m:patterns>
        <m:options>
            <m:fail-back-to-legacy-router/>
            <m:use-the-only-connector>false</m:use-the-only-connector>
            <m:use-default-connector/>
            <m:connector-preferred-as-mandatory>false</m:connector-preferred-as-mandatory>
            <m:allow-all-stars-pattern>false</m:allow-all-stars-pattern>
            <m:treat-no-property-as-any>false</m:treat-no-property-as-any>
        </m:options>
    </m:connector-selector>

</entaxy:object-route>

dynamic-system

Описание: Тег используется для динамического вызова системы в маршруте. Внутри задаются параметры, определяющие целевую систему и выбор коннектора: название системы, протокол коннектора, классификатор коннектора и тип коннектора.

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route xmlns="http://camel.apache.org/schema/blueprint" xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:entaxy="http://www.entaxy.ru/schemas/1.0" xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

    <m:dynamic-system>
        <m:systemName>
            <simple>1COrder</simple>
        </m:systemName>
        <m:connectorProtocol>
            <constant>file</constant>
        </m:connectorProtocol>
        <m:connectorClassifier>
            <constant>main</constant>
        </m:connectorClassifier>
        <m:connectorType>
            <constant>file</constant>
        </m:connectorType>
    </m:dynamic-system>

</entaxy:object-route>

atlasmap

Описание: Тег используется в маршрутах интеграции для указания файла конфигурации (.adm), который определяет структуру данных и обеспечивает их преобразование в процессе интеграции.

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:atlasmap resource="entaxy-resource://schemas/atlasmap-mapping.adm"></m:atlasmap>

</entaxy:object-route>
Атрибут Описание Тип Значение по умолчанию

resource

Обязательный атрибут. Определяет ресурс, содержащий файл конфигурации *.adm.

String

-

loaderCache (producer)

Включает/выключает кэш ресурсов загрузчика atlas map, который включен по умолчанию.

boolean

true

encoding (producer)

Кодировка для содержимого ресурса.

String

-

sourceMapName (producer)

Имя свойства Exchange для карты исходных данных, которая хранит java.util.Map<String, Message>, где ключ — это Document ID AtlasMap. AtlasMap использует тела сообщений как исходные документы, а также заголовки сообщений как исходные свойства, где область применения соответствует Document ID.

String

-

targetMapMode (producer)

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

Возможные значения:

MAP: Сохраняет их в java.util.Map, и эта карта устанавливается как свойство Exchange, если указано значение targetMapName. В противном случае — в тело сообщения.

MESSAGE_HEADER: Сохраняет их в заголовках сообщения.

EXCHANGE_PROPERTY: Сохраняет их в свойствах Exchange.

TargetMapMode

MAP

targetMapName (producer)

Имя свойства Exchange для карты целевых данных, которая хранит java.util.Map<String, Object>, где ключ — это Document ID AtlasMap. AtlasMap заполняет несколько целевых документов в эту карту.

String

-

propertiesFile (advanced)

URI файла свойств, который используется для инициализации AtlasContextFactory.

String

-

read-secret

Описание: Тег используется для чтения секрета из хранилища.

vault="default": указывает, какое хранилище использовать (в данном случае, хранилище по умолчанию).
alias="folder1": указывает название alias секрета в хранилище.
property=" _ SECRET _ ": Определяет имя свойства, в котором будет сохранено значение извлеченного секрета. В данном случае, значение секрета будет сохранено в свойстве с именем " _ SECRET _ ", и это свойство может быть использовано далее в рамках маршрута.

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:read-secret vault="default" alias="folder1" property="_SECRET_" />

</entaxy:object-route>

set-log-key

Описание: Используется для настройки и определения ключевых параметров логирования.

  • service: имя сервиса.

  • operation: операция или действие, которое выполняется в рамках данного логирования.

  • objectId: идентификатор объекта.

  • parameter: дополнительная информация или данные, которые могут быть важны для текущей операции.

  • sender и receiver: участники данного обмена сообщениями.

  • custom: дополнительные настраиваемые поля с уникальными именами и значениями.

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route xmlns="http://camel.apache.org/schema/blueprint"
                     xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
                     xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
                     xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

    <m:set-log-key>
        <m:service>
            <constant>Order Processing</constant>
        </m:service>
        <m:operation>
            <constant>Create Order</constant>
        </m:operation>
        <m:objectId>
            <constant>123456</constant>
        </m:objectId>
        <m:parameter>
            <constant>Important Parameter</constant>
        </m:parameter>
        <m:sender>
            <constant>Sales Department</constant>
        </m:sender>
        <m:receiver>
            <constant>Warehouse</constant>
        </m:receiver>
        <m:custom name="Additional Parameter">
            <constant>Parameter Value</constant>
        </m:custom>
    </m:set-log-key>

</entaxy:object-route>

log

Описание: Записывает сообщение в лог с заданными параметрами. Он использует параметры установлены ранее (включая те, которые были заданы с помощью <set-log-key>), и добавляет сообщение в лог с указанным уровнем логирования, именем логгера и другими атрибутами.

  • message: обязательный атрибут, определяющий текст для логирования с возможностью использования выражений для динамических значений.

  • loggingLevel: опциональный атрибут, задающий важность сообщения (по умолчанию INFO).

  • logName: опциональный атрибут, указывающий имя логгера для сообщения.

  • marker: опциональный атрибут для указания маркера slf4j, связанного с сообщением.

  • loggerRef: опциональный атрибут для указания пользовательского логгера из реестра.

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route xmlns="http://camel.apache.org/schema/blueprint"
                     xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
                     xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
                     xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<m:set-log-key>
	<m:service>
		<constant>Order Processing</constant>
	</m:service>
	<m:operation>
		<constant>Create Order</constant>
	</m:operation>
	<m:objectId>
		<constant>123456</constant>
	</m:objectId>
	<m:parameter>
		<constant>Important Parameter</constant>
	</m:parameter>
	<m:sender>
		<constant>Sales Department</constant>
	</m:sender>
	<m:receiver>
		<constant>Warehouse</constant>
	</m:receiver>
	<m:custom name="Additional Parameter">
		<constant>Parameter Value</constant>
	</m:custom>
</m:set-log-key>
<m:log message="Processing order for service ${headers.service}, operation ${headers.operation}, objectId ${headers.objectId}" loggingLevel="INFO" logName="OrderProcessingLogger"/>

</entaxy:object-route>

blueprint:reference

Описание: Используется для создания ссылок на сервисы, предоставляемые другими компонентами или бандлами внутри OSGi контейнера.

Атрибут Описание Тип

id

Уникальный идентификатор ссылки на OSGi сервис.

String

activation

Определяет, будет ли ссылка инициализирована лениво (lazy) или жадно (eager). По умолчанию установлено значение eager (жадно).

String (lazy или eager)

depends-on

Явные зависимости. Список идентификаторов компонентов, которые должны быть активированы до установки данной ссылки. Значения разделяются пробелами.

List<String>

availability

Определяет, является ли ссылка на сервис обязательной (mandatory) или опциональной (optional). Значение по умолчанию для атрибута availability определяется атрибутом default-availability в элементе blueprint. Если атрибут default-availability не указан, то ссылка считается обязательной.

String (mandatory или optional)

interface

Имя интерфейса класса. Необязательный параметр.

String

component-name

Указывает на другой менеджер в другом контейнере Blueprint, зарегистрированный в реестре сервисов. Если установлен, имя компонента должно быть частью эффективного фильтра.

String

filter

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

String

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<!-- blueprint:reference -->
	<blueprint:reference id="entaxy-broker" interface="org.apache.camel.Component"
               filter="(connection.name=entaxy-broker)"/>

<!-- blueprint:reference -->
	<to uri="entaxy-broker:queue:test36?ExchangePattern=InOnly"/>
	<log message="consumer: ${body}"/>

</entaxy:object-route>

blueprint:bean

Описание: Определяет и настраивает экземпляры Java-бинов, которые могут быть использованы в обменах сообщениями, позволяя интегрировать бины в маршруты.

Attribute or Element Syntax Bean Metadata Description

id

ID

id

Уникальный идентификатор

class

qname

className: String

Имя класса объекта или статической фабрики

scope

singleton / prototype

scope: String

Определяет область действия бина. По умолчанию singleton, но может быть prototype для создания нового экземпляра при каждом запросе.

factory-method

method

factoryMethod: String

Имя метода, используемого для создания экземпляра бина на статической фабрике или фабрике компонента.

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<blueprint:bean class="java.util.UUID" factory-method="randomUUID" id="uuidGenerator1" scope="prototype"/>
<setHeader name="ENTAXY_UUID">
    <simple>${bean:uuidGenerator1.toString}</simple>
</setHeader>
<log message="${header.ENTAXY_UUID}"/>

</entaxy:object-route>

В этом примере тег <blueprint:bean> используется для создания объекта, который генерирует случайные UUID.

call-route

Описание: Используется для вызова другого маршрута, с возможностью указания асинхронного или синхронного выполнения.

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<!-- call-route -->
<m:call-route library="library-01" name="aggregator-01" async="true"/>

</entaxy:object-route>

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

map-data

Описание: Используется для выполнения маппинга данных с использованием заранее настроенного маппера, в котором заданы правила преобразования.

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route xmlns="http://camel.apache.org/schema/blueprint"
                     xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
                     xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
                     xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<!-- Преобразуем тело сообщения в XML-документ -->
    <convertBodyTo type="org.w3c.dom.Document" />
 <!--
        Устанавливаем имя пользовательского маппера.
        Этот маппер используется для преобразования данных.
    -->
    <setProperty name="customMapper">
        <constant>entaxy-default</constant>
    </setProperty>
<!--
    Маппинг данных из XML-документа.
    Извлекает информацию о товарных запасах, используя установленный 'customMapper'.
    Если данные отсутствуют, подставляется значение по умолчанию 'no-available-data'.
    Результат сохраняется в Property 'processedResult'.
-->

    <m:map-data mapper="${exchangeProperty.customMapper}" map="productStock"
                noDataAction="RETURN_VALUE" noDataValue="no-available-data"
                trimForString="false" returnTo="processedResult">
<!--
            Извлекаем текстовое содержимое элемента <inventory>
            и преобразуем результат в строку (java.lang.String).
        -->
        <xpath resultType="java.lang.String">//inventory/text()</xpath>
    </m:map-data>
<!-- Логируем полученный результат после обработки данных -->
    <log message="RESULT: {${exchangeProperty.processedResult}}" />

</entaxy:object-route>
Атрибут Описание

mapper

Имя используемого маппера.

В данном примере оно подставляется из свойства exchangeProperty.data_mapper.

map

Имя карты маппинга.

NoDataAction

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

* USE_ORIGIN — использовать исходные данные.
* RETURN_NULL — вернуть null в случае отсутствия данных.
* RETURN_VALUE — вернуть заданное значение.
* THROW_EXCEPTION — выбросить исключение при отсутствии данных.

noDataValue

Значение, которое возвращается при отсутствии данных.
Например, "no-data".

returnTo

Указывает, где сохранить результат маппинга.

В данном примере, в свойстве exchangeProperty.map_result.

trimForString

Удаление пробелов в начале и конце строковых значений.
По умолчанию функция удаления пробелов включена.

use-connection

Описание: Тег, который используется для вызова настроенной коннекции.

Он используется в ситуациях, когда необходимо обратиться к коннекции, но нельзя применить конструкцию to-connection.

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
    xmlns="http://camel.apache.org/schema/blueprint"
    xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
    xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<m:use-connection name="entaxy-broker"/>

</entaxy:object-route>
Атрибут Описание

name

Уникальный идентификатор коннекции (Object Id)

ignite-cache

Описание: Тег, который используется для работы с кэшированными данными в Ignite.

Атрибут Описание Значение по умолчанию Тип

target

Определяет имя целевого объекта.

-

String

targetType

Указывает тип целевого объекта. Возможные значения: body, header, property.

-

String

key

Обязательный параметр. Ключ кэша для записи значения в тело сообщения.

-

String

action

Вызываемая операция кэша. Поддерживаемые действия: GET, PUT, REMOVE, SIZE, REBALANCE, QUERY, CLEAR.

-

IgniteCacheOperation

cacheName

Имя кэша, используемое для выполнения операций.

runtime

String

propagateIncomingBodyIfNoReturnValue

Определяет, следует ли передавать входящее тело сообщения дальше по маршруту, если выполняемая операция в Ignite не возвращает значение (имеет тип void).

true

Boolean

synchronous

Определяет, следует ли строго использовать синхронную обработку или разрешить Camel использовать асинхронную обработку (если это поддерживается).

false

Boolean

query

Запрос, который необходимо выполнить. Требуется только для операций, которым он необходим, а также для использования потребителем непрерывных запросов (Continuous Query Consumer).

-

Query

exchangePattern

Устанавливает шаблон обмена, который используется при создании обмена потребителем. Возможные варианты: InOnly, InOut, InOptionalOut.

-

ExchangePattern

pageSize

Размер страницы. Используется только потребителем непрерывных запросов. Значение по умолчанию: ContinuousQuery.DFLT_PAGE_SIZE

1

int

remoteFilter

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

-

CacheEntryEventSerializableFilter

autoUnsubscribe

Определяет, включена ли автоматическая отписка в потребителе непрерывного запроса (Continuous Query Consumer). Значение по умолчанию: ContinuousQuery.DFLT_AUTO_UNSUBSCRIBE

true

Boolean

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
    xmlns="http://camel.apache.org/schema/blueprint"
    xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
    xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<m:ignite-cache target="runtimeCache" targetType="header" key="cache_key" action="PUT"><!-- Cache value --></m:ignite-cache>

</entaxy:object-route>

cache-read

Описание: Тег, который используется для операции чтения из кэша.

Атрибут Описание Значение по умолчанию Тип

target

Определяет имя целевого объекта.

-

String

targetType

Указывает тип целевого объекта. Возможные значения: body, header, property.

-

String

key

Обязательный параметр. Ключ кэша для записи значения в тело сообщения.

-

String

cacheName

Имя кэша, используемое для выполнения операций.

runtime

String

propagateIncomingBodyIfNoReturnValue

Определяет, следует ли передавать входящее тело сообщения дальше по маршруту, если выполняемая операция в Ignite не возвращает значение (имеет тип void).

true

Boolean

synchronous

Определяет, следует ли строго использовать синхронную обработку или разрешить Camel использовать асинхронную обработку (если это поддерживается).

false

Boolean

query

Запрос, который необходимо выполнить. Требуется только для операций, которым он необходим.

-

Query

exchangePattern

Устанавливает шаблон обмена, который используется при создании обмена потребителем. Возможные варианты: InOnly, InOut, InOptionalOut.

-

ExchangePattern

pageSize

Размер страницы. Используется только потребителем непрерывных запросов. Значение по умолчанию: ContinuousQuery.DFLT_PAGE_SIZE

1

int

remoteFilter

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

-

CacheEntryEventSerializableFilter

autoUnsubscribe

Определяет, включена ли автоматическая отписка в потребителе непрерывного запроса (Continuous Query Consumer). Значение по умолчанию: ContinuousQuery.DFLT_AUTO_UNSUBSCRIBE

true

Boolean

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
    xmlns="http://camel.apache.org/schema/blueprint"
    xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
    xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<m:cache-read key="cache_key" />

</entaxy:object-route>

cache-write

Описание: Тег, который используется для операции записи в кэш.

Атрибут Описание Значение по умолчанию Тип

key

Обязательный параметр. Ключ кэша для записи значения.

-

String

ttl

Время жизни записи в кэше. Может задаваться как число в миллисекундах или с единицами измерения (ms, s, m, h, d). Например: 5000, 5s, 10m, 2h. После истечения указанного времени запись автоматически удаляется из кэша.

-

String

cacheName

Имя кэша, используемое для выполнения операций.

runtime

String

propagateIncomingBodyIfNoReturnValue

Определяет, следует ли передавать входящее тело сообщения дальше по маршруту, если выполняемая операция в Ignite не возвращает значение (имеет тип void).

true

Boolean

synchronous

Определяет, следует ли строго использовать синхронную обработку или разрешить Camel использовать асинхронную обработку (если это поддерживается).

false

Boolean

query

Запрос, который необходимо выполнить. Требуется только для операций, которым он необходим.

-

Query

exchangePattern

Устанавливает шаблон обмена, который используется при создании обмена потребителем. Возможные варианты: InOnly, InOut, InOptionalOut.

-

ExchangePattern

pageSize

Размер страницы. Используется только потребителем непрерывных запросов. Значение по умолчанию: ContinuousQuery.DFLT_PAGE_SIZE

1

int

remoteFilter

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

-

CacheEntryEventSerializableFilter

autoUnsubscribe

Определяет, включена ли автоматическая отписка в потребителе непрерывного запроса (Continuous Query Consumer). Значение по умолчанию: ContinuousQuery.DFLT_AUTO_UNSUBSCRIBE

true

Boolean

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
    xmlns="http://camel.apache.org/schema/blueprint"
    xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
    xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

<m:cache-write key="cache_key"><!-- Cache value --></m:cache-write>

</entaxy:object-route>
Атрибут Описание Значение по умолчанию Тип

target

Определяет имя целевого объекта.

-

String

targetType

Указывает тип целевого объекта. Возможные значения: body, header, property.

-

String

key

Обязательный параметр. Ключ кэша для записи значения в тело сообщения.

-

String

action

Вызываемая операция кэша. Поддерживаемые действия: GET, PUT, REMOVE, SIZE, REBALANCE, QUERY, CLEAR.

-

IgniteCacheOperation

cacheName

Имя кэша используемое для выполнения операций.

runtime

String

propagateIncoming BodyIfNoReturnValue

Определяет, следует ли передавать входящее тело сообщения дальше по маршруту, если выполняемая операция в Ignite не возвращает значение (имеет тип void).

true

Boolean

synchronous

Определяет, следует ли строго использовать синхронную обработку или разрешить Camel использовать асинхронную обработку (если это поддерживается).

false

Boolean

query

Запрос, который необходимо выполнить; требуется только для операций, которым он необходим, а также для использования потребителем непрерывных запросов (Continuous Query Consumer).

-

Query

exchangePattern

Устанавливает шаблон обмена, который используется при создании обмена потребителем. Возможные варианты: InOnly, InOut, InOptionalOut.

-

ExchangePattern

pageSize

Размер страницы. Используется только потребителем непрерывных запросов. Значение по умолчанию: ContinuousQuery.DFLT_PAGE_SIZE

1

int

remoteFilter

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

-

CacheEntryEvent SerializableFilter

autoUnsubscribe

Определяет, включена ли автоматическая отписка в потребителе непрерывного запроса (Continuous Query Consumer). Значение по умолчанию: ContinuousQuery .DFLT_AUTO_UNSUBSCRIBE

true

Boolean

lazyStartProducer

Ленивая загрузка продюсера маршрута позволяет CamelContext и маршрутам успешно запускаться даже в ситуациях, когда продюсер может потерпеть неудачу во время запуска. При обработке первого сообщения создание и запуск продюсера может занять некоторое время и продлить общее время обработки. Возможные ошибки при ленивой загрузке можно обработать через механизмы обработки ошибок Camel.

false

Boolean

bridgeErrorHandler

Позволяет связать потребителя с обработчиком ошибок маршрутизации Camel. Это означает, что любые исключения, возникающие при попытке потребителя получить входящие сообщения или выполнять аналогичные операции, будут обработаны как сообщения и переданы в обработчик ошибок маршрутизации. По умолчанию потребитель будет использовать org.apache.camel.spi.ExceptionHandler для обработки исключений, которые будут записаны на уровне WARN или ERROR и игнорироваться.

false

Boolean

oneExchangePerUpdate

Определяет, следует ли упаковывать каждое изменение данных в отдельный Exchange, даже если несколько изменений поступают в одном пакете. Используется только для потребителя непрерывного запроса (Continuous Query Consumer).

true

Boolean

treatCollectionsAsCacheObjects

Определяет, следует ли рассматривать коллекции как объекты кэша или как коллекции элементов для вставки, обновления, вычисления и т.д.

false

Boolean

fireExistingQueryResults

Определяет, следует ли обрабатывать существующие результаты, соответствующие запросу. Используется при инициализации потребителя непрерывного запроса (Continuous Query Consumer).

false

Boolean

cachePeekMode

CachePeekMode — используется только для операций, которые требуют его (например, для операции IgniteCacheOperation#SIZE). Значение может быть одним из следующих: ALL, NEAR, PRIMARY, BACKUP, ONHEAP, OFFHEAP.

ALL

CachePeekMode

failIfInexistentCache

Определяет, следует ли завершить инициализацию с ошибкой, если кэш не существует.

false

Boolean

timeInterval

Временной интервал для потребителя непрерывного запроса. Значение по умолчанию: ContinuousQuery .DFLT_TIME_INTERVAL

0

long

exceptionHandler

Позволяет потребителю использовать пользовательский ExceptionHandler. Обратите внимание, что если опция bridgeErrorHandler включена, то эта опция не используется. По умолчанию потребитель обрабатывает исключения, которые записываются на уровне WARN или ERROR и игнорируются.

-

ExceptionHandler

set-content

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

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
    xmlns="http://camel.apache.org/schema/blueprint"
    xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
    xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
    xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

    <m:set-content>
        <m:description>Формирование JSON-ответа об ошибке</m:description>
        <m:freemarker fromBody="true">
        {
            "Errors": [
                {
                    "errorCode": "RU.SBRF.Field.Missing",
                    "message": "Файл отсутствует",
                    "path": "${headers.fileName}",
                    "url": ""
                }
            ],
            "metadata": {
                "fileName": "${headers.fileName}",
                "messageUUID": "${headers.messageUUID}",
                "protocol": "${headers.protocol}"
            }
        }
        </m:freemarker>
        <m:args>
            <m:arg index="1" name="fileName">
                <simple>${headers.CamelFileName}</simple>
            </m:arg>
            <m:arg index="2" name="messageUUID">
                <simple>${headers.ENTAXY_MessageUUID}</simple>
            </m:arg>
            <m:arg index="3" name="protocol">
                <simple>${headers.NTX_SOURCE_connector_protocol}</simple>
            </m:arg>
        </m:args>
    </m:set-content>

</entaxy:object-route>

Атрибут

Значение по умолчанию

Описание

targetType

body

Определяет тип целевого объекта.
Возможные значения: body, header, property.

target

_PAYLOAD_

Определяет имя целевого объекта установленного в property или header.

type

-

Определяет формат содержимого, которое будет установлено в указанную область назначения. Возможные значения: xml, json, raw.

description

Описание: Тег используется для добавления текстового описания, поясняющего назначение или функциональность соответствующего блока в маршруте.

Пример использования:

<m:description>Формирование JSON-ответа об ошибке</m:description>

freemarker

Описание: Тег используется для шаблонной обработки данных с помощью FreeMarker.

Пример использования:

<m:freemarker fromBody="true">
    <![CDATA[
        {
            "Errors": [
                {
                    "errorCode": "RU.SBRF.Field.Missing",
                    "message": "Файл отсутствует",
                    "path": "${headers.fileName}",
                    "url": ""
                }
            ],
            "metadata": {
                "fileName": "${headers.fileName}",
                "messageUUID": "${headers.messageUUID}",
                "protocol": "${headers.protocol}"
            }
        }
    ]]>
</m:freemarker>

Атрибут

Значение по умолчанию

Описание

Type

contentCache

true

Определяет, кэшируется ли содержимое шаблона. Работает аналогично параметру content_cache в FreeMarker.

boolean

encoding

-

Кодировка, используемая при загрузке шаблона. (например, UTF-8).

string

allowContextMapAll

false

Определяет, можно ли получить доступ ко всему контексту Camel. По умолчанию доступны только тело сообщения (body) и заголовки (headers). Эта опция может быть включена для получения полного доступа к текущему контейнеру обмену данными Exchange и CamelContext. Это создает потенциальный риск безопасности, так как открывает доступ ко всем возможностям CamelContext API.

boolean

lazyStartProducer

false

Ленивая загрузка продюсера маршрута позволяет CamelContext и маршрутам успешно запускаться даже в ситуациях, когда продюсер может потерпеть неудачу во время запуска. При обработке первого сообщения создание и запуск продюсера может занять некоторое время и продлить общее время обработки. Возможные ошибки при ленивой загрузке можно обработать через механизмы обработки ошибок Camel.

boolean

templateUpdateDelay

-

Определяет частоту обновления кэшированных шаблонов (в секундах).

integer

basicPropertyBinding

false

Определяет, следует ли использовать устаревшую схему привязки свойств (Camel 2.x) или более новую привязку свойств с дополнительными возможностями.

boolean

synchronous

false

Определяет, должно ли строго использоваться синхронное выполнение, или Camel может использовать асинхронное выполнение (если поддерживается).

boolean

localizedLookup (специфично для Entaxy ION)

false

Включает/выключает локализованный поиск шаблонов. Отключено по умолчанию. Если установлено в true, поиск шаблона будет выполняться с использованием постфикса с указанием языка системы. Например, при запросе template.ftl будет искаться шаблон с именем template_ru_RU.ftl.

boolean

configuration

-

Устанавливает конфигурацию Freemarker для использования.

object

interpolationSyntax (специфично для Entaxy ION)

20

Идентификатор синтаксиса тегов вывода данных.

Может принимать следующие значения:

20 - LEGACY_INTERPOLATION_SYNTAX ${cq-version} и deprecated#{expression; numFormat}

21 - DOLLAR_INTERPOLATION_SYNTAX только ${expression} (не поддерживает #{expression; numFormat})

22 - SQUARE_BRACKET_INTERPOLATION_SYNTAX [=expression].

integer

tagSyntax (специфично для Entaxy ION)

1

Идентификатор синтаксиса конструкций шаблонизатора.

Может принимать следующие значения:

0 - AUTO_DETECT_TAG_SYNTAX, где парсер автоматически выбирает между ANGLE_BRACKET_TAG_SYNTAX и SQUARE_BRACKET_TAG_SYNTAX по первому тегу в шаблоне

1 - ANGLE_BRACKET_TAG_SYNTAX (например: <#if x><@foo /></#if>)

2 - SQUARE_BRACKET_TAG_SYNTAX (например: [#if x][@foo /][/#if]).

integer

resource

-

Определяет ресурс, содержащий шаблон FreeMarker, например: resource="entaxy-resource://schemas/answer.ftl".

string

fromBody

false

Определяет, нужно ли извлекать данные из тела сообщения для обработки.

boolean

fromHeader

-

Указывает название заголовка, из которого нужно извлечь данные для обработки.

string

args

Описание: Тег используется как контейнер для всех аргументов, которые будут использоваться в шаблоне. В нем могут быть указаны один или несколько аргументов с уникальными индексами и именами.

arg

Тег определяет отдельный аргумент с уникальным индексом (index) и именем (name).

Атрибуты:

  • index – создает property с именем NTX_PAYLOAD_ARG_<index>.

  • name – создает как property, так и header с указанным именем.

Пример использования:

<m:args>
    <m:arg index="1" name="val1"><constant>2</constant></m:arg>
    <m:arg index="2" ><simple>${headers.SOURCE_HEADER}</simple></m:arg>
</m:args>

content

Описание: Тег используется для определения содержимого, которое будет вставлено в целевой элемент в процессе обработки данных.

Пример использования:

<m:content>
    <![CDATA[
        <response>
            <fileName>$1</fileName>
            <statusMessage>$2</statusMessage>
            <protocol>$3</protocol>
        </response>
    ]]>
</m:content>

filter

Описание: Тег проверяет условие и выполняет дополнительные действия только для сообщений, прошедших фильтрацию. Сообщения, не прошедшие фильтр будут остановлены и не продолжат маршрут.

Пример использования:

<?xml version="1.0" encoding="UTF-8"?>
<entaxy:object-route
	xmlns="http://camel.apache.org/schema/blueprint"
	xmlns:blueprint="http://www.osgi.org/xmlns/blueprint/v1.0.0"
	xmlns:entaxy="http://www.entaxy.ru/schemas/1.0"
	xmlns:m="http://www.entaxy.ru/schemas/entaxy-mediators/1.0">

	<m:filter>
		<xpath>/personList/person/age[number(text()) > 18]</xpath>
	</m:filter>

</entaxy:object-route>

threshold-filter

Описание: Фильтр порогового значения, который сравнивает значение из кэша с заданным значением и обновляет кэш при выполнении условия.

Пример использования:

<m:threshold-filter accept="greater" update="true" acceptNull="true">
  <m:filter-key>
    <simple>ОстатокНаСкладе</simple>
  </m:filter-key>
  <m:test-value>
    <simple>10</simple>
  </m:test-value>
</m:threshold-filter>
Атрибут Описание

ttl

Время жизни записи в кэше. Может задаваться как число в миллисекундах или с единицами измерения (ms, s, m, h, d). Например: 5000, 5s, 10m, 2h. После истечения указанного времени запись автоматически удаляется из кэша.

accept

Определяет тип сравнения.
Возможные значения:
greater, greaterOrEqual, less, lessOrEqual, equal

update

Определяет, следует ли обновлять ли значение в кэше, если условие выполнено.
Возможные значения: true, false

acceptNull

Разрешает обработку сообщений с null значением из <m:test-value>.
Возможные значения: true, false

filter-key

Описание: Ключ по которому будет выбрано значения в кэше

Пример использования:

<m:filter-key>
    <simple>ОстатокНаСкладе</simple>
</m:filter-key>

test-value

Описание: Значение, с которым будет сравниваться значение найденное в кэше.

Пример использования:

<m:test-value>
    <simple>10</simple>
</m:test-value>