Кастомные теги
Кастомные теги представляют собой мощные инструменты в интеграционной платформе Entaxy ION, обеспечивая гибкость в настройке и создании интеграционных процессов.
С их помощью можно выбирать и указывать коннекторы для связи с внешними системами, выполнять специальные операции перед обработкой данных, задавать точные пункты назначения для отправки данных, добавлять метаданные для отслеживания и управления процессами и многое другое.
Каждый из тегов имеет свою специфическую роль и может быть применен для упрощения и точной настройки различных аспектов интеграции.
| Tag | Размещение | Краткое описание |
|---|---|---|
<m:connector-selector /> |
Out-Flow → Output connector selector |
connector-selector |
<m:set-destination /> |
In-Flow → pre-route Default-route → route (размещается до тега <m:standard-router>) |
set-destination |
<m:entaxy-trace /> |
во всех точках кастомизации |
entaxy-trace |
<m:respond /> |
In-Flow → pre-route |
respond |
<m:to-connection /> |
In-Flow → pre-route |
to-connection |
<m:xslt /> |
во всех точках кастомизации |
xslt |
<m:xslt-xalan /> |
во всех точках кастомизации |
xslt-xalan |
<m:default-destination /> |
In-Flow → pre-route |
default-destination |
<m:next-route /> |
In-Flow → pre-route |
next-route |
<m:standard-router> |
default-route |
standard-router |
<m:prefer-connector /> |
In-Flow → 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 |
<blueprint:bean /> |
во всех точках кастомизации |
blueprint:bean |
<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 cache-read cache-write |
<m:set-content /> <m:freemarker /> <m:content /> <m:args /> <m:arg /> <m:description /> |
во всех точках кастомизации |
set-content 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, используя операцию |
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&connectorClassifier=main&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 контейнера.
| Атрибут | Описание | Тип |
|---|---|---|
|
Уникальный идентификатор ссылки на OSGi сервис. |
String |
|
Определяет, будет ли ссылка инициализирована лениво (lazy) или жадно (eager). По умолчанию установлено значение eager (жадно). |
String (lazy или eager) |
|
Явные зависимости. Список идентификаторов компонентов, которые должны быть активированы до установки данной ссылки. Значения разделяются пробелами. |
List<String> |
|
Определяет, является ли ссылка на сервис обязательной (mandatory) или опциональной (optional). Значение по умолчанию для атрибута availability определяется атрибутом default-availability в элементе blueprint. Если атрибут default-availability не указан, то ссылка считается обязательной. |
String (mandatory или optional) |
|
Имя интерфейса класса. Необязательный параметр. |
String |
|
Указывает на другой менеджер в другом контейнере Blueprint, зарегистрированный в реестре сервисов. Если установлен, имя компонента должно быть частью эффективного фильтра. |
String |
|
Фильтр, используемый для поиска соответствующего сервиса. Необязательный параметр. |
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 |
|---|---|---|---|
|
|
|
Уникальный идентификатор |
|
|
|
Имя класса объекта или статической фабрики |
|
|
|
Определяет область действия бина. По умолчанию |
|
|
|
Имя метода, используемого для создания экземпляра бина на статической фабрике или фабрике компонента. |
Пример использования:
<?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>
| Атрибут | Описание |
|---|---|
|
Имя используемого маппера. В данном примере оно подставляется из свойства |
|
Имя карты маппинга. |
|
Действие, которое выполняется, если в источнике данных отсутствуют значения. Возможные варианты: * |
|
Значение, которое возвращается при отсутствии данных. |
|
Указывает, где сохранить результат маппинга. В данном примере, в свойстве |
|
Удаление пробелов в начале и конце строковых значений. |
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). Например: |
- |
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 |
Определяет тип целевого объекта. |
target |
|
Определяет имя целевого объекта установленного в 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). Например: |
accept |
Определяет тип сравнения. |
update |
Определяет, следует ли обновлять ли значение в кэше, если условие выполнено. |
acceptNull |
Разрешает обработку сообщений с null значением из <m:test-value>. |