release version 1.10.0
This commit is contained in:
175
platform/runtime/core/error-handling/LICENSE.txt
Normal file
175
platform/runtime/core/error-handling/LICENSE.txt
Normal file
@ -0,0 +1,175 @@
|
||||
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||
|
||||
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||
версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего
|
||||
Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН
|
||||
7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова,
|
||||
д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу
|
||||
https://www.emdev.ru/about (далее - Компания).
|
||||
|
||||
Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями»
|
||||
(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения,
|
||||
Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в
|
||||
настоящем документе, в противном случае, он должен не использовать или не получать доступ
|
||||
к Программному обеспечению.
|
||||
|
||||
1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
|
||||
|
||||
a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии
|
||||
или редакции, исключительные права на которую принадлежат Правообладателю.
|
||||
b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные
|
||||
права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ
|
||||
для ЭВМ № 2021610848 от 19.01.2021 года.
|
||||
c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта
|
||||
https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО.
|
||||
d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также
|
||||
личные неимущественные права авторов произведений на результат интеллектуальной деятельности.
|
||||
e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование
|
||||
ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка
|
||||
включает предоставление Пользователю неисключительного права использования ПО, в том числе
|
||||
получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение
|
||||
патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается
|
||||
Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается
|
||||
для каждого Пользователя индивидуально в Сертификате.
|
||||
f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром),
|
||||
подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное
|
||||
обеспечение в ограниченном объёме и на определённый период времени.
|
||||
g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО,
|
||||
предоставленных Пользователю согласно условиям Подписки.
|
||||
h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного
|
||||
обеспечения.
|
||||
i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий
|
||||
из одного или нескольких файлов, который может быть прочтён человеком.
|
||||
j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля
|
||||
программы, полученный в результате обработки исходного кода, еще не связанный в полную программу.
|
||||
Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый
|
||||
продукт.
|
||||
k) Некоммерческое использование – индивидуальное личное использование Пользователем программного
|
||||
обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации
|
||||
возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая
|
||||
выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения.
|
||||
|
||||
2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
|
||||
|
||||
2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного
|
||||
обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом
|
||||
воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения
|
||||
в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ.
|
||||
2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит
|
||||
неисключительный характер.
|
||||
2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию,
|
||||
лицензия на ограниченное использование Программного обеспечения.
|
||||
2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования
|
||||
имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан
|
||||
обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения
|
||||
вида лицензии с Базовой бесплатной версии на Подписки.
|
||||
2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для
|
||||
пробного использования программного обеспечения – не ограничен.
|
||||
2.6. Использование Пользователем настоящего программного обеспечения в целях разработки,
|
||||
модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю,
|
||||
без разрешения Правообладателя не допускается.
|
||||
|
||||
3. АВТОРСКОЕ ПРАВО.
|
||||
|
||||
3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение
|
||||
и любые его копии принадлежат Правообладателю.
|
||||
3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента,
|
||||
к которому можно получить доступ с помощью Программного обеспечения, является собственностью
|
||||
соответствующего владельца контента и защищается применимым законодательством об авторском
|
||||
праве или другими законами и договорами об интеллектуальной собственности.
|
||||
3.3. Условия использования Программного обеспечения.
|
||||
Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь
|
||||
придерживается следующих условий:
|
||||
3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять
|
||||
какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании
|
||||
Программного обеспечения или на нем.
|
||||
3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать,
|
||||
расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать
|
||||
Программное обеспечение.
|
||||
3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования
|
||||
ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне.
|
||||
3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено
|
||||
использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам.
|
||||
|
||||
4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС»
|
||||
|
||||
4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю
|
||||
на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с
|
||||
использованием Пользователем:
|
||||
4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в
|
||||
Программное обеспечение;
|
||||
4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями
|
||||
настоящего соглашения;
|
||||
4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием,
|
||||
или данными, не предоставленными Пользователю Правообладателем;
|
||||
4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем.
|
||||
|
||||
|
||||
5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ
|
||||
ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ
|
||||
И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ
|
||||
ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ
|
||||
И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ
|
||||
ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО.
|
||||
|
||||
6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ.
|
||||
НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ
|
||||
ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ,
|
||||
ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ;
|
||||
ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ.
|
||||
ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ
|
||||
ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ;
|
||||
КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ
|
||||
ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ.
|
||||
|
||||
7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ:
|
||||
Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия
|
||||
(включая, но не ограничиваясь) по:
|
||||
-дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код)
|
||||
Программного обеспечения;
|
||||
-модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный
|
||||
код Программного обеспечения, за исключением тех изменений, которые вносятся средствами,
|
||||
включёнными в Программное обеспечение и описанными непосредственно в документации к нему;
|
||||
-созданию условий для использования Программного обеспечения лицами, не имеющими прав на
|
||||
использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство
|
||||
третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа
|
||||
к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку;
|
||||
-распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию).
|
||||
|
||||
8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА.
|
||||
|
||||
8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из
|
||||
лицензионных продуктов, используемых на законных основаниях, а
|
||||
именно https://entaxy.ru/libs/licenses/root-aggregated.deps.
|
||||
8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть
|
||||
совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения.
|
||||
8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться
|
||||
Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения,
|
||||
содержащих все изменения и дополнения программного обеспечения.
|
||||
|
||||
9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.
|
||||
|
||||
9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым
|
||||
программным обеспечением.
|
||||
9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно
|
||||
с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм
|
||||
«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public.
|
||||
9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий
|
||||
пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя,
|
||||
прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер
|
||||
ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства
|
||||
Российской Федерации.
|
||||
|
||||
10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ.
|
||||
|
||||
10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет
|
||||
право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб,
|
||||
недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий
|
||||
пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере
|
||||
2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения
|
||||
исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy).
|
||||
10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое
|
||||
законодательство – Российской Федерации.
|
||||
10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||
исполнять свои обязанности в соответствии с этими положениями.
|
175
platform/runtime/core/error-handling/error-handler/LICENSE.txt
Normal file
175
platform/runtime/core/error-handling/error-handler/LICENSE.txt
Normal file
@ -0,0 +1,175 @@
|
||||
ЛИЦЕНЗИЯ ОГРАНИЧЕННОГО ПРИМЕНЕНИЯ
|
||||
|
||||
Настоящий документ устанавливает для Пользователя условия применения Базовой (некоммерческой)
|
||||
версии лицензии для пробного использования программного обеспечения ENTAXY, принадлежащего
|
||||
Правообладателю – Обществу с ограниченной ответственностью "ЕМДЕВ" (ОГРН 1057810026658, ИНН
|
||||
7813313860, юридический адрес: 197022, Россия, г. Санкт-Петербург, ул. Профессора Попова,
|
||||
д. 23, литера В, помещение 3Н), расположенной в сети Интернет по адресу
|
||||
https://www.emdev.ru/about (далее - Компания).
|
||||
|
||||
Используя или получая доступ к Программному обеспечению, или нажав «Я согласен с Условиями»
|
||||
(или аналогичную кнопку или флажок) после загрузки или установки Программного обеспечения,
|
||||
Пользователь выражает свое согласие на обязательность условий и ограничений, изложенных в
|
||||
настоящем документе, в противном случае, он должен не использовать или не получать доступ
|
||||
к Программному обеспечению.
|
||||
|
||||
1. ТЕРМИНЫ И ОПРЕДЕЛЕНИЯ
|
||||
|
||||
a) ПО – Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) в любой ее версии
|
||||
или редакции, исключительные права на которую принадлежат Правообладателю.
|
||||
b) Правообладатель (Компания) – ООО «ЕМДЕВ», ОГРН 1057810026658, ИНН 7813313860, исключительные
|
||||
права которого подтверждаются Свидетельством о государственной регистрации в Реестре программ
|
||||
для ЭВМ № 2021610848 от 19.01.2021 года.
|
||||
c) Пользователь – юридическое или физическое лицо, получившее через скачивание с сайта
|
||||
https://entaxy.ru или иным образом, дистрибутив ПО, пользующееся ПО.
|
||||
d) ИС – интеллектуальная собственность – закреплённое законом исключительное право, а также
|
||||
личные неимущественные права авторов произведений на результат интеллектуальной деятельности.
|
||||
e) Подписка – это коммерческое предложение Правообладателя, состоящее из Лицензии на использование
|
||||
ПО и доступа к технической поддержке программного обеспечения на срок Подписки. Подписка
|
||||
включает предоставление Пользователю неисключительного права использования ПО, в том числе
|
||||
получение обновлений функционала ПО и безопасности ПО, исправление ошибок ПО и получение
|
||||
патчей с обновлениями и исправлениями программного обеспечения. Подписка приобретается
|
||||
Пользователем на период времени, указанный в Сертификате. Количество подписок устанавливается
|
||||
для каждого Пользователя индивидуально в Сертификате.
|
||||
f) Сертификат – документ, выдаваемый Дистрибъютором или Авторизованным партнёром (Партнёром),
|
||||
подтверждающий факт приобретения физическим или юридическим лицом Подписки на программное
|
||||
обеспечение в ограниченном объёме и на определённый период времени.
|
||||
g) Лицензия (простая (неисключительная) – совокупность ограниченных прав использования ПО,
|
||||
предоставленных Пользователю согласно условиям Подписки.
|
||||
h) Библиотека – совокупность подпрограмм и объектов, используемых для разработки программного
|
||||
обеспечения.
|
||||
i) Исходный код – текст компьютерной программы на каком-либо языке программирования, состоящий
|
||||
из одного или нескольких файлов, который может быть прочтён человеком.
|
||||
j) Объектный код – файл (часть машинного кода) с промежуточным представлением отдельного модуля
|
||||
программы, полученный в результате обработки исходного кода, еще не связанный в полную программу.
|
||||
Это машинный код для одной конкретной библиотеки или модуля, который будет составлять готовый
|
||||
продукт.
|
||||
k) Некоммерческое использование – индивидуальное личное использование Пользователем программного
|
||||
обеспечения с целью обучения работе с Программным обеспечением, для оценки или демонстрации
|
||||
возможностей Программного обеспечения, при котором, Пользователем не извлекается коммерческая
|
||||
выгода и/или не идёт в доход денежное вознаграждение при использовании Программного обеспечения.
|
||||
|
||||
2. ДОПУСТИМЫЕ СПОСОБЫ ИСПОЛЬЗОВАНИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
|
||||
|
||||
2.1. Правообладатель предоставляет Пользователю ограниченное право использования Программного
|
||||
обеспечения на условиях простой (неисключительной) лицензии в объёме, ограниченном правом
|
||||
воспроизведения полной рабочей версии программного обеспечения, новых версий программного обеспечения
|
||||
в памяти оборудования и его запуска на оборудовании в соответствии со ст. 1280 ГК РФ.
|
||||
2.2. Право на использование Программного обеспечения, предоставляемое Пользователю, носит
|
||||
неисключительный характер.
|
||||
2.3. Пользователю предоставляется всемирная, неисключительная, не подлежащая сублицензированию,
|
||||
лицензия на ограниченное использование Программного обеспечения.
|
||||
2.4. Пользователь, имеющий Базовую (некоммерческую) версию лицензии для пробного использования
|
||||
имеет право приобрести Подписку на программное обеспечение. В этом случае Пользователь обязан
|
||||
обратиться в службу поддержки Правообладателя по адресу: https://entaxy.ru/ для изменения
|
||||
вида лицензии с Базовой бесплатной версии на Подписки.
|
||||
2.5. Срок использования скачанной Пользователем базовой (некоммерческой) версии лицензии для
|
||||
пробного использования программного обеспечения – не ограничен.
|
||||
2.6. Использование Пользователем настоящего программного обеспечения в целях разработки,
|
||||
модификации, обновления другого ПО, принадлежащего третьим лицам, а не Правообладателю,
|
||||
без разрешения Правообладателя не допускается.
|
||||
|
||||
3. АВТОРСКОЕ ПРАВО.
|
||||
|
||||
3.1. Все авторские права, все права интеллектуальной собственности на Программное обеспечение
|
||||
и любые его копии принадлежат Правообладателю.
|
||||
3.2. Все авторские права, все права интеллектуальной собственности в отношении любого контента,
|
||||
к которому можно получить доступ с помощью Программного обеспечения, является собственностью
|
||||
соответствующего владельца контента и защищается применимым законодательством об авторском
|
||||
праве или другими законами и договорами об интеллектуальной собственности.
|
||||
3.3. Условия использования Программного обеспечения.
|
||||
Лицензия, предоставленная Пользователю, действительна только в том случае, если Пользователь
|
||||
придерживается следующих условий:
|
||||
3.3.1. Принятие уведомлений об авторских правах. Пользователю запрещается удалять или изменять
|
||||
какие-либо уведомления об авторских правах или лицензиях, которые появляются при использовании
|
||||
Программного обеспечения или на нем.
|
||||
3.3.2. Модификация. Пользователю запрещается модифицировать, изменять, декомпилировать,
|
||||
расшифровывать, дизассемблировать, переводить или реверсировать, перепроектировать
|
||||
Программное обеспечение.
|
||||
3.3.3. Распространение. Пользователю запрещается сублицензировать, передавать право использования
|
||||
ПО или иным образом распространять или предоставлять Программное обеспечение любой третьей стороне.
|
||||
3.3.4. SaaS. За исключением случаев, когда это разрешено Правообладателем, Пользователю запрещено
|
||||
использовать Программное обеспечение в коммерческих целях для оказания услуг третьим лицам.
|
||||
|
||||
4. ОТВЕТСТВЕННОСТЬ ПРАВООБЛАДАТЕЛЯ ПРИ НАРУШЕНИИ ПОЛЬЗОВАТЕЛЕМ ПРАВ «ИС»
|
||||
|
||||
4.1. Правообладатель не несет никаких обязательств в отношении каких-либо претензий к Пользователю
|
||||
на предмет нарушения последним прав Интеллектуальной собственности, возникших в связи с
|
||||
использованием Пользователем:
|
||||
4.1.1. Любых компонентов программного обеспечения с открытым исходным кодом, включенных в
|
||||
Программное обеспечение;
|
||||
4.1.2. Любого нарушения правил использования Программного обеспечения, установленного условиями
|
||||
настоящего соглашения;
|
||||
4.1.3. Любого использования Программного обеспечения в сочетании с другими ПО, оборудованием,
|
||||
или данными, не предоставленными Пользователю Правообладателем;
|
||||
4.1.4. Любого изменения Программного обеспечения любым третьим лицом, а не Правообладателем.
|
||||
|
||||
|
||||
5. НАСТОЯЩИМ ПРАВООБЛАДАТЕЛЬ ЗАЯВЛЯЕТ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЮ
|
||||
ПО ПРИНЦИПУ «AS IS» - «КАК ЕСТЬ». НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ НЕ ГАРАНТИРУЕТ
|
||||
И НЕ ОБЕЩАЕТ, ЧТО ПРЕДОСТАВЛЕННОЕ ИМ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ПОДХОДИТЬ ИЛИ НЕ ПОДХОДИТЬ
|
||||
ДЛЯ КОНКРЕТНЫХ ЦЕЛЕЙ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ ОТВЕЧАТЬ ВСЕМ КОММЕРЧЕСКИМ
|
||||
И ЛИЧНЫМ СУБЪЕКТИВНЫМ ОЖИДАНИЯМ ПОЛЬЗОВАТЕЛЯ, ЧТО ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ БУДЕТ РАБОТАТЬ
|
||||
ИСПРАВНО, БЕЗ ТЕХНИЧЕСКИХ ОШИБОК, БЫСТРО И БЕСПЕРЕБОЙНО.
|
||||
|
||||
6. ОГРАНИЧЕНИЕ ОТВЕТСТВЕННОСТИ.
|
||||
НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ ПРАВООБЛАДАТЕЛЬ ИЛИ ЕГО АФФИЛЛИРОВАННЫЕ ЛИЦА НЕ НЕСУТ ПЕРЕД ПОЛЬЗОВАТЕЛЕМ
|
||||
ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЯМЫЕ ИЛИ КОСВЕННЫЕ УБЫТКИ ПОЛЬЗОВАТЕЛЯ, ЕГО РАСХОДЫ ИЛИ РЕАЛЬНЫЙ УЩЕРБ,
|
||||
ВКЛЮЧАЯ, ПОМИМО ПРОЧЕГО, ПРОСТОИ; УТРАТУ БИЗНЕСА; УПУЩЕННУЮ ВЫГОДУ; НЕДОПОЛУЧЕННУЮ ПРИБЫЛЬ;
|
||||
ПОТЕРЮ ИЛИ ПОВРЕЖДЕНИЕ ДАННЫХ, ИМУЩЕСТВА И ИНОЕ.
|
||||
ОГРАНИЧЕНИЯ ПРИМЕНЯЮТСЯ НЕЗАВИСИМО ОТ ОСНОВАНИЯ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ; В ТОМ ЧИСЛЕ ВСЛЕДСТВИЕ
|
||||
ДЕЙСТВИЯ ИЛИ БЕЗДЕЙСТВИЯ, НЕБРЕЖНОСТИ, УМЫСЛА, ПРЯМОГО ИЛИ КОСВЕННОГО; НЕОСТОРОЖНОСТИ; ЗАБЛУЖДЕНИЯ;
|
||||
КЛЕВЕТЫ; НАРУШЕНИЯ КОНФИДЕНЦИАЛЬНОСТИ ИЛИ ПРАВА ИНТЕЛЛЕКТУАЛЬНОЙ СОБСТВЕННОСТИ; ИЛИ ЛЮБОЕ ДРУГОЕ
|
||||
ОСНОВАНИЕ НАСТУПЛЕНИЯ ОТВЕТСТВЕННОСТИ.
|
||||
|
||||
7. ОБЯЗАННОСТЬ ПОЛЬЗОВАТЕЛЯ:
|
||||
Не осуществлять самостоятельно и (или) с привлечением третьих лиц нижеследующие действия
|
||||
(включая, но не ограничиваясь) по:
|
||||
-дизассемблированию и (или) декомпилированию (преобразованию объектного кода в исходный код)
|
||||
Программного обеспечения;
|
||||
-модификации Программного обеспечения, в том числе вносить изменения в объектный код, исходный
|
||||
код Программного обеспечения, за исключением тех изменений, которые вносятся средствами,
|
||||
включёнными в Программное обеспечение и описанными непосредственно в документации к нему;
|
||||
-созданию условий для использования Программного обеспечения лицами, не имеющими прав на
|
||||
использование данного Программного обеспечения, включая (но не ограничиваясь) вмешательство
|
||||
третьих лиц в функционирование Программного обеспечения, предоставление третьим лицам доступа
|
||||
к исследованию и (или) замене настроек Программного обеспечения, включая его первичную установку;
|
||||
-распространению Программного обеспечения в целом или в части (включая приложенную к нему документацию).
|
||||
|
||||
8. БИБЛИОТЕКА ПО. ИСПОЛЬЗУЕМЫЕ ПРОГРАММНЫЕ СРЕДСТВА.
|
||||
|
||||
8.1. Настоящим, Правообладатель заверяет, что Библиотека программного обеспечения состоит из
|
||||
лицензионных продуктов, используемых на законных основаниях, а
|
||||
именно https://entaxy.ru/libs/licenses/root-aggregated.deps.
|
||||
8.2. Любые программные средства, применяемые Пользователем при работе с ПО, должны быть
|
||||
совместимы с библиотекой ПО, указанной в п.8.1. настоящего соглашения.
|
||||
8.3. Перечень внешних модулей ПО, указанный в п.8.1 настоящего соглашения, может изменяться
|
||||
Правообладателем в одностороннем порядке, в зависимости от выпуска релизов программного обеспечения,
|
||||
содержащих все изменения и дополнения программного обеспечения.
|
||||
|
||||
9. ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ.
|
||||
|
||||
9.1. Программное обеспечение, интеграционная шина «ЭНТАКСИ» (ENTAXY) является свободно распространяемым
|
||||
программным обеспечением.
|
||||
9.2. Пользователь имеет право вносить изменения в исходный код программного обеспечения исключительно
|
||||
с согласия Правообладателя в порядке предложения изменений/правок/дополнений через механизм
|
||||
«Pull Requests» в открытом репозитории Правообладателя по адресу: https://git.entaxy.ru/entaxy/entaxy-public.
|
||||
9.3. Любые изменения программного обеспечения, осуществляемые Пользователем без соблюдения условий
|
||||
пункта 9.2. настоящего документа, являются нарушением авторских и смежных прав Правообладателя,
|
||||
прав интеллектуальной собственности Правообладателя и влекут применение к Пользователю мер
|
||||
ответственности в соответствии с условиями настоящей Лицензии, а также применимого законодательства
|
||||
Российской Федерации.
|
||||
|
||||
10. ЗАКЛЮЧИТЕЛЬНЫЕ ПОЛОЖЕНИЯ.
|
||||
|
||||
10.1. В случае нарушения Пользователем любого из условий настоящей Лицензии, Правообладатель имеет
|
||||
право взыскать с Пользователя любые причинённые таким нарушением убытки, реальный ущерб,
|
||||
недополученную прибыль, упущенную выгоду, а также в случае нарушения Пользователем условий
|
||||
пункта 9.2 настоящего соглашения, в том числе, взыскать с Пользователя штраф в размере
|
||||
2 000 000 (Два миллиона) рублей за каждый установленный случай несанкционированного изменения
|
||||
исходного или объектного кода Программного обеспечения «Энтакси» (Entaxy).
|
||||
10.2. В рамках исполнения Пользователем обязательств по настоящей Лицензии, применимое
|
||||
законодательство – Российской Федерации.
|
||||
10.3. Если какое-либо положение настоящей Лицензии будет признано судом недействительным,
|
||||
остальные положения будут продолжать своё действие, а Пользователь будет обязан продолжать
|
||||
исполнять свои обязанности в соответствии с этими положениями.
|
116
platform/runtime/core/error-handling/error-handler/README.md
Normal file
116
platform/runtime/core/error-handling/error-handler/README.md
Normal file
@ -0,0 +1,116 @@
|
||||
# SYSTEM :: ENTAXY :: CORE :: COMMON ERROR HANDLER
|
||||
|
||||
Централизованный обработчик ошибок для формирования кодов ошибок, их синхронного возврата клиенту и для асинхронного дублирования более подробного описания ошибки (для клиента и для Центральной Базы Интеграции).
|
||||
|
||||
## Установка и настройка
|
||||
Установка модуля происходит через фичу:
|
||||
```
|
||||
feature:install error-handler
|
||||
```
|
||||
Фича включена в общий установочный скрипт и будет устанавливаться вместе с остальными модулями.
|
||||
Во время установки фичи в караф копируются файлы конфигурации:
|
||||
```
|
||||
ru.entaxy.esb.error.cfg (основная конфигурация)
|
||||
ru.entaxy.esb.error.code.cfg (справочник исключений с маппингом на коды ошибок)
|
||||
ru.entaxy.esb.error.text.cfg (справочник кодов ошибок с маппингом на текстовые сообщения)
|
||||
```
|
||||
Есть возможность настройки маппинга уровней журналирования через файл конфигурации `ru.entaxy.esb.error.severity.cfg`.
|
||||
### ru.entaxy.esb.error.cfg (основная конфигурация)
|
||||
```
|
||||
# асинхронный пакет с ошибкой отправляется от имени:
|
||||
# false - системы, вызвавшей ошибку в шине
|
||||
# true - шины (система с идентификатором "-1")
|
||||
error.bus.always_at_source=false
|
||||
|
||||
# асинхронный пакет с ошибкой в поле description содержит:
|
||||
# false - сообщение из маппинга в файле ru.entaxy.esb.error.text.cfg
|
||||
# true - содержит сообщение, сохранённое в исключении
|
||||
error.description.exception_message=true
|
||||
|
||||
# имя очереди для отправки пакета с ошибкой при недоступности системы, указанной в свойстве error.system.name
|
||||
error.queue.name=error
|
||||
|
||||
# имя системы для отправки пакета с ошибкой, подразумевается система ЦБИ
|
||||
error.system.name=error
|
||||
|
||||
# true - включает в пакет с ошибкой весь stacktrace исключения
|
||||
error.stacktrace.show=true
|
||||
|
||||
# свойство автоматического запуска тестового маршрута, который при старте модуля бросает исключение java.lang.IllegalArgumentException: Test exception thrown
|
||||
error.test-route.startup=false
|
||||
```
|
||||
### ru.entaxy.esb.error.code.cfg (справочник исключений с маппингом на коды ошибок)
|
||||
Справочник содержит соответствие имён классов исключений и http кодов ошибок. И будет наполняться по мере использования шины в разных ситуациях. Для исключения, имя которого ещё не указано в этом файле, будет возвращаться http код `520` (Unknown Error).
|
||||
```
|
||||
DefaultException=520
|
||||
com.ctc.wstx.exc.WstxParsingException=400
|
||||
java.security.AccessControlException=403
|
||||
javax.ws.rs.ForbiddenException=403
|
||||
ConnectorNotFound=424
|
||||
ru.entaxy.esb.system.common.exception.DefaultException=520
|
||||
ProfileNotFound=424
|
||||
# и т.д.
|
||||
```
|
||||
### ru.entaxy.esb.error.text.cfg (справочник кодов ошибок с маппингом на текстовые сообщения)
|
||||
Если в основной конфигурации свойство `error.description.exception_message` установлено в `false`, то описание ошибки отправляется из этого файла в соответствие с кодом http ошибки.
|
||||
```
|
||||
# 1xx: Informational
|
||||
# 2xx: Success
|
||||
200=OK
|
||||
|
||||
# 3xx: Redirection
|
||||
# 4xx: Client Error
|
||||
400=Bad Request
|
||||
403=Forbidden
|
||||
424=Failed Dependency
|
||||
|
||||
# 5xx: Server Error
|
||||
520=Unknown Error
|
||||
# и т.д.
|
||||
```
|
||||
## Подключение обработчика ошибок
|
||||
Для подключения обработчика ошибок к маршрутам какого-либо модуля необходимо выполнить следующие шаги:
|
||||
1. Добавить в модуль обработки ошибок в директорию `src/main/resources/xslt/operation` новый xslt для формирования ответа с ошибкой. Файл должен называться по имени операции, для которой будет формироваться ответ. Например `sendToJMS.xsl`.
|
||||
1. Добавить в `camelContext` аттрибут `errorHandlerRef="commonErrorHandler"` и внутри зарегистрировать обработчик и политику повторной доставки:
|
||||
```xml
|
||||
<camelContext id="soap-service-endpoints-camel-context"
|
||||
xmlns="http://camel.apache.org/schema/blueprint"
|
||||
errorHandlerRef="commonErrorHandler" handleFault="true">
|
||||
|
||||
<errorHandler id="commonErrorHandler" redeliveryPolicyRef="noRedelivery"
|
||||
type="DeadLetterChannel" deadLetterUri="direct-vm:commonErrorEndpoint"/>
|
||||
<redeliveryPolicyProfile id="noRedelivery" disableRedelivery="true" />
|
||||
<!-- any content -->
|
||||
</camelContext>
|
||||
```
|
||||
Для контекстов, содержащих конечные точки cxf, необходимо:
|
||||
- через `pom.xml` импортировать интерцептор для перехвата ошибок (SoapFault)
|
||||
```xml
|
||||
<bundle.osgi.import.pkg>
|
||||
ru.entaxy.esb.system.core.common.error.handler.interceptor,
|
||||
...
|
||||
</bundle.osgi.import.pkg>
|
||||
```
|
||||
- добавить интерцептор в `cxfEndpoint` и bean с указанием в первом аргументе идентификатора `camelContext`
|
||||
```xml
|
||||
<camelcxf:cxfEndpoint id="soap-proxy" .../>
|
||||
<!-- any properties and interceptors -->
|
||||
<camelcxf:outFaultInterceptors>
|
||||
<ref component-id="handleOutFaultInterceptor"/>
|
||||
</camelcxf:outFaultInterceptors>
|
||||
</camelcxf:cxfEndpoint>
|
||||
|
||||
<bean id="handleOutFaultInterceptor" class="ru.entaxy.esb.system.core.common.error.handler.interceptor.HandleOutFaultInterceptor">
|
||||
<argument ref="soap-service-endpoints-camel-context"/>
|
||||
<argument value="direct:error_from_cxf"/>
|
||||
</bean>
|
||||
```
|
||||
- в `camelContext` добавить маршрут
|
||||
```xml
|
||||
<route id="error_from_cxf">
|
||||
<from uri="direct:error_from_cxf"/>
|
||||
<log message="cxf message: ${body}" loggingLevel="DEBUG"/>
|
||||
<log message="headers: ${headers}\n" loggingLevel="DEBUG"/>
|
||||
<to uri="direct-vm:cxfErrorEndpoint"/>
|
||||
</route>
|
||||
```
|
48
platform/runtime/core/error-handling/error-handler/pom.xml
Normal file
48
platform/runtime/core/error-handling/error-handler/pom.xml
Normal file
@ -0,0 +1,48 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<parent>
|
||||
<groupId>ru.entaxy.platform.core</groupId>
|
||||
<artifactId>error-handling</artifactId>
|
||||
<version>1.10.0</version>
|
||||
</parent>
|
||||
|
||||
<groupId>ru.entaxy.platform.core.error-handling</groupId>
|
||||
<artifactId>error-handler</artifactId>
|
||||
<packaging>bundle</packaging>
|
||||
|
||||
<name>ENTAXY :: PLATFORM :: CORE :: ERROR HANDLER</name>
|
||||
<description>ENTAXY :: PLATFORM :: CORE :: ERROR HANDLER</description>
|
||||
|
||||
<properties>
|
||||
<bundle.osgi.export.pkg>
|
||||
ru.entaxy.esb.system.core.common.error.handler.interceptor
|
||||
</bundle.osgi.export.pkg>
|
||||
<bundle.osgi.import.pkg>
|
||||
org.apache.commons.lang3.exception,
|
||||
*
|
||||
</bundle.osgi.import.pkg>
|
||||
<!-- bundle.osgi.private.pkg>{local-packages}</bundle.osgi.private.pkg -->
|
||||
<!--ru.entaxy.esb.system.core.common.error.handler.processor,
|
||||
ru.entaxy.esb.system.core.common.error.handler.util-->
|
||||
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>ru.entaxy.esb.platform.runtime.core</groupId>
|
||||
<artifactId>core-support-runtime-legacy</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.camel</groupId>
|
||||
<artifactId>camel-cxf</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
@ -0,0 +1,13 @@
|
||||
<!-- -->
|
||||
<configfile finalname="etc/ru.entaxy.esb.error.cfg" override="true">
|
||||
mvn:ru.entaxy.platform.core.error-handling/error-handler/1.10.0/cfg/ru.entaxy.esb.error
|
||||
</configfile>
|
||||
<!-- --><!-- -->
|
||||
<configfile finalname="etc/ru.entaxy.esb.error.code.cfg" override="true">
|
||||
mvn:ru.entaxy.platform.core.error-handling/error-handler/1.10.0/cfg/ru.entaxy.esb.error.code
|
||||
</configfile>
|
||||
<!-- --><!-- -->
|
||||
<configfile finalname="etc/ru.entaxy.esb.error.text.cfg" override="true">
|
||||
mvn:ru.entaxy.platform.core.error-handling/error-handler/1.10.0/cfg/ru.entaxy.esb.error.text
|
||||
</configfile>
|
||||
<!-- -->
|
@ -0,0 +1,49 @@
|
||||
###
|
||||
# ~~~~~~licensing~~~~~~
|
||||
# karaf-features
|
||||
# ==========
|
||||
# Copyright (C) 2020 - 2024 EmDev LLC
|
||||
# ==========
|
||||
# You may not use this file except in accordance with the License Terms of the Copyright
|
||||
# Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
# rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
# it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
# Software for commercial purposes to provide services to third parties.
|
||||
#
|
||||
# The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
# Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
# Software provided by him will be suitable or not suitable for the specific purposes
|
||||
# of the User, that the Software will meet all commercial and personal subjective
|
||||
# expectations of the User, that the Software will work properly, without technical
|
||||
# errors, quickly and uninterruptedly.
|
||||
#
|
||||
# Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
# to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
# damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
# or damage to data, property, etc.
|
||||
# ~~~~~~/licensing~~~~~~
|
||||
###
|
||||
# асинхронный пакет с ошибкой отправляется от имени:
|
||||
# false - системы, вызвавшей ошибку в шине
|
||||
# true - шины (система с идентификатором "-1")
|
||||
error.bus.always_at_source=false
|
||||
|
||||
# асинхронный пакет с ошибкой в поле description содержит:
|
||||
# false - сообщение из маппинга в файле ru.entaxy.esb.error.text.cfg
|
||||
# true - содержит сообщение, сохранённое в исключении
|
||||
error.description.exception_message=true
|
||||
|
||||
# имя очереди для отправки пакета с ошибкой при недоступности системы, указанной в свойстве error.system.name
|
||||
error.queue.name=error
|
||||
|
||||
# имя системы для отправки пакета с ошибкой
|
||||
error.system.name=error
|
||||
|
||||
# true - включает в асинхронный пакет с ошибкой весь stacktrace исключения
|
||||
error.asynch.stacktrace.show=true
|
||||
|
||||
# false - включает в синхронный ответ с ошибкой весь stacktrace исключения
|
||||
error.synch.stacktrace.show=false
|
||||
|
||||
# свойство автоматического запуска тестового маршрута, который при старте модуля бросает исключение java.lang.IllegalArgumentException: Test exception thrown
|
||||
error.test-route.startup=false
|
@ -0,0 +1,48 @@
|
||||
###
|
||||
# ~~~~~~licensing~~~~~~
|
||||
# karaf-features
|
||||
# ==========
|
||||
# Copyright (C) 2020 - 2024 EmDev LLC
|
||||
# ==========
|
||||
# You may not use this file except in accordance with the License Terms of the Copyright
|
||||
# Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
# rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
# it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
# Software for commercial purposes to provide services to third parties.
|
||||
#
|
||||
# The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
# Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
# Software provided by him will be suitable or not suitable for the specific purposes
|
||||
# of the User, that the Software will meet all commercial and personal subjective
|
||||
# expectations of the User, that the Software will work properly, without technical
|
||||
# errors, quickly and uninterruptedly.
|
||||
#
|
||||
# Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
# to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
# damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
# or damage to data, property, etc.
|
||||
# ~~~~~~/licensing~~~~~~
|
||||
###
|
||||
# Справочник содержит соответствие имён классов исключений и http кодов ошибок.
|
||||
# И будет наполняться по мере использования шины в разных ситуациях.
|
||||
# Для исключения, имя которого ещё не указано в этом файле,
|
||||
# будет возвращаться http код 520 (Unknown Error).
|
||||
# согласование кодов ошибок происходит в https://docs.google.com/spreadsheets/d/1rvRyiSN-khuuRSJenwP5g7Q-ilbctOGCFgDfdM-abEk/edit#gid=1202937725
|
||||
DefaultException=520
|
||||
|
||||
com.ctc.wstx.exc.WstxParsingException=400
|
||||
|
||||
java.lang.NullPointerException=418
|
||||
java.security.AccessControlException=403
|
||||
|
||||
org.apache.cxf.interceptor.security.AuthenticationException=401
|
||||
javax.ws.rs.ForbiddenException=403
|
||||
org.apache.cxf.interceptor.security.AccessDeniedException=403
|
||||
|
||||
org.apache.camel.language.bean.RuntimeBeanExpressionException=500
|
||||
|
||||
ConnectorNotFound=424
|
||||
ru.entaxy.esb.system.common.exception.DefaultException=520
|
||||
ProfileNotFound=424
|
||||
|
||||
java.io.FileNotFoundException=404
|
@ -0,0 +1,39 @@
|
||||
###
|
||||
# ~~~~~~licensing~~~~~~
|
||||
# karaf-features
|
||||
# ==========
|
||||
# Copyright (C) 2020 - 2024 EmDev LLC
|
||||
# ==========
|
||||
# You may not use this file except in accordance with the License Terms of the Copyright
|
||||
# Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
# rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
# it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
# Software for commercial purposes to provide services to third parties.
|
||||
#
|
||||
# The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
# Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
# Software provided by him will be suitable or not suitable for the specific purposes
|
||||
# of the User, that the Software will meet all commercial and personal subjective
|
||||
# expectations of the User, that the Software will work properly, without technical
|
||||
# errors, quickly and uninterruptedly.
|
||||
#
|
||||
# Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
# to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
# damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
# or damage to data, property, etc.
|
||||
# ~~~~~~/licensing~~~~~~
|
||||
###
|
||||
# 1xx: Informational
|
||||
# 2xx: Success
|
||||
200=OK
|
||||
|
||||
# 3xx: Redirection
|
||||
# 4xx: Client Error
|
||||
400=Bad Request
|
||||
401=Unauthorized
|
||||
403=Forbidden
|
||||
418=I’m a teapot
|
||||
424=Failed Dependency
|
||||
|
||||
# 5xx: Server Error
|
||||
520=Unknown Error
|
@ -0,0 +1,214 @@
|
||||
/*-
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* error-handler
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
||||
* ==========
|
||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
||||
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
* rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
* it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
* Software for commercial purposes to provide services to third parties.
|
||||
*
|
||||
* The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
* Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
* Software provided by him will be suitable or not suitable for the specific purposes
|
||||
* of the User, that the Software will meet all commercial and personal subjective
|
||||
* expectations of the User, that the Software will work properly, without technical
|
||||
* errors, quickly and uninterruptedly.
|
||||
*
|
||||
* Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
* to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
* damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
* or damage to data, property, etc.
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
package ru.entaxy.esb.system.core.common.error.handler.interceptor;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.camel.CamelContext;
|
||||
import org.apache.camel.ProducerTemplate;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.cxf.binding.soap.SoapMessage;
|
||||
import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
|
||||
import org.apache.cxf.endpoint.Endpoint;
|
||||
import org.apache.cxf.interceptor.Fault;
|
||||
import org.apache.cxf.message.Exchange;
|
||||
import org.apache.cxf.message.Message;
|
||||
import org.apache.cxf.phase.Phase;
|
||||
import org.apache.cxf.transport.Conduit;
|
||||
import org.apache.cxf.transport.http.Headers;
|
||||
|
||||
/**
|
||||
*
|
||||
* Prepare soap response and send back to calling system.
|
||||
* Body can be simple string.
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* <bean id="handleOutFaultInterceptor" class="ru.entaxy.esb.system.core.common.error.handler.interceptor.EntaxyCxfFaultInterceptor">
|
||||
* <argument ref="current-context-id"/>
|
||||
* <argument value="direct:error_from_cxf"/>
|
||||
* <property name="wrap" value="true"/>
|
||||
* <property name="log" value="true"/>
|
||||
* </bean>
|
||||
*
|
||||
* append bean to cxf service description
|
||||
*
|
||||
* <camelcxf:outFaultInterceptors>
|
||||
* <ref component-id="handleOutFaultInterceptor"/>
|
||||
* </camelcxf:outFaultInterceptors>
|
||||
*
|
||||
*/
|
||||
public class EntaxyCxfFaultInterceptor extends AbstractSoapInterceptor {
|
||||
|
||||
private static final Log LOG = LogFactory.getLog(EntaxyCxfFaultInterceptor.class);
|
||||
|
||||
private final ProducerTemplate template;
|
||||
/**
|
||||
* endpoint to custom error handler route for
|
||||
* preparing soap response
|
||||
*/
|
||||
private final String endpointUri;
|
||||
/**
|
||||
* wrap with soap envelope
|
||||
*/
|
||||
private boolean wrap = false;
|
||||
/**
|
||||
* wrapper endpoint, can be custom
|
||||
*/
|
||||
private String wrapEndpoint = "direct-vm:soap-wrap";
|
||||
/**
|
||||
* 1 line logging:
|
||||
* <loggingKey> <errorMessage>
|
||||
*/
|
||||
private boolean log = false;
|
||||
/**
|
||||
* use service logging key
|
||||
*/
|
||||
private boolean loggingKeyUse = false;
|
||||
/**
|
||||
* default header with logging key
|
||||
*/
|
||||
private String loggingKeyHeader = "NTX_loggingKey";
|
||||
|
||||
public EntaxyCxfFaultInterceptor(CamelContext camelContext, String endpointUri) {
|
||||
super(Phase.POST_PROTOCOL);
|
||||
this.template = camelContext.createProducerTemplate();
|
||||
this.endpointUri = endpointUri;
|
||||
}
|
||||
|
||||
public void handleMessage(SoapMessage message) {
|
||||
LOG.debug("EntaxyCxfFaultInterceptor.handleMessage invocation");
|
||||
Map<String, Object> headers = prepareHeaders(message);
|
||||
logging(headers);
|
||||
String response = template.requestBodyAndHeaders(this.endpointUri, "", headers, String.class);
|
||||
if (wrap) {
|
||||
response = template.requestBodyAndHeaders(this.wrapEndpoint, response, headers, String.class);
|
||||
}
|
||||
LOG.debug("EntaxyCxfFaultInterceptor.handleMessage result from camel: \n" + response);
|
||||
sendErrorResponse(message, 200, response, headers);
|
||||
}
|
||||
|
||||
protected void logging(Map<String, Object> headers) {
|
||||
if (log) {
|
||||
Fault fault = (Fault) headers.get("NTX_ERROR_HANDLER_SoapFault");
|
||||
StringBuilder errorMessage = new StringBuilder();
|
||||
if (loggingKeyUse && headers.get(loggingKeyHeader) != null) {
|
||||
errorMessage.append(headers.get(loggingKeyHeader));
|
||||
errorMessage.append(" ");
|
||||
}
|
||||
errorMessage.append(fault.getCause().getMessage());
|
||||
LOG.error(errorMessage);
|
||||
}
|
||||
}
|
||||
|
||||
protected Map<String, Object> prepareHeaders(SoapMessage message) {
|
||||
Map<String, List<String>> inHeaders = Headers.getSetProtocolHeaders(message);
|
||||
|
||||
Map<String, Object> headers = new HashMap<>();
|
||||
Object value;
|
||||
for (Map.Entry<String, List<String>> e : inHeaders.entrySet()) {
|
||||
if (e.getValue() != null && e.getValue().size() == 1 && e.getValue().get(0) instanceof String) {
|
||||
value = e.getValue().get(0);
|
||||
} else {
|
||||
value = e.getValue();
|
||||
}
|
||||
headers.put(e.getKey(), value);
|
||||
}
|
||||
|
||||
Fault fault = (Fault) message.getContent(Exception.class);
|
||||
headers.put("NTX_ERROR_HANDLER_SoapFault", fault);
|
||||
return headers;
|
||||
}
|
||||
|
||||
|
||||
protected void sendErrorResponse(Message message, int responseCode, String ret, Map<String, Object> headers) {
|
||||
Message outMessage = getOutMessage(message);
|
||||
outMessage.put(Message.ENCODING, StandardCharsets.UTF_8.name());
|
||||
outMessage.put(Message.RESPONSE_CODE, responseCode);
|
||||
// Clear the response headers
|
||||
@SuppressWarnings("rawtypes")
|
||||
Map responseHeaders = (Map) outMessage.get(Message.PROTOCOL_HEADERS);
|
||||
if (responseHeaders != null) {
|
||||
responseHeaders.clear();
|
||||
}
|
||||
message.getInterceptorChain().abort();
|
||||
try {
|
||||
getConduit(message).prepare(outMessage);
|
||||
write(outMessage, ret);
|
||||
} catch (IOException e) {
|
||||
LOG.warn(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
protected Message getOutMessage(Message inMessage) {
|
||||
Exchange exchange = inMessage.getExchange();
|
||||
Message outMessage = exchange.getOutMessage();
|
||||
if (outMessage == null) {
|
||||
Endpoint endpoint = exchange.get(Endpoint.class);
|
||||
outMessage = endpoint.getBinding().createMessage();
|
||||
exchange.setOutMessage(outMessage);
|
||||
}
|
||||
outMessage.putAll(inMessage);
|
||||
return outMessage;
|
||||
}
|
||||
|
||||
protected Conduit getConduit(Message inMessage) throws IOException {
|
||||
Exchange exchange = inMessage.getExchange();
|
||||
Conduit conduit = exchange.getDestination().getBackChannel(inMessage);
|
||||
exchange.setConduit(conduit);
|
||||
return conduit;
|
||||
}
|
||||
|
||||
protected void write(Message outMessage, String ret) throws IOException {
|
||||
try (OutputStream os = outMessage.getContent(OutputStream.class);) {
|
||||
os.write(ret.getBytes(StandardCharsets.UTF_8));
|
||||
os.flush();
|
||||
}
|
||||
}
|
||||
|
||||
public void setWrap(boolean wrap) {
|
||||
this.wrap = wrap;
|
||||
}
|
||||
public void setWrapEndpoint(String wrapEndpoint) {
|
||||
this.wrapEndpoint = wrapEndpoint;
|
||||
}
|
||||
public void setLog(boolean log) {
|
||||
this.log = log;
|
||||
}
|
||||
public void setLoggingKeyUse(boolean loggingKeyUse) {
|
||||
this.loggingKeyUse = loggingKeyUse;
|
||||
}
|
||||
public void setLoggingKeyHeader(String loggingKeyHeader) {
|
||||
this.loggingKeyHeader = loggingKeyHeader;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,155 @@
|
||||
/*-
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* error-handler
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
||||
* ==========
|
||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
||||
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
* rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
* it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
* Software for commercial purposes to provide services to third parties.
|
||||
*
|
||||
* The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
* Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
* Software provided by him will be suitable or not suitable for the specific purposes
|
||||
* of the User, that the Software will meet all commercial and personal subjective
|
||||
* expectations of the User, that the Software will work properly, without technical
|
||||
* errors, quickly and uninterruptedly.
|
||||
*
|
||||
* Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
* to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
* damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
* or damage to data, property, etc.
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
package ru.entaxy.esb.system.core.common.error.handler.interceptor;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.camel.CamelContext;
|
||||
import org.apache.camel.ProducerTemplate;
|
||||
import org.apache.camel.component.cxf.common.message.CxfConstants;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.apache.cxf.binding.soap.SoapMessage;
|
||||
import org.apache.cxf.binding.soap.interceptor.AbstractSoapInterceptor;
|
||||
import org.apache.cxf.endpoint.Endpoint;
|
||||
import org.apache.cxf.interceptor.Fault;
|
||||
import org.apache.cxf.message.Exchange;
|
||||
import org.apache.cxf.message.Message;
|
||||
import org.apache.cxf.phase.Phase;
|
||||
import org.apache.cxf.transport.Conduit;
|
||||
import org.apache.cxf.transport.http.Headers;
|
||||
|
||||
import ru.entaxy.esb.system.common.util.SystemHeadersConstants;
|
||||
|
||||
public class HandleOutFaultInterceptor extends AbstractSoapInterceptor {
|
||||
private static final Log LOG = LogFactory.getLog(HandleOutFaultInterceptor.class);
|
||||
|
||||
private final ProducerTemplate template;
|
||||
private final String endpointUri;
|
||||
|
||||
public HandleOutFaultInterceptor(CamelContext camelContext, String endpointUri) {
|
||||
super(Phase.POST_PROTOCOL);
|
||||
this.template = camelContext.createProducerTemplate();
|
||||
this.endpointUri = endpointUri;
|
||||
}
|
||||
|
||||
|
||||
public void handleMessage(SoapMessage message) {
|
||||
LOG.debug("HandleOutFaultInterceptor.handleMessage invocation");
|
||||
// String inMessage = message.getExchange().getInMessage().getContent(String.class);
|
||||
// Fault fault = (Fault) message.getContent(Exception.class);
|
||||
Map headers = prepareHeaders(message);
|
||||
String response = template.requestBodyAndHeaders(this.endpointUri, "", headers, String.class);
|
||||
LOG.debug("HandleOutFaultInterceptor.handleMessage result from camel: \n" + response);
|
||||
sendErrorResponse(message, 200, response);
|
||||
}
|
||||
|
||||
private Map prepareHeaders(SoapMessage message) {
|
||||
Fault fault = (Fault) message.getContent(Exception.class);
|
||||
Map headers = new HashMap();
|
||||
headers.put("NTX_ERROR_HANDLER_SoapFault", fault);
|
||||
// headers.put("ERROR_HANDLER_EXCEPTION", fault.getCause());
|
||||
// headers.put("NTX_ERROR_HANDLER_ExceptionClass", fault.getCause().getClass().getName());
|
||||
// headers.put("NTX_ERROR_HANDLER_ExceptionMessage", fault.getCause().getMessage());
|
||||
headers.put(CxfConstants.OPERATION_NAME, getOperationName(message));
|
||||
try {
|
||||
addSystemHeaders(message, headers);
|
||||
} catch (Exception e) {
|
||||
LOG.info("Unable to add source system information to headers in HandleOutFaultInterceptor");
|
||||
}
|
||||
return headers;
|
||||
}
|
||||
|
||||
private void addSystemHeaders(SoapMessage message, Map headers) {
|
||||
Message inMessage = message.getExchange().getInMessage();
|
||||
Map<String, List<String>> inHeaders = Headers.getSetProtocolHeaders(inMessage);
|
||||
headers.put(SystemHeadersConstants.HEADER_SYSTEM_NAME,
|
||||
inHeaders.get(SystemHeadersConstants.HEADER_SYSTEM_NAME).get(0));
|
||||
headers.put(SystemHeadersConstants.HEADER_SYSTEM_ID,
|
||||
inHeaders.get(SystemHeadersConstants.HEADER_SYSTEM_ID).get(0));
|
||||
}
|
||||
|
||||
private String getOperationName(SoapMessage message) {
|
||||
String operation = "";
|
||||
try {
|
||||
operation = message.getExchange().getBindingOperationInfo().getOperationInfo().getName().getLocalPart();
|
||||
} catch (Exception e) {
|
||||
LOG.error(e);
|
||||
}
|
||||
LOG.debug("operation name: " + operation);
|
||||
return operation;
|
||||
}
|
||||
|
||||
private void sendErrorResponse(Message message, int responseCode, String ret) {
|
||||
Message outMessage = getOutMessage(message);
|
||||
outMessage.put(Message.RESPONSE_CODE, responseCode);
|
||||
// Set the response headers
|
||||
Map responseHeaders = (Map) outMessage.get(Message.PROTOCOL_HEADERS);
|
||||
if (responseHeaders != null) {
|
||||
responseHeaders.clear();
|
||||
responseHeaders.put("CAMEL_ERROR", Arrays.asList(ret));
|
||||
}
|
||||
message.getInterceptorChain().abort();
|
||||
try {
|
||||
getConduit(message).prepare(outMessage);
|
||||
write(outMessage, ret);
|
||||
} catch (IOException e) {
|
||||
LOG.warn(e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
private Message getOutMessage(Message inMessage) {
|
||||
Exchange exchange = inMessage.getExchange();
|
||||
Message outMessage = exchange.getOutMessage();
|
||||
if (outMessage == null) {
|
||||
Endpoint endpoint = exchange.get(Endpoint.class);
|
||||
outMessage = endpoint.getBinding().createMessage();
|
||||
exchange.setOutMessage(outMessage);
|
||||
}
|
||||
outMessage.putAll(inMessage);
|
||||
return outMessage;
|
||||
}
|
||||
|
||||
private Conduit getConduit(Message inMessage) throws IOException {
|
||||
Exchange exchange = inMessage.getExchange();
|
||||
Conduit conduit = exchange.getDestination().getBackChannel(inMessage);
|
||||
exchange.setConduit(conduit);
|
||||
return conduit;
|
||||
}
|
||||
|
||||
private void write(Message outMessage, String ret) throws IOException {
|
||||
OutputStream os = outMessage.getContent(OutputStream.class);
|
||||
os.write(ret.getBytes(StandardCharsets.UTF_8));
|
||||
os.flush();
|
||||
os.close();
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
/*-
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* error-handler
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
||||
* ==========
|
||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
||||
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
* rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
* it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
* Software for commercial purposes to provide services to third parties.
|
||||
*
|
||||
* The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
* Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
* Software provided by him will be suitable or not suitable for the specific purposes
|
||||
* of the User, that the Software will meet all commercial and personal subjective
|
||||
* expectations of the User, that the Software will work properly, without technical
|
||||
* errors, quickly and uninterruptedly.
|
||||
*
|
||||
* Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
* to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
* damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
* or damage to data, property, etc.
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
package ru.entaxy.esb.system.core.common.error.handler.processor;
|
||||
|
||||
import org.apache.camel.Exchange;
|
||||
import org.apache.camel.Processor;
|
||||
import org.apache.camel.ProducerTemplate;
|
||||
|
||||
public class ErrorProcessor implements Processor {
|
||||
|
||||
@Override
|
||||
public void process(Exchange exchange) throws Exception {
|
||||
|
||||
String body = exchange.getIn().getBody(String.class);
|
||||
Exception cause = exchange.getProperty(Exchange.EXCEPTION_CAUGHT, Exception.class);
|
||||
exchange.getIn().setBody("ErrorProcessor: \n" + cause.getMessage());
|
||||
|
||||
ProducerTemplate template = exchange.getContext().createProducerTemplate();
|
||||
// template.send("xslt:xslt/CreateUniversalErrorPacket.xsl", exchange);
|
||||
template.send("direct-vm:commonErrorEndpoint", exchange);
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
/*-
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* error-handler
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
||||
* ==========
|
||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
||||
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
* rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
* it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
* Software for commercial purposes to provide services to third parties.
|
||||
*
|
||||
* The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
* Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
* Software provided by him will be suitable or not suitable for the specific purposes
|
||||
* of the User, that the Software will meet all commercial and personal subjective
|
||||
* expectations of the User, that the Software will work properly, without technical
|
||||
* errors, quickly and uninterruptedly.
|
||||
*
|
||||
* Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
* to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
* damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
* or damage to data, property, etc.
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
package ru.entaxy.esb.system.core.common.error.handler.util;
|
||||
|
||||
public class Timestamp {
|
||||
public String currentTimeMillis(String body) {
|
||||
return String.valueOf(System.currentTimeMillis());
|
||||
}
|
||||
|
||||
public String unixTime(String body) {
|
||||
return String.valueOf(System.currentTimeMillis() / 1000L);
|
||||
}
|
||||
}
|
@ -0,0 +1,482 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
|
||||
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
|
||||
xsi:schemaLocation="
|
||||
http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
|
||||
">
|
||||
|
||||
<cm:property-placeholder persistent-id="ru.entaxy.esb.error" update-strategy="reload">
|
||||
<cm:default-properties>
|
||||
<cm:property name="error.bus.system.id" value="-1"/>
|
||||
<cm:property name="error.bus.system.name" value="esb"/>
|
||||
<cm:property name="error.bus.always_at_source" value="false"/>
|
||||
<cm:property name="error.description.exception_message" value="true"/>
|
||||
<cm:property name="error.queue.name" value="error"/>
|
||||
<cm:property name="error.system.name" value="error"/>
|
||||
<cm:property name="error.asynch.stacktrace.show" value="true"/>
|
||||
<cm:property name="error.synch.stacktrace.show" value="false"/>
|
||||
<cm:property name="error.test-route.startup" value="false"/>
|
||||
</cm:default-properties>
|
||||
</cm:property-placeholder>
|
||||
|
||||
<cm:property-placeholder persistent-id="ru.entaxy.esb.error.code" update-strategy="reload"
|
||||
placeholder-prefix="$errorCode{">
|
||||
<cm:default-properties>
|
||||
<cm:property name="ru.entaxy.esb.system.common.exception.DefaultException" value="520"/>
|
||||
</cm:default-properties>
|
||||
</cm:property-placeholder>
|
||||
|
||||
<cm:property-placeholder persistent-id="ru.entaxy.esb.error.text" update-strategy="reload"
|
||||
placeholder-prefix="$errorText{">
|
||||
<cm:default-properties>
|
||||
<cm:property name="http-520" value="Unknown Error"/>
|
||||
</cm:default-properties>
|
||||
</cm:property-placeholder>
|
||||
|
||||
<cm:property-placeholder persistent-id="ru.entaxy.esb.error.severity" update-strategy="reload"
|
||||
placeholder-prefix="$errorSeverity{">
|
||||
<cm:default-properties>
|
||||
<cm:property name="FATAL" value="1"/>
|
||||
<cm:property name="ERROR" value="2"/>
|
||||
<cm:property name="WARN" value="3"/>
|
||||
<cm:property name="INFO" value="4"/>
|
||||
</cm:default-properties>
|
||||
</cm:property-placeholder>
|
||||
|
||||
<bean id="uuidGenerator" class="java.util.UUID" scope="prototype" factory-method="randomUUID"/>
|
||||
<bean id="timestamp" class="ru.entaxy.esb.system.core.common.error.handler.util.Timestamp"/>
|
||||
|
||||
<reference id="entaxy-broker" interface="org.apache.camel.Component"
|
||||
filter="(connection.name=entaxy-broker)"/>
|
||||
|
||||
<!-- <bean id="errorProcessor" class="ErrorProcessor"/>-->
|
||||
|
||||
<camelContext id="common-error-handler-context" errorHandlerRef="errorHandlerFailed"
|
||||
xmlns="http://camel.apache.org/schema/blueprint"
|
||||
xsi:schemaLocation="http://camel.apache.org/schema/blueprint http://camel.apache.org/schema/blueprint/camel-blueprint-3.4.5.xsd">
|
||||
|
||||
<!-- <errorHandler id="synchronousErrorHandler" redeliveryPolicyRef="noRedelivery"-->
|
||||
<!-- onPrepareFailureRef="errorProcessor"-->
|
||||
<!-- type="DeadLetterChannel" deadLetterUri="direct:syncErrorHandlerEndpoint" />-->
|
||||
<errorHandler id="commonErrorHandler" redeliveryPolicyRef="noRedelivery"
|
||||
type="DeadLetterChannel" deadLetterUri="direct-vm:commonErrorEndpoint"/>
|
||||
<errorHandler id="errorHandlerFailed" redeliveryPolicyRef="noRedelivery"
|
||||
type="DeadLetterChannel" deadLetterUri="direct:errorHandlerFailedEndpoint"/>
|
||||
<errorHandler id="loggingErrorHandler" redeliveryPolicyRef="noRedelivery"/>
|
||||
<!-- type="LoggingErrorHandler" logName="errorHandlerCrash"/>-->
|
||||
<redeliveryPolicyProfile id="noRedelivery" disableRedelivery="true"/>
|
||||
|
||||
<route id="error-handler-test-route" errorHandlerRef="commonErrorHandler"
|
||||
autoStartup="{{error.test-route.startup}}">
|
||||
<from uri="timer:test-route?repeatCount=1"/>
|
||||
<log message="error handler test route started successfully\n\n" loggingLevel="INFO"/>
|
||||
|
||||
<setBody>
|
||||
<simple>
|
||||
<![CDATA[<packet xmlns="http://www.entaxy.ru/ExchangeTypes/1.0"><content>Oops... some test error occurred</content></packet>]]>
|
||||
</simple>
|
||||
</setBody>
|
||||
|
||||
<throwException exceptionType="java.lang.IllegalArgumentException" message="Test exception thrown"/>
|
||||
</route>
|
||||
|
||||
<!-- the route is designed to handle errors that occurred in other routes of this context -->
|
||||
<route id="error-handler-failed-route" errorHandlerRef="loggingErrorHandler">
|
||||
<from uri="direct:errorHandlerFailedEndpoint"/>
|
||||
<log message="Exception handled by ${routeId}: ${exception}
|
||||
${messageHistory}${exception.stacktrace}" loggingLevel="ERROR"/>
|
||||
<!-- TODO connect to alarm or monitoring system (send email, sms, etc) -->
|
||||
</route>
|
||||
|
||||
<route id="cxf-error-handler-route">
|
||||
<from uri="direct-vm:cxfErrorEndpoint"/>
|
||||
<log message="Exception handled by ${routeId}: ${header.NTX_ERROR_HANDLER_SoapFault}" loggingLevel="ERROR"/>
|
||||
<doTry>
|
||||
<to uri="direct-vm:commonErrorEndpoint"/>
|
||||
<doFinally>
|
||||
<to uri="xslt:xslt/WrapSoapEnvelope.xsl"/>
|
||||
</doFinally>
|
||||
</doTry>
|
||||
</route>
|
||||
|
||||
<route id="common-error-handler-route">
|
||||
<from uri="direct-vm:commonErrorEndpoint"/>
|
||||
<log message="Exception handled by ${routeId}: ${exception}
|
||||
on message ${headers.ENTAXY_MessageUUID}
|
||||
${messageHistory}${exception.stacktrace}" loggingLevel="ERROR"/>
|
||||
|
||||
<setBody>
|
||||
<constant><![CDATA[<empty/>]]></constant>
|
||||
</setBody>
|
||||
<to uri="xslt:xslt/DefaultResponse.xsl"/>
|
||||
<to uri="direct:prepareResponseCodeAndTextEndpoint"/>
|
||||
|
||||
<wireTap uri="direct:asynchronousErrorEndpoint"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${headers.NTX_ERROR_HANDLER_GenerateResponseEndpoint} != null</simple>
|
||||
<toD uri="direct-vm:${headers.NTX_ERROR_HANDLER_GenerateResponseEndpoint}"/>
|
||||
</when>
|
||||
<when>
|
||||
<simple>${headers.NTX_ERROR_HANDLER_SYNC_TYPE} == "application/json"</simple>
|
||||
<to uri="direct:synchronousJSONErrorEndpoint"/>
|
||||
</when>
|
||||
<otherwise>
|
||||
<to uri="direct:synchronousErrorEndpoint"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
|
||||
<!-- Remove headers before response -->
|
||||
<removeHeaders pattern="*"/>
|
||||
</route>
|
||||
|
||||
<route id="prepare-response-code-and-text-route">
|
||||
<from uri="direct:prepareResponseCodeAndTextEndpoint"/>
|
||||
<setHeader name="NTX_ERROR_HANDLER_asynch_Stacktrace">
|
||||
<simple>${properties:error.asynch.stacktrace.show}</simple>
|
||||
</setHeader>
|
||||
<setHeader name="NTX_ERROR_HANDLER_synch_Stacktrace">
|
||||
<simple>${properties:error.synch.stacktrace.show}</simple>
|
||||
</setHeader>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${exception} != null</simple>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ExceptionClass">
|
||||
<simple resultType="String">${exception.class.name}</simple>
|
||||
</setHeader>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ExceptionMessage">
|
||||
<simple resultType="String">${exception.message}</simple>
|
||||
</setHeader>
|
||||
<when>
|
||||
<simple>
|
||||
${header.NTX_ERROR_HANDLER_asynch_Stacktrace} == "true" || ${header.NTX_ERROR_HANDLER_synch_Stacktrace} == "true"
|
||||
</simple>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Stacktrace">
|
||||
<simple>${exception.stacktrace}</simple>
|
||||
</setHeader>
|
||||
</when>
|
||||
</when>
|
||||
<when>
|
||||
<simple>${header.NTX_ERROR_HANDLER_SoapFault} != null</simple>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ExceptionClass">
|
||||
<simple resultType="String">${header.NTX_ERROR_HANDLER_SoapFault.cause.class.name}</simple>
|
||||
</setHeader>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ExceptionMessage">
|
||||
<simple resultType="String">${header.NTX_ERROR_HANDLER_SoapFault.cause.message}</simple>
|
||||
</setHeader>
|
||||
<when>
|
||||
<simple>
|
||||
${header.NTX_ERROR_HANDLER_asynch_Stacktrace} == "true" || ${header.NTX_ERROR_HANDLER_synch_Stacktrace} == "true"
|
||||
</simple>
|
||||
<setProperty name="bodyHolder">
|
||||
<simple>${body}</simple>
|
||||
</setProperty>
|
||||
<bean beanType="org.apache.commons.lang3.exception.ExceptionUtils" method="getStackTrace(${header.NTX_ERROR_HANDLER_SoapFault.cause})"/>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Stacktrace">
|
||||
<simple>${body}</simple>
|
||||
</setHeader>
|
||||
<setBody>
|
||||
<simple>${exchangeProperty.bodyHolder}</simple>
|
||||
</setBody>
|
||||
</when>
|
||||
</when>
|
||||
<otherwise>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ExceptionClass">
|
||||
<simple resultType="String">ru.entaxy.esb.system.common.exception.DefaultException</simple>
|
||||
</setHeader>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ExceptionMessage">
|
||||
<simple resultType="String">Something wrong</simple>
|
||||
</setHeader>
|
||||
</otherwise>
|
||||
</choice>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${header.NTX_ERROR_HANDLER_ExceptionClass}</simple>
|
||||
<doTry>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ResponseCode">
|
||||
<simple>${properties:${header.NTX_ERROR_HANDLER_ExceptionClass}}</simple>
|
||||
</setHeader>
|
||||
<doCatch>
|
||||
<exception>java.lang.Exception</exception>
|
||||
<log message="Exception code not set for class: ${header.NTX_ERROR_HANDLER_ExceptionClass}" loggingLevel="WARN"/>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ResponseCode">
|
||||
<simple>${properties:ru.entaxy.esb.system.common.exception.DefaultException}</simple>
|
||||
</setHeader>
|
||||
</doCatch>
|
||||
</doTry>
|
||||
</when>
|
||||
</choice>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${properties:error.description.exception_message} == "true"</simple>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ResponseText">
|
||||
<simple>${header.NTX_ERROR_HANDLER_ExceptionMessage}</simple>
|
||||
</setHeader>
|
||||
</when>
|
||||
<otherwise>
|
||||
<setHeader name="NTX_ERROR_HANDLER_ResponseText">
|
||||
<simple>${properties:${header.NTX_ERROR_HANDLER_ResponseCode}}</simple>
|
||||
</setHeader>
|
||||
</otherwise>
|
||||
</choice>
|
||||
|
||||
<log message="${exchangeProperty.CamelExceptionCaught}\n" loggingLevel="DEBUG"/>
|
||||
<log message="${routeId}: \n
|
||||
${header.NTX_ERROR_HANDLER_ExceptionClass} \n
|
||||
${header.NTX_ERROR_HANDLER_ResponseCode} ${header.NTX_ERROR_HANDLER_ResponseText}"
|
||||
loggingLevel="DEBUG"/>
|
||||
</route>
|
||||
|
||||
<route id="asynchronous-error-handler-route">
|
||||
<from uri="direct:asynchronousErrorEndpoint"/>
|
||||
<log message="${routeId}" loggingLevel="DEBUG"/>
|
||||
|
||||
<to uri="direct:prepareErrorPacketEndpoint"/>
|
||||
<removeHeaders pattern="NTX_ERROR_HANDLER_.+"/>
|
||||
|
||||
<!-- Send error packet to central error handling system -->
|
||||
<doTry>
|
||||
<toD uri="system:${properties:error.system.name}?exchangePattern=InOnly"/>
|
||||
<doCatch>
|
||||
<exception>java.lang.Exception</exception>
|
||||
<log message="${exception.message}" loggingLevel="DEBUG"/>
|
||||
<log message="${exception.stacktrace}" loggingLevel="TRACE"/>
|
||||
<toD uri="entaxy-broker:queue:entaxy.${properties:error.queue.name}?exchangePattern=InOnly"/>
|
||||
</doCatch>
|
||||
</doTry>
|
||||
|
||||
<!-- Send error packet back to the calling system -->
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${headers.X-SystemName} != "esb"</simple>
|
||||
<doTry>
|
||||
<toD uri="system:${headers.X-SystemName}?exchangePattern=InOnly"/>
|
||||
<doCatch>
|
||||
<exception>java.lang.Exception</exception>
|
||||
<log message="Can't deliver error packet to system: ${headers.X-SystemName}"
|
||||
loggingLevel="DEBUG"/>
|
||||
<log message="${exception.message}" loggingLevel="ERROR"/>
|
||||
<log message="${exception.stacktrace}" loggingLevel="DEBUG"/>
|
||||
</doCatch>
|
||||
</doTry>
|
||||
</when>
|
||||
</choice>
|
||||
</route>
|
||||
|
||||
<route id="prepare-error-packet-route">
|
||||
<from uri="direct:prepareErrorPacketEndpoint"/>
|
||||
<log message="${routeId}" loggingLevel="DEBUG"/>
|
||||
<to uri="direct:prepareErrorPacketHeadersEndpoint"/>
|
||||
|
||||
<setHeader name="ENTAXY_Source">
|
||||
<constant>esb</constant>
|
||||
</setHeader>
|
||||
|
||||
<log message="Before transformation \n${body}" loggingLevel="DEBUG"/>
|
||||
<to uri="xslt:xslt/UniversalErrorPacket.xsl"/>
|
||||
<log message="After transformation \n${body}" loggingLevel="DEBUG"/>
|
||||
|
||||
<setHeader name="ENTAXY_MessageUUID">
|
||||
<simple>${bean:uuidGenerator.toString}</simple>
|
||||
</setHeader>
|
||||
<setHeader name="ENTAXY_MessageType">
|
||||
<constant>ВыгрузкаДанныхКаноническийФормат</constant>
|
||||
</setHeader>
|
||||
<setHeader name="ENTAXY_ContentType">
|
||||
<constant>application/xml</constant>
|
||||
</setHeader>
|
||||
<setHeader name="CamelJms_IntMessageType">
|
||||
<constant>String</constant>
|
||||
</setHeader>
|
||||
<setHeader name="CamelJms_IntContentXsiType">
|
||||
<constant>xs:string</constant>
|
||||
</setHeader>
|
||||
</route>
|
||||
|
||||
<route id="prepare-error-packet-headers-route">
|
||||
<from uri="direct:prepareErrorPacketHeadersEndpoint"/>
|
||||
|
||||
<setHeader name="NTX_ERROR_HANDLER_CentralIntegrationDB">
|
||||
<simple>${properties:error.system.name}</simple>
|
||||
</setHeader>
|
||||
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${headers.ENTAXY_Source} != null && ${headers.ENTAXY_Source} != ""
|
||||
</simple>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Source">
|
||||
<simple>${headers.ENTAXY_Source}</simple>
|
||||
</setHeader>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Destination">
|
||||
<simple>${headers.ENTAXY_Source}</simple>
|
||||
</setHeader>
|
||||
</when>
|
||||
<when>
|
||||
<simple>${headers.NTX_SystemId} != null && ${headers.NTX_SystemId} != ""</simple>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Source">
|
||||
<simple>${headers.NTX_SystemId}</simple>
|
||||
</setHeader>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Destination">
|
||||
<simple>${headers.NTX_SystemId}</simple>
|
||||
</setHeader>
|
||||
</when>
|
||||
<when>
|
||||
<simple>${headers.X-SystemName} != null && ${headers.X-SystemName} != ""</simple>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Source">
|
||||
<simple>${headers.X-SystemName}</simple>
|
||||
</setHeader>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Destination">
|
||||
<simple>${headers.X-SystemName}</simple>
|
||||
</setHeader>
|
||||
</when>
|
||||
<otherwise>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Source">
|
||||
<constant>esb</constant>
|
||||
</setHeader>
|
||||
<setHeader name="X-SystemName">
|
||||
<constant>esb</constant>
|
||||
</setHeader>
|
||||
</otherwise>
|
||||
</choice>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${headers.X-SystemName} == null || ${headers.X-SystemName} == ""</simple>
|
||||
<setHeader name="X-SystemName">
|
||||
<constant>esb</constant>
|
||||
</setHeader>
|
||||
</when>
|
||||
</choice>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${headers.X-SystemId} == null || ${headers.X-SystemId} == ""</simple>
|
||||
<setHeader name="X-SystemId">
|
||||
<constant>-1</constant>
|
||||
</setHeader>
|
||||
</when>
|
||||
</choice>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${properties:error.bus.always_at_source} == "true"</simple>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Source">
|
||||
<constant>esb</constant>
|
||||
</setHeader>
|
||||
<setHeader name="X-SystemName">
|
||||
<constant>esb</constant>
|
||||
</setHeader>
|
||||
<setHeader name="X-SystemId">
|
||||
<constant>-1</constant>
|
||||
</setHeader>
|
||||
</when>
|
||||
</choice>
|
||||
|
||||
<setHeader name="NTX_ERROR_HANDLER_ErrorUUID">
|
||||
<simple>${bean:uuidGenerator.toString}</simple>
|
||||
</setHeader>
|
||||
<log message="Prepare error packet with eventUUID: ${headers.NTX_ERROR_HANDLER_ErrorUUID}"
|
||||
loggingLevel="ERROR"/>
|
||||
<setHeader name="NTX_ERROR_HANDLER_Timestamp">
|
||||
<simple>${bean:timestamp?method=currentTimeMillis}</simple>
|
||||
</setHeader>
|
||||
<when>
|
||||
<simple>${headers.NTX_ERROR_HANDLER_SeverityLevel} == null</simple>
|
||||
<setHeader name="NTX_ERROR_HANDLER_SeverityLevel">
|
||||
<constant>ERROR</constant>
|
||||
</setHeader>
|
||||
</when>
|
||||
</route>
|
||||
|
||||
<route id="synchronous-error-handler-route">
|
||||
<from uri="direct:synchronousErrorEndpoint"/>
|
||||
<setBody>
|
||||
<constant><![CDATA[<root/>]]></constant>
|
||||
</setBody>
|
||||
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${headers.operationName}</simple>
|
||||
<doTry>
|
||||
<toD uri="xslt:xslt/operation/${header.operationName}.xsl"/>
|
||||
<doCatch>
|
||||
<exception>java.lang.Exception</exception>
|
||||
<log message="${exception}" loggingLevel="TRACE"/>
|
||||
<to uri="xslt:xslt/DefaultResponse.xsl"/>
|
||||
</doCatch>
|
||||
</doTry>
|
||||
</when>
|
||||
<otherwise>
|
||||
<to uri="xslt:xslt/DefaultResponse.xsl"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
</route>
|
||||
|
||||
<route id="synchronous-json-error-handler-route">
|
||||
<from uri="direct:synchronousJSONErrorEndpoint"/>
|
||||
<choice>
|
||||
<when>
|
||||
<simple>${headers.operationName}</simple>
|
||||
<doTry>
|
||||
<toD uri="freemarker:ftl/${header.operationName}.ftl?interpolationSyntax=22&tagSyntax=2"/>
|
||||
|
||||
<doCatch>
|
||||
<exception>java.lang.Exception</exception>
|
||||
<log message="${exception}" loggingLevel="TRACE"/>
|
||||
<to uri="freemarker:ftl/DefaultResponse.ftl?contentCache=true&interpolationSyntax=22&tagSyntax=2"/>
|
||||
</doCatch>
|
||||
</doTry>
|
||||
</when>
|
||||
<otherwise>
|
||||
<to uri="freemarker:ftl/DefaultResponse.ftl?allowContextMapAll=true&contentCache=true"/>
|
||||
</otherwise>
|
||||
</choice>
|
||||
</route>
|
||||
|
||||
<route id="soap-wrap-route">
|
||||
<from uri="direct-vm:soap-wrap"/>
|
||||
<log loggingLevel="TRACE" message="wrap: ${body.class.name}\n${body}"/>
|
||||
<doTry>
|
||||
<convertBodyTo type="org.w3c.dom.Document"/>
|
||||
<doCatch>
|
||||
<exception>java.lang.Exception</exception>
|
||||
<!--keep silence-->
|
||||
</doCatch>
|
||||
</doTry>
|
||||
<setProperty name="message">
|
||||
<simple>${body}</simple>
|
||||
</setProperty>
|
||||
<setBody>
|
||||
<simple>${null}</simple>
|
||||
</setBody>
|
||||
<to uri="xslt:xslt/soapWrap.xsl?failOnNullBody=false"/>
|
||||
</route>
|
||||
|
||||
</camelContext>
|
||||
|
||||
</blueprint>
|
@ -0,0 +1,48 @@
|
||||
[#--
|
||||
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of
|
||||
the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all
|
||||
intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright
|
||||
Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited
|
||||
from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an
|
||||
"AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise
|
||||
that the
|
||||
Software provided by him will be suitable or not suitable for the
|
||||
specific purposes
|
||||
of the User, that the Software will meet all commercial and personal
|
||||
subjective
|
||||
expectations of the User, that the Software will work properly, without
|
||||
technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is
|
||||
not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses
|
||||
or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost
|
||||
earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
|
||||
--]
|
||||
{
|
||||
"status" : "[=headers.NTX_ERROR_HANDLER_ResponseCode]"
|
||||
[#if headers.NTX_ERROR_HANDLER_ResponseText?has_content]
|
||||
, "description" : "[=headers.NTX_ERROR_HANDLER_ResponseText]"
|
||||
[/#if]
|
||||
[#if headers.NTX_ERROR_HANDLER_synch_Stacktrace == "true" && headers.NTX_ERROR_HANDLER_Stacktrace?has_content]
|
||||
, "stacktrace" : "[=headers.NTX_ERROR_HANDLER_Stacktrace]"
|
||||
[/#if]
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
<xsl:stylesheet version="2.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.entaxy.ru/ExchangeTypes/1.0"
|
||||
>
|
||||
<xsl:output omit-xml-declaration="yes" indent="yes"/>
|
||||
|
||||
<xsl:param name="NTX_ERROR_HANDLER_ResponseCode"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_ResponseText"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_synch_Stacktrace"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_Stacktrace"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<response>
|
||||
<status>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_ResponseCode"/>
|
||||
</status>
|
||||
<xsl:if test="$NTX_ERROR_HANDLER_ResponseText">
|
||||
<description>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_ResponseText"/>
|
||||
</description>
|
||||
</xsl:if>
|
||||
<xsl:if test="$NTX_ERROR_HANDLER_synch_Stacktrace = 'true' and $NTX_ERROR_HANDLER_Stacktrace">
|
||||
<stacktrace>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_Stacktrace"/>
|
||||
</stacktrace>
|
||||
</xsl:if>
|
||||
</response>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,110 @@
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
<xsl:stylesheet version="2.0"
|
||||
xmlns="http://www.entaxy.ru/ServiceInterface/1.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
>
|
||||
|
||||
<xsl:output omit-xml-declaration="yes" indent="yes"/>
|
||||
|
||||
<xsl:param name="NTX_ERROR_HANDLER_CentralIntegrationDB"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_Destination"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_Source"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_ErrorUUID"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_Timestamp"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_ResponseCode"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_ResponseText"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_SeverityLevel"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_ExceptionClass"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_asynch_Stacktrace"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_Stacktrace"/>
|
||||
<xsl:param name="NTX_ERROR_HANDLER_EventName"/>
|
||||
<xsl:param name="ENTAXY_MessageUUID"/>
|
||||
<xsl:param name="ENTAXY_Source"/>
|
||||
<xsl:param name="ENTAXY_AcknowledgeMsgID"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<Message>
|
||||
<Header xmlns="http://www.entaxy.ru/ServiceInterface/1.0">
|
||||
<Format>http://www.entaxy.ru/ServiceInterface/1.0</Format>
|
||||
<CreationDate>2020-05-20T07:19:59</CreationDate>
|
||||
<AvailableVersion>1</AvailableVersion>
|
||||
</Header>
|
||||
<Body xmlns="http://www.entaxy.ru/ServiceInterface/1.0">
|
||||
<Справочник.События>
|
||||
<КлючевыеСвойства>
|
||||
<Ссылка>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_ErrorUUID"/>
|
||||
</Ссылка>
|
||||
</КлючевыеСвойства>
|
||||
<Description>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_ResponseText"/>
|
||||
</Description>
|
||||
<xsl:if test="$ENTAXY_MessageUUID">
|
||||
<MessageUUID>
|
||||
<xsl:value-of select="$ENTAXY_MessageUUID"/>
|
||||
</MessageUUID>
|
||||
</xsl:if>
|
||||
<xsl:if test="$ENTAXY_AcknowledgeMsgID">
|
||||
<TransportUUID>
|
||||
<xsl:value-of select="$ENTAXY_AcknowledgeMsgID"/>
|
||||
</TransportUUID>
|
||||
</xsl:if>
|
||||
<SeverityLevel>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_SeverityLevel"/>
|
||||
</SeverityLevel>
|
||||
<EventName>Packet.Validation</EventName>
|
||||
<Timestamp>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_Timestamp"/>
|
||||
</Timestamp>
|
||||
<ErrorCode>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_ResponseCode"/>
|
||||
</ErrorCode>
|
||||
<xsl:if test="$NTX_ERROR_HANDLER_ExceptionClass">
|
||||
<ErrorClass>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_ExceptionClass"/>
|
||||
</ErrorClass>
|
||||
</xsl:if>
|
||||
<xsl:if test="$NTX_ERROR_HANDLER_asynch_Stacktrace = 'true' and $NTX_ERROR_HANDLER_Stacktrace">
|
||||
<Context>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_Stacktrace"/>
|
||||
</Context>
|
||||
</xsl:if>
|
||||
<xsl:if test="$NTX_ERROR_HANDLER_Source">
|
||||
<MessageSource>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_Source"/>
|
||||
</MessageSource>
|
||||
</xsl:if>
|
||||
<xsl:if test="$ENTAXY_Source">
|
||||
<Source>
|
||||
<xsl:value-of select="$ENTAXY_Source"/>
|
||||
</Source>
|
||||
</xsl:if>
|
||||
</Справочник.События>
|
||||
</Body>
|
||||
</Message>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
|
||||
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:output omit-xml-declaration="yes" indent="yes"/>
|
||||
<xsl:template match="/">
|
||||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||
<soap:Body>
|
||||
<xsl:copy-of select="."/>
|
||||
</soap:Body>
|
||||
</soap:Envelope>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,36 @@
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
<xsl:stylesheet version="2.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.entaxy.ru/ExchangeTypes/1.0"
|
||||
>
|
||||
<xsl:import href="type/response.xsl"/>
|
||||
<xsl:output omit-xml-declaration="yes" indent="yes"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:call-template name="response"/>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,36 @@
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
<xsl:stylesheet version="2.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.entaxy.ru/ExchangeTypes/1.0"
|
||||
>
|
||||
<xsl:import href="type/response.xsl"/>
|
||||
<xsl:output omit-xml-declaration="yes" indent="yes"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:call-template name="response"/>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,36 @@
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
<xsl:stylesheet version="2.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.entaxy.ru/ExchangeTypes/1.0"
|
||||
>
|
||||
<xsl:import href="type/response.xsl"/>
|
||||
<xsl:output omit-xml-declaration="yes" indent="yes"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<xsl:call-template name="response"/>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
|
||||
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:import href="../DefaultResponse.xsl"/>
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
|
||||
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
<xsl:import href="../DefaultResponse.xsl"/>
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,41 @@
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
<xsl:stylesheet version="2.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
xmlns="http://www.entaxy.ru/ExchangeTypes/1.0"
|
||||
>
|
||||
<xsl:output omit-xml-declaration="yes" indent="yes"/>
|
||||
|
||||
<xsl:param name="NTX_ERROR_HANDLER_ResponseCode" select="'520'"/>
|
||||
|
||||
<xsl:template name="response">
|
||||
<response>
|
||||
<status>
|
||||
<xsl:value-of select="$NTX_ERROR_HANDLER_ResponseCode"/>
|
||||
</status>
|
||||
</response>
|
||||
</xsl:template>
|
||||
</xsl:stylesheet>
|
@ -0,0 +1,41 @@
|
||||
<!--
|
||||
~~~~~~licensing~~~~~~
|
||||
error-handler
|
||||
==========
|
||||
Copyright (C) 2020 - 2024 EmDev LLC
|
||||
==========
|
||||
You may not use this file except in accordance with the License Terms of the Copyright
|
||||
Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
Software for commercial purposes to provide services to third parties.
|
||||
|
||||
The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
Software provided by him will be suitable or not suitable for the specific purposes
|
||||
of the User, that the Software will meet all commercial and personal subjective
|
||||
expectations of the User, that the Software will work properly, without technical
|
||||
errors, quickly and uninterruptedly.
|
||||
|
||||
Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
or damage to data, property, etc.
|
||||
~~~~~~/licensing~~~~~~
|
||||
-->
|
||||
<xsl:stylesheet version="2.0"
|
||||
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
||||
|
||||
<xsl:output omit-xml-declaration="yes" indent="yes" method="xml" />
|
||||
|
||||
<xsl:param name="message"/>
|
||||
|
||||
<xsl:template match="/">
|
||||
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
|
||||
<soap:Body>
|
||||
<xsl:copy-of select="$message" />
|
||||
</soap:Body>
|
||||
</soap:Envelope>
|
||||
</xsl:template>
|
||||
|
||||
</xsl:stylesheet>
|
18
platform/runtime/core/error-handling/pom.xml
Normal file
18
platform/runtime/core/error-handling/pom.xml
Normal file
@ -0,0 +1,18 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>ru.entaxy.esb.platform.runtime</groupId>
|
||||
<artifactId>core</artifactId>
|
||||
<version>1.10.0</version>
|
||||
</parent>
|
||||
<groupId>ru.entaxy.platform.core</groupId>
|
||||
<artifactId>error-handling</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<name>ENTAXY :: PLATFORM :: CORE :: ERROR HANDLING</name>
|
||||
<description>ENTAXY :: PLATFORM :: CORE :: ERROR HANDLING</description>
|
||||
|
||||
<modules>
|
||||
<module>error-handler</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
Reference in New Issue
Block a user