Compare commits

...

2 Commits

Author SHA1 Message Date
a8686ddca4 Merge pull request '- change version on 1.8' (#4) from new_version into master
Reviewed-on: #4
2021-09-13 08:02:49 +00:00
094a3fe67f - change version on 1.8
- add docker-compose
- update entaxy
2021-09-10 22:42:19 +03:00
77 changed files with 2561 additions and 854 deletions

147
README.md
View File

@ -8,150 +8,3 @@ Detailed documentation: [system description](documentation/entaxy_main.adoc).\
Installation instructions: [installation](documentation/installation/installation-table-of-contents.ru.adoc).\
Instructions for running tests for the universal
service: [tests](documentation/connectors/uniform-exchange-service/tests/postman.adoc).
- **extras** - additional esb modules(Developed independently, installed separately.)
- **1c** - module for working with 1C
- **1c-exchange-service** - (Alexey Knyazev, Borodina Valeria) message processing module, service 1C
- **1c-exchange-endpoint** - soap-service 1C
- **1c-exchange-service-endpoint** - service soap-service 1C
- **connector** - stored in and out connectors at 1c-exchange-endpoint and 1c-exchange-service-endpoint
- **support** - support routers for connectors
- **1c-storage** - (Alexey Knyazev) liquibase module creating the necessary tables in the database for 1C
- **nsi** - (Alexey Knyazev, Borodina Valeria) module for nsi
- **nsi-soap** - (Alexey Knyazev) module with soap nsi
- **nsi-storage** - (Alexey Knyazev) liquibase module creating the necessary tables in the database for nsi
- **big-packet** - (Alexey Knyazev) big packet service
- **bridge** - (Mikhail Moiseev) bridge between different esb using brokers
- **db-connector-parent** - (Alexey Knyazev) connector to intermediate database
- **db-connector** - (Alexey Knyazev) connector to intermediate database, converts xml into java objects and
then saves it to the database via jpa, and also back
- **db-hyperjaxb3-naming-extension** - (Alexey Knyazev) - plugin for the hyperjaxb3 plugin that makes more
human-readable names for xsd generated columns and tables
- **file-archive-connector** - (Borodina Valeria) module for working with systems that work through the file
system (collects messages within an hour and collects them into an archive)
- **file-service** - (Alexey Knyazev) service for sending files via esb
- **features** - there should generally be one feature that pulls up features for individual components. Having
installed it, we install entaxy in Karaf
- **platform** - Content of a base entaxy
- **runtime** - Components required for launch and work of the platform
- **base** - starts before the bundles with a low startlevel or even enters the custom build of Karaf
- **branding** - logo creation entaxy
- **connecting** - infrastructure of adapters and connections
- **core** - core entaxy
- **initializer** - Initialization infrastructure on first startup, including checking, creating and running
the required system connections
- **storage-initializer** - (Mikhail Moiseev) everything related to data storage
- **management** - artifact management
- **modules** - additional modules entaxy
- **uniform-service** - uniform service
- **uniform-service-exchange-endpoint** - uniform soap-service
- **connector** - stored in and out connectors
- **support** - support routers for connectors
- **system** - (Andrey Filippov) the product(the module will subsequently be removed)
- **auth** - (Sergey Kryuchkov, Mikhail Moiseev) everything related to authorization, including bundles for specific
authorization schemes, a general interceptor for CXF, etc.
- **common** - common libraries
- **core** - the core of the system
- **dispatcher** -
- **events** - (Mikhail Moiseev) work with topics, our implementation of message delivery
- **permission** - (Mikhail Moiseev) permission
- **template** - (Borodina Valeria) work with templates to create profiles, connectors, etc.
- **error-handler** - (Sergey Kryuchkov) error handling routes and helper classes.
- **deployer** - (Borodina Valeria) everything related to the process of processing data from a gui, converting it
to a blueprint and deploying this blueprint to esb
- **cellar-deployer** - (Borodina Valeria) deploy blueprint to karaf cluster using cellar
- **deployer-api** - (Mikhail Moiseev, Borodina Valeria) interface deployer
- **nexus-deployer** - (Borodina Valeria) deploy generated blueprint to nexus
- **file-system-deployer** - (Mikhail Moiseev) deploy generated blueprints to filesystem
- **registry** - (Mikhail Moiseev) product-defined registries should contain systems, system-groups, services for
specific registry implementations
- **systems** - description of the external system in ours
- **system-groups** - groups of systems, generalized by some attribute
- **profile-commons** - can be connected by a connector to a communication point
- **processes** -
- **service** - this is the point of communication. (something deployed under CXF)
- **connectors** - something that links the profile to the point of communication
- **system-management** - (Borodina Valeria) management of systems, profiles and system connectors
- **transformer** - implementation of data transformations gui -> blueprint
- **test** - tests for postman
Use English in the repository!
- in the commit comments
- int the code
## **Repository rules**
Commits to the master are undesirable, but if you cannot do otherwise, warn colleagues in the general chat with a description of the reason.
**short:**
Feature branching - any development is carried out in separate branches (we branch from master / release) and then we
make a pull request.
**full:**
**Branches:**
- *master* - develop branch, we do new branch from it and we merge into it
- *release-<version>* - stable release branch from it we do new branch in case of hotfix.
Release branch storage conditions:
1. customer pays for support
2. our support for this release has not expired
3. the customer did not switch to a new release
- *feature-branch* - development branches, stored until checked out and merged with the target branch\
Branch naming:
* issue number from youtrack
* especially meaningful short name of the functional
- *hotfix-branch* - branches for hotfixes, stored similarly *feature-branch*\
Branch naming - prefix "hotfix-" further:
* issue number from youtrack
* especially meaningful short name of the functional
**Pull request**
- **For fixes and minor improvements** we assign to reviewers: lead developer - *Alexey Knyazev* and *responsible
for functionality / interested parties*
responsible and interested can be found in the description of the project above.
- **For major improvements** to the persons described above, add *Andrey Filippov* and *Sergey Starovoitenkov*
If no more improvements are planned in the merge-directed branch, when creating a pull request, we mark **Close branch**
**Camel Headers**
Headers used for service purposes are named according to the HTTP manifest, i.e. with a capital letter through a dash.
Must start with "Entaxy-"
**Configuration File Naming Format**
**Connectors:**\
_<project_name>.<system_name>.<connector_type>.<connector_direction>_\
examples \
_project.1c.odata.in_\
_project.rest1.in_
**Project configs (specific functionality):**\
_<project_name>.<module_name>_\
examples\
_project.audit_\
_project2.informer_
**Extras modules:**\
_<manufacturer_prefix>.<module_name>_\
examples\
_ru.entaxy.eav_\
_org.apache.mdm_
**Platform:**\
_<manufacturer_prefix>.<platform_part>.<module_name>_\
examples\
_ru.entaxy.esb.system.management_\
_ru.entaxy.esb.system.bridge_

View File

@ -6,143 +6,3 @@
Подробная документация: [описание системы](documentation/entaxy_main.adoc).\
Инструкция по установке: [установка](documentation/installation/installation-table-of-contents.ru.adoc).\
Инструкция по запуску тестов для универсального коннектора: [тестирование](documentation/connectors/uniform-exchange-service/tests/postman.adoc).
- **extras** - дополнительные модули шины, которые не входят в базовую поставку шины.(Разрабатывается независимо, устанавливается отдельно.)
- **1с** - модуль рaботы с 1с
- **1c-exchange-service** - (Алексей Князев, Бородина Валерия) модуль обработки сообщений, сервис 1с
- **1c-exchange-endpoint** - выставленный soap-сервис 1с
- **1c-exchange-service-endpoint** - выставленный служебный soap-сервис 1с
- **connector** - хранятся входящий и исходящий коннектор к 1c-exchange-endpoint и 1c-exchange-service-endpoint
- **support** - маршруты, которые нужны для корректной работы коннектора
- **1с-storage** - (Алексей Князев) модуль liquibase создания необходимых таблиц в бд для 1с
- **nsi** - (Алексей Князев, Бородина Валерия) модуль обработки сообщений nsi
- **nsi-soap** - (Алексей Князев) модуль с выставленным soap nsi
- **nsi-storage** - (Алексей Князев) модуль liquibase создания необходимых таблиц в бд для nsi
- **big-packet** - (Алексей Князев) сервис больших пакетов
- **bridge** - (Моисеев Михаил) мост между шинами с использованием брокеров
- **db-connector-parent** - (Алексей Князев) коннектор к промежуточной базе
- **db-connector** - (Алексей Князев) коннектор к промежуточной базе, преобразует xml в java объекты и потом через jpa сохраняет в бд, и также обратно
- **db-hyperjaxb3-naming-extension** - (Алексей Князев) - плагин для плагина hyperjaxb3 который делает более человекочитаемые имена для генерируемых из xsd столбцов и таблиц
- **file-archive-connector** - (Бородина Валерия) модуль для работы с системами, которые работают через файловую систему(собирает сообщения в течение часа и собирает их в архив)
- **file-service** - (Алексей Князев) сервис отправки файлов через шину
- **features** - там вообще должна быть одна фича, которая подтягивает фичи по отдельным компонентам. Установив ее мы и устанавливаем продукт в караф
- **platform** - Содержимое типовой поставки
- **runtime** - Компоненты необходимые для запуска и работы платформы
- **base** - То, что стартует до остальных бандлов с низким startlevel или вообще входит в кастомную сборку Карафа
- **branding** - создание логотипа entaxy
- **connecting** - инфраструктура адаптеров и коннекций
- **core** - ядро entaxy
- **initializer** - Инфраструктра инициализации при первом запуске, в том числе проверка, создание и запуск необходимых системных коннекций
- **storage-initializer** - (Моисеев Михаил) все, что относится к хранению данных с общей точки зрения
- **management** - управление артефактами
- **modules** - дополнительные модули entaxy
- **uniform-service** - Универсальный сервис
- **uniform-service-exchange-endpoint** - выставленный универсальный soap-сервис
- **uniform-service-exchange-service-endpoint** - выставленный универсальный служебный soap-сервис
- **connector** - хранятся входящий и исходящий коннектор
- **support** - маршруты, которые нужны для корректной работы коннектора
- **system** - (Андрей Филиппов) собственно, продукт(модуль впоследствии будет удален)
- **auth** - (Сергей Крючков, Моисеев Михаил) все, что относится к авторизации, включая бандлы для конкретных схем авторизации, общий интерсептор для CXF и т.д.
- **common** - общие библиотеки
- **core** - ядро системы, что там будет, пока сложно конкретизировать, но что-то наверняка будет
- **dispatcher** -
- **events** - (Моисеев Михаил) работа с топиками, наша реализация доставки сообщений
- **permission** - (Моисеев Михаил) права доступа
- **template** - (Бородина Валерия) работа с шаблонами для создания профилей, коннекторов и т д
- **error-handler** - (Сергей Крючков) маршруты для обработки ошибок и вспомогательные классы.
- **deployer** - (Бородина Валерия) все, что относится к процессу обработки данных из gui, их преобразования в blueprint и деплоя этого blueprint в шину
- **cellar-deployer** - (Бородина Валерия) деплой blueprint в кластер карафа с помощью cellar
- **deployer-api** - (Моисеев Михаил, Бородина Валерия) интерфейс deployer
- **nexus-deployer** - (Бородина Валерия) деплой сгенерированных blueprint в nexus
- **file-system-deployer** - (Моисеев Михаил) деплой сгенерированных blueprint в файловую систему
- **registry** - (Моисеев Михаил) реестры, определенные в продукте, должна содержать systems, system-groups, services для реализаций конкретных реестров
- **systems** - описание внешней системы в нашей.
- **system-groups** - группы систем, обобщённые по какому-либо признаку
- **profile-commons** - может быть связан коннектором с точкой коммуникации.
- **processes** -
- **service** - это точка коммуникации. (что-то, развернутое под CXF)
- **connectors** - нечто, что связывает профиль с точкой коммуникации
- **system-management** - (Бородина Валерия) управление системами, профилями и коннекторами систем
- **transformer** - видимо, друг deploer'а, реализация трансформаций данных gui -> blueprint
- **test** - тесты для postman
В репозитории использовать английский!
- в комментариях к коммитам
- в коде
## **Правила работы с репозиторием**
Коммиты в мастер глубоко нежелательны, но если нельзя поступить по-другому, предупредите коллег в общем чате с описанием причины.
**Кратко:**
Feature branching - любая разработка ведётся в отдельных ветках(бранчуемся от master/release) после чего делаем pull request.
**Полно:**
**Ветки:**
- *master* - develop ветка от неё бранчуемся, в неё сливаемся
- *release-<version>* - стабильная релизная ветка от неё бранчуемся в случае hotfix-ов.
Условия хранения релизной ветки:
1. заказчик платит за поддержку
2. не истек срок нашей поддержки этого релиза
3. заказчик не произвел переход на новый релиз
- *feature-branch* - ветки разработок, хранится до проверки и слияния с целевой веткой
Именование веток:
* номером задачи из youtrack
* особо осмысленным кратким названием функционала
- *hotfix-branch* - ветки для hotfix-ов, хранится аналогично *feature-branch*
Именование веток - префикс "hotfix-" далее:
* номер задачи из youtrack
* особо осмысленное краткое название исправления
**Pull request**
- **Для фиксов и мелких доработок** назначаем в рецензенты: ведущего разработчика - *Алексея Князева* и *ответственных за функционал/заинтересованных лиц*
ответственных и заинтересованных можно посмотреть в описании проекта выше.
- **Для крупных доработок** к описанным выше лицам добавляем *Андрея Филиппова* и *Сергея Старовойтенкова*
Если не планируется больше доработок в ветке направленной на мерж, при создании pull request-а помечаем **Close branch**
**Camel заголовки**
Заголовки используемые для служебных целей именуются в соответствии с HTTP манифестом, т.е. с большой буквы через тире.
Начинаться должны с "Entaxy-"
**Формат именования конфигурационных файлов**
**Коннекторы:**\
_<project_name>.<system_name>.<connector_type>.<connector_direction>_\
примеры \
_project.1c.odata.in_\
_project.rest1.in_
**Проектные конфиги(специфическая функциональность):**\
_<project_name>.<module_name>_\
примеры\
_project.audit_\
_project2.informer_
**Extras модули:**\
_<manufacturer_prefix>.<module_name>_\
примеры\
_ru.entaxy.eav_\
_org.apache.mdm_
**Платформа:**\
_<manufacturer_prefix>.<platform_part>.<module_name>_\
примеры\
_ru.entaxy.esb.system.management_\
_ru.entaxy.esb.system.bridge_

View File

@ -0,0 +1,141 @@
## Docker compose для сборки и запуска Entaxy.
Запуск локального окружения с несколькими docker контейнерами:
* Караф
* Брокер
* СУБД
* Менеджер артефактов
Для начала клонируем репозиторий и переходим в корень проекта:
```bash
git clone <entaxy-framework-repository>
cd entaxy-framework
```
Далее у нас есть разные варианты хранения необходимых для установки Entaxy артефактов.
### 1. Самый простой способ: локальный репозиторий артефактов включаеться в образ карафа.
В корневом POM находится профиль для деплоя артефактов в образ карафа:
```xml
<profile>
<id>docker.file.repo</id>
<distributionManagement>
<snapshotRepository>
<id>entaxy-maven-repo-file</id>
<url>file:./distribution/entaxy-docker/karaf/repo</url>
</snapshotRepository>
</distributionManagement>
</profile>
```
Запускаем мевен деплой из корня проекта с этим профилем:
```bash
mvn deploy -P docker.file.repo
```
И после успешной сборки запускаем контейнеры из директории проекта, в которой находится docker-compose.yml:
```bash
cd ./distribution/entaxy-docker
docker-compose up
```
Или `docker compose up` для новых версий docker.
После запуска комманды мы будем видеть прогресс сборки образов, запуска контейнеров и логи запущенных приложений. Для остановки контейнеров достаточно нажать сочетание клавиш Ctrl+C или через команды запущенные из другого окна/вкладки терминала.
```bash
docker-compose stop
docker-compose start
```
После запуска контейнеров открываем новый терминал и заходим в караф:
```bash
docker-compose exec karaf /opt/apache-karaf/bin/client
```
или ssh клиент с дальнейшим вводом пароля (karaf)
```bash
ssh -p 8101 karaf@localhost
```
И в консоли карафа запускаем скрипт с установкой необходимых фич:
```bash
shell:source ./install.karaf
```
Ждём окончания деплоя в караф.
(Не всегда полная установка проходит с первой попытки и тогда помогает повторный запуск `source install.karaf`)
### 2. Reposilite: легковесный http репозиторий артефактов запускается в отдельном контейнере.
Комментируем в файле install.karaf строку начинающуюся с:
```bash
config:property-set -p org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories file:/opt/apache-karaf/repo
```
И убираем комментарий в строке начинающейся:
```bash
#config:property-set -p org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories http://maven-repo/snapshots
```
Запускаем контейнеры из директории проекта, в которой находится docker-compose.yml:
```bash
cd ./distribution/entaxy-docker
docker-compose up
```
Или `docker compose up` для новых версий docker.
После запуска комманды мы будем видеть прогресс сборки образов, запуска контейнеров и логи запущенных приложений. Для остановки контейнеров достаточно нажать сочетание клавиш Ctrl+C или через команды запущенные из другого окна/вкладки терминала.
```bash
docker-compose stop
docker-compose start
```
Для деплоя в reposilite добавляем учётные данные в конфигурацию мавена (`~/.m2/settings.xml`):
```xml
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<servers>
<server>
<id>entaxy-maven-repo</id>
<username>admin</username>
<password>aW7frfS9NPGrOnuNBMf9gyO0eXNRaCoOGtXHTcLU5akDFJ9ACiUJhgmZxlOKnLC5</password>
</server>
</servers>
</settings>
```
В корневом POM находится профиль для деплоя артефактов на сервер reposilite:
```xml
<profile>
<id>docker.reposilite</id>
<distributionManagement>
<snapshotRepository>
<id>entaxy-maven-repo</id>
<url>http://127.0.0.1:8081/snapshots</url>
</snapshotRepository>
</distributionManagement>
</profile>
```
Запускаем мевен деплой из корня проекта с этим профилем:
```bash
mvn deploy -P docker.reposilite
```
После успешной сборки открываем новый терминал и заходим в караф:
```bash
docker-compose exec karaf /opt/apache-karaf/bin/client
```
или ssh клиент с дальнейшим вводом пароля (karaf)
```bash
ssh -p 8101 karaf@localhost
```
И в консоли карафа запускаем скрипт с установкой необходимых фич:
```bash
shell:source ./install.karaf
```
Ждём окончания деплоя в караф.
(Не всегда полная установка проходит с первой попытки и тогда помогает повторный запуск `source install.karaf`)
Также есть вариант с nexus
После старта получаем пароль для admin через команду:
`docker-compose exec nexus cat /nexus-data/admin.password`.
Через админку нужно разрешить анонимный деплой или настроить доступы.
Урл для install.karaf
`http://nexus:8081/repository/maven-snapshots/@id=local-nexus@snapshots@noreleases`
Остановить все контейнеры
`docker-compose down`
Остановить и удалить хранилища с БД и репой
`docker-compose down -v`

View File

@ -0,0 +1,78 @@
version: '3'
services:
broker:
container_name: broker
image: vromero/activemq-artemis
restart: unless-stopped
environment:
- ARTEMIS_USERNAME=entaxy
- ARTEMIS_PASSWORD=entaxy
ports:
- 8161:8161
- 61616:61616
db-postgres:
container_name: db-postgres
# image: postgres
build: ./postgres
restart: unless-stopped
volumes:
- db-vol:/var/lib/postgresql/data
# - /etc/localtime:/etc/localtime:ro
environment:
- POSTGRES_USER=entaxy
- POSTGRES_PASSWORD=entaxy
- POSTGRES_DB=cache
ports:
- 5432:5432
# db-mssql:
# container_name: db-mssql
# image: mcr.microsoft.com/mssql/server:2017-CU8-ubuntu
# restart: unless-stopped
# environment:
# - SA_PASSWORD=123mssql
# - ACCEPT_EULA=Y
# - POSTGRES_DB=cache
# ports:
# - 1433:1433
# nexus:
# container_name: nexus
# image: sonatype/nexus3
# restart: unless-stopped
# volumes:
# - nexus-data:/nexus-data
# environment:
# - INSTALL4J_ADD_VM_PARAMS=-Xms2g -Xmx2g -XX:MaxDirectMemorySize=3g
# ports:
# - 8081:8081
maven-repo:
container_name: maven-repo
build: ./reposilite
# image: dzikoysk/reposilite
restart: unless-stopped
volumes:
- nexus-data:/app/data
ports:
- 8081:80
karaf:
# image: apache/karaf:4.2.9
build:
context: karaf/
container_name: karaf
# environment:
# - ESB_ENTAXY_VERSION=1.8.0
# - ESB_ENTAXY_MAVEN_REPO=http://nexus:8081/repository/maven-snapshots/@id=local-nexus@snapshots@noreleases
restart: unless-stopped
ports:
- 8101:8101
- 8181:8181
- 8080:8080
volumes:
db-vol:
driver: local
nexus-data:
driver: local

View File

@ -0,0 +1,13 @@
FROM apache/karaf:4.2.9
COPY repo /opt/apache-karaf/repo
COPY init /opt/apache-karaf/etc/init
COPY jre.properties /opt/apache-karaf/etc/
COPY org.apache.karaf.cellar.groups.cfg /opt/apache-karaf/etc/
COPY org.ops4j.datasource-entaxy.esb.cache.cfg /opt/apache-karaf/etc/
COPY org.ops4j.datasource-entaxy.esb.db_connector.cfg /opt/apache-karaf/etc/
COPY org.ops4j.datasource-entaxy.esb.storage.cfg /opt/apache-karaf/etc/
COPY ru.entaxy.esb.cfg /opt/apache-karaf/etc/
COPY ru.entaxy.esb.system.bridge.cfg /opt/apache-karaf/etc/
COPY install.karaf /opt/apache-karaf/

View File

@ -0,0 +1,54 @@
{
"connections": [
{
"nodeType": "connection",
"uuid": "connection-uuid-1",
"name": "entaxy-file",
"adapterName": "fileAdapter",
"platform": true,
"pathParameter": "data/shared",
"properties": {},
"options": {
"noop": true,
"fileName": "default.txt",
"allowNullBody": "true"
}
},
{
"nodeType": "connection",
"uuid": "connection-uuid-2",
"name": "entaxy-broker",
"adapterName": "artemisAdapter",
"platform": true,
"pathParameter": "queue:entaxy.default",
"properties": {
"url": "(tcp://broker:61616)",
"username": "entaxy",
"password": "entaxy",
"maxConnections": "20",
"maxSessionsPerConnection": "100"
},
"options": {}
},
{
"nodeType": "connection",
"uuid": "connection-uuid-3",
"name": "entaxy-db-storage",
"adapterName": "postgresqlAdapter",
"platform": true,
"pathParameter": "entaxy.esb.storage",
"properties": {},
"options": {}
},
{
"nodeType": "connection",
"uuid": "connection-uuid-4",
"name": "entaxy-db-cache",
"adapterName": "postgresqlAdapter",
"platform": true,
"pathParameter": "entaxy.esb.cache",
"properties": {},
"options": {}
}
]
}

View File

@ -0,0 +1,21 @@
ESB_ENTAXY_VERSION=1.8.0
echo "Maven repo=$ESB_ENTAXY_MAVEN_REPO, Version=$ESB_ENTAXY_VERSION"
# docker.file.repo
config:property-set -p org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories file:/opt/apache-karaf/repo@id=local-repo@snapshots@noreleases,https://repo1.maven.org/maven2@id=central,https://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases,https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases
# docker.reposilite
#config:property-set -p org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories http://maven-repo/releases@id=local-releases@update=always,http://maven-repo/snapshots@id=local-snapshots@snapshots@noreleases@update=always,https://repo1.maven.org/maven2@id=central,https://repository.apache.org/content/groups/snapshots-group@id=apache@snapshots@noreleases,https://oss.sonatype.org/content/repositories/ops4j-snapshots@id=ops4j.sonatype.snapshots.deploy@snapshots@noreleases
feature:repo-add mvn:ru.entaxy.esb/karaf-features/$ESB_ENTAXY_VERSION/xml/features
echo "feature:install entaxy-all"
feature:install entaxy-all
feature:repo-add mvn:ru.entaxy.esb.platform.runtime/base/$ESB_ENTAXY_VERSION/xml/features
echo "feature:install base"
feature:install base
feature:repo-add mvn:ru.entaxy.esb.platform.runtime/core/$ESB_ENTAXY_VERSION/xml/features
echo "feature:install core"
feature:install core
feature:repo-add mvn:ru.entaxy.esb.platform.runtime.modules/uniform-service/$ESB_ENTAXY_VERSION/xml/features
echo "feature:install entaxy-uniform-service"
feature:install entaxy-uniform-service

View File

@ -0,0 +1,725 @@
################################################################################
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
################################################################################
#
# Java platform package export properties.
#
# Standard package set. Note that:
# - javax.transaction* is exported with a mandatory attribute
jre-1.6=\
javax.accessibility, \
javax.activation;version="1.1", \
javax.activity, \
javax.annotation;version="1.0", \
javax.annotation.processing;version="1.0", \
javax.crypto, \
javax.crypto.interfaces, \
javax.crypto.spec, \
javax.imageio, \
javax.imageio.event, \
javax.imageio.metadata, \
javax.imageio.plugins.bmp, \
javax.imageio.plugins.jpeg, \
javax.imageio.spi, \
javax.imageio.stream, \
javax.jws, \
javax.jws.soap, \
javax.lang.model, \
javax.lang.model.element, \
javax.lang.model.type, \
javax.lang.model.util, \
javax.management, \
javax.management.loading, \
javax.management.modelmbean, \
javax.management.monitor, \
javax.management.openmbean, \
javax.management.relation, \
javax.management.remote, \
javax.management.remote.rmi, \
javax.management.timer, \
javax.naming, \
javax.naming.directory, \
javax.naming.event, \
javax.naming.ldap, \
javax.naming.spi, \
javax.net, \
javax.net.ssl, \
javax.print, \
javax.print.attribute, \
javax.print.attribute.standard, \
javax.print.event, \
javax.rmi, \
javax.rmi.CORBA, \
javax.rmi.ssl, \
javax.script, \
javax.security.auth, \
javax.security.auth.callback, \
javax.security.auth.kerberos, \
javax.security.auth.login, \
javax.security.auth.spi, \
javax.security.auth.x500, \
javax.security.cert, \
javax.security.sasl, \
javax.sound.midi, \
javax.sound.midi.spi, \
javax.sound.sampled, \
javax.sound.sampled.spi, \
javax.sql, \
javax.sql.rowset, \
javax.sql.rowset.serial, \
javax.sql.rowset.spi, \
javax.swing, \
javax.swing.border, \
javax.swing.colorchooser, \
javax.swing.event, \
javax.swing.filechooser, \
javax.swing.plaf, \
javax.swing.plaf.basic, \
javax.swing.plaf.metal, \
javax.swing.plaf.multi, \
javax.swing.plaf.synth, \
javax.swing.table, \
javax.swing.text, \
javax.swing.text.html, \
javax.swing.text.html.parser, \
javax.swing.text.rtf, \
javax.swing.tree, \
javax.swing.undo, \
javax.tools, \
javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
javax.xml, \
javax.xml.bind;version="2.2.1", \
javax.xml.bind.annotation;version="2.2.1", \
javax.xml.bind.annotation.adapters;version="2.2.1", \
javax.xml.bind.attachment;version="2.2.1", \
javax.xml.bind.helpers;version="2.2.1", \
javax.xml.bind.util;version="2.2.1", \
javax.xml.crypto, \
javax.xml.crypto.dom, \
javax.xml.crypto.dsig, \
javax.xml.crypto.dsig.dom, \
javax.xml.crypto.dsig.keyinfo, \
javax.xml.crypto.dsig.spec, \
javax.xml.datatype, \
javax.xml.namespace, \
javax.xml.parsers, \
javax.xml.soap;version="1.3", \
javax.xml.stream;version="1.2", \
javax.xml.stream.events;version="1.2", \
javax.xml.stream.util;version="1.2", \
javax.xml.transform, \
javax.xml.transform.dom, \
javax.xml.transform.sax, \
javax.xml.transform.stax, \
javax.xml.transform.stream, \
javax.xml.validation, \
javax.xml.ws;version="2.2", \
javax.xml.ws.handler;version="2.2", \
javax.xml.ws.handler.soap;version="2.2", \
javax.xml.ws.http;version="2.2", \
javax.xml.ws.soap;version="2.2", \
javax.xml.ws.spi;version="2.2", \
javax.xml.ws.wsaddressing;version="2.2", \
javax.xml.ws.spi.http;version="2.2", \
javax.xml.xpath, \
org.ietf.jgss, \
org.omg.CORBA, \
org.omg.CORBA_2_3, \
org.omg.CORBA_2_3.portable, \
org.omg.CORBA.DynAnyPackage, \
org.omg.CORBA.ORBPackage, \
org.omg.CORBA.portable, \
org.omg.CORBA.TypeCodePackage, \
org.omg.CosNaming, \
org.omg.CosNaming.NamingContextExtPackage, \
org.omg.CosNaming.NamingContextPackage, \
org.omg.Dynamic, \
org.omg.DynamicAny, \
org.omg.DynamicAny.DynAnyFactoryPackage, \
org.omg.DynamicAny.DynAnyPackage, \
org.omg.IOP, \
org.omg.IOP.CodecFactoryPackage, \
org.omg.IOP.CodecPackage, \
org.omg.Messaging, \
org.omg.PortableInterceptor, \
org.omg.PortableInterceptor.ORBInitInfoPackage, \
org.omg.PortableServer, \
org.omg.PortableServer.CurrentPackage, \
org.omg.PortableServer.POAManagerPackage, \
org.omg.PortableServer.POAPackage, \
org.omg.PortableServer.portable, \
org.omg.PortableServer.ServantLocatorPackage, \
org.omg.SendingContext, \
org.omg.stub.java.rmi, \
org.omg.stub.javax.management.remote.rmi, \
org.w3c.dom, \
org.w3c.dom.bootstrap, \
org.w3c.dom.css, \
org.w3c.dom.events, \
org.w3c.dom.html, \
org.w3c.dom.ls, \
org.w3c.dom.ranges, \
org.w3c.dom.stylesheets, \
org.w3c.dom.traversal, \
org.w3c.dom.views, \
org.w3c.dom.xpath, \
org.xml.sax, \
org.xml.sax.ext, \
org.xml.sax.helpers
# Standard package set. Note that:
# - javax.transaction* is exported with a mandatory attribute
jre-1.7=\
javax.accessibility, \
javax.activation;version="1.1", \
javax.activity, \
javax.annotation;version="1.0", \
javax.annotation.processing;version="1.0", \
javax.crypto, \
javax.crypto.interfaces, \
javax.crypto.spec, \
javax.imageio, \
javax.imageio.event, \
javax.imageio.metadata, \
javax.imageio.plugins.bmp, \
javax.imageio.plugins.jpeg, \
javax.imageio.spi, \
javax.imageio.stream, \
javax.jws, \
javax.jws.soap, \
javax.lang.model, \
javax.lang.model.element, \
javax.lang.model.type, \
javax.lang.model.util, \
javax.management, \
javax.management.loading, \
javax.management.modelmbean, \
javax.management.monitor, \
javax.management.openmbean, \
javax.management.relation, \
javax.management.remote, \
javax.management.remote.rmi, \
javax.management.timer, \
javax.naming, \
javax.naming.directory, \
javax.naming.event, \
javax.naming.ldap, \
javax.naming.spi, \
javax.net, \
javax.net.ssl, \
javax.print, \
javax.print.attribute, \
javax.print.attribute.standard, \
javax.print.event, \
javax.rmi, \
javax.rmi.CORBA, \
javax.rmi.ssl, \
javax.script, \
javax.security.auth, \
javax.security.auth.callback, \
javax.security.auth.kerberos, \
javax.security.auth.login, \
javax.security.auth.spi, \
javax.security.auth.x500, \
javax.security.cert, \
javax.security.sasl, \
javax.sound.midi, \
javax.sound.midi.spi, \
javax.sound.sampled, \
javax.sound.sampled.spi, \
javax.sql, \
javax.sql.rowset, \
javax.sql.rowset.serial, \
javax.sql.rowset.spi, \
javax.swing, \
javax.swing.border, \
javax.swing.colorchooser, \
javax.swing.event, \
javax.swing.filechooser, \
javax.swing.plaf, \
javax.swing.plaf.basic, \
javax.swing.plaf.metal, \
javax.swing.plaf.multi, \
javax.swing.plaf.synth, \
javax.swing.table, \
javax.swing.text, \
javax.swing.text.html, \
javax.swing.text.html.parser, \
javax.swing.text.rtf, \
javax.swing.tree, \
javax.swing.undo, \
javax.tools, \
javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
javax.xml, \
javax.xml.bind;version="2.2.1", \
javax.xml.bind.annotation;version="2.2.1", \
javax.xml.bind.annotation.adapters;version="2.2.1", \
javax.xml.bind.attachment;version="2.2.1", \
javax.xml.bind.helpers;version="2.2.1", \
javax.xml.bind.util;version="2.2.1", \
javax.xml.crypto, \
javax.xml.crypto.dom, \
javax.xml.crypto.dsig, \
javax.xml.crypto.dsig.dom, \
javax.xml.crypto.dsig.keyinfo, \
javax.xml.crypto.dsig.spec, \
javax.xml.datatype, \
javax.xml.namespace, \
javax.xml.parsers, \
javax.xml.soap;version="1.3", \
javax.xml.stream;version="1.2", \
javax.xml.stream.events;version="1.2", \
javax.xml.stream.util;version="1.2", \
javax.xml.transform, \
javax.xml.transform.dom, \
javax.xml.transform.sax, \
javax.xml.transform.stax, \
javax.xml.transform.stream, \
javax.xml.validation, \
javax.xml.xpath, \
org.ietf.jgss, \
org.omg.CORBA, \
org.omg.CORBA_2_3, \
org.omg.CORBA_2_3.portable, \
org.omg.CORBA.DynAnyPackage, \
org.omg.CORBA.ORBPackage, \
org.omg.CORBA.portable, \
org.omg.CORBA.TypeCodePackage, \
org.omg.CosNaming, \
org.omg.CosNaming.NamingContextExtPackage, \
org.omg.CosNaming.NamingContextPackage, \
org.omg.Dynamic, \
org.omg.DynamicAny, \
org.omg.DynamicAny.DynAnyFactoryPackage, \
org.omg.DynamicAny.DynAnyPackage, \
org.omg.IOP, \
org.omg.IOP.CodecFactoryPackage, \
org.omg.IOP.CodecPackage, \
org.omg.Messaging, \
org.omg.PortableInterceptor, \
org.omg.PortableInterceptor.ORBInitInfoPackage, \
org.omg.PortableServer, \
org.omg.PortableServer.CurrentPackage, \
org.omg.PortableServer.POAManagerPackage, \
org.omg.PortableServer.POAPackage, \
org.omg.PortableServer.portable, \
org.omg.PortableServer.ServantLocatorPackage, \
org.omg.SendingContext, \
org.omg.stub.java.rmi, \
org.omg.stub.javax.management.remote.rmi, \
org.w3c.dom, \
org.w3c.dom.bootstrap, \
org.w3c.dom.css, \
org.w3c.dom.events, \
org.w3c.dom.html, \
org.w3c.dom.ls, \
org.w3c.dom.ranges, \
org.w3c.dom.stylesheets, \
org.w3c.dom.traversal, \
org.w3c.dom.views, \
org.w3c.dom.xpath, \
org.xml.sax, \
org.xml.sax.ext, \
org.xml.sax.helpers, \
com.sun.nio.sctp
jre-1.8=\
javax.accessibility, \
javax.activity, \
javax.annotation;version="1.0", \
javax.annotation.processing;version="1.0", \
javax.crypto, \
javax.crypto.interfaces, \
javax.crypto.spec, \
javax.imageio, \
javax.imageio.event, \
javax.imageio.metadata, \
javax.imageio.plugins.bmp, \
javax.imageio.plugins.jpeg, \
javax.imageio.spi, \
javax.imageio.stream, \
javax.jws, \
javax.jws.soap, \
javax.lang.model, \
javax.lang.model.element, \
javax.lang.model.type, \
javax.lang.model.util, \
javax.management, \
javax.management.loading, \
javax.management.modelmbean, \
javax.management.monitor, \
javax.management.openmbean, \
javax.management.relation, \
javax.management.remote, \
javax.management.remote.rmi, \
javax.management.timer, \
javax.naming, \
javax.naming.directory, \
javax.naming.event, \
javax.naming.ldap, \
javax.naming.spi, \
javax.net, \
javax.net.ssl, \
javax.print, \
javax.print.attribute, \
javax.print.attribute.standard, \
javax.print.event, \
javax.rmi, \
javax.rmi.CORBA, \
javax.rmi.ssl, \
javax.script, \
javax.security.auth, \
javax.security.auth.callback, \
javax.security.auth.kerberos, \
javax.security.auth.login, \
javax.security.auth.spi, \
javax.security.auth.x500, \
javax.security.cert, \
javax.security.sasl, \
javax.sound.midi, \
javax.sound.midi.spi, \
javax.sound.sampled, \
javax.sound.sampled.spi, \
javax.sql, \
javax.sql.rowset, \
javax.sql.rowset.serial, \
javax.sql.rowset.spi, \
javax.swing, \
javax.swing.border, \
javax.swing.colorchooser, \
javax.swing.event, \
javax.swing.filechooser, \
javax.swing.plaf, \
javax.swing.plaf.basic, \
javax.swing.plaf.metal, \
javax.swing.plaf.multi, \
javax.swing.plaf.synth, \
javax.swing.table, \
javax.swing.text, \
javax.swing.text.html, \
javax.swing.text.html.parser, \
javax.swing.text.rtf, \
javax.swing.tree, \
javax.swing.undo, \
javax.tools, \
javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
javax.xml, \
javax.xml.bind;version="2.2.8", \
javax.xml.bind.annotation;version="2.2.8", \
javax.xml.bind.annotation.adapters;version="2.2.8", \
javax.xml.bind.attachment;version="2.2.8", \
javax.xml.bind.helpers;version="2.2.8", \
javax.xml.bind.util;version="2.2.8", \
javax.xml.crypto, \
javax.xml.crypto.dom, \
javax.xml.crypto.dsig, \
javax.xml.crypto.dsig.dom, \
javax.xml.crypto.dsig.keyinfo, \
javax.xml.crypto.dsig.spec, \
javax.xml.datatype, \
javax.xml.namespace, \
javax.xml.parsers, \
javax.xml.stream;version="1.2", \
javax.xml.stream.events;version="1.2", \
javax.xml.stream.util;version="1.2", \
javax.xml.transform, \
javax.xml.transform.dom, \
javax.xml.transform.sax, \
javax.xml.transform.stax, \
javax.xml.transform.stream, \
javax.xml.validation, \
javax.xml.ws;version="2.2", \
javax.xml.ws.handler;version="2.2", \
javax.xml.ws.handler.soap;version="2.2", \
javax.xml.ws.http;version="2.2", \
javax.xml.ws.soap;version="2.2", \
javax.xml.ws.spi;version="2.2", \
javax.xml.ws.wsaddressing;version="2.2", \
javax.xml.ws.spi.http;version="2.2", \
javax.xml.xpath, \
javafx.animation, \
javafx.application, \
javafx.beans, \
javafx.beans.binding, \
javafx.beans.property, \
javafx.beans.property.adapter, \
javafx.beans.value, \
javafx.collections, \
javafx.collections.transform, \
javafx.concurrent, \
javafx.css, \
javafx.embed.swing, \
javafx.embed.swt, \
javafx.event, \
javafx.fxml, \
javafx.geometry, \
javafx.print, \
javafx.scene, \
javafx.scene.canvas, \
javafx.scene.chart, \
javafx.scene.control, \
javafx.scene.control.cell, \
javafx.scene.effect, \
javafx.scene.image, \
javafx.scene.input, \
javafx.scene.layout, \
javafx.scene.media, \
javafx.scene.paint, \
javafx.scene.shape, \
javafx.scene.text, \
javafx.scene.transform, \
javafx.scene.web, \
javafx.stage, \
javafx.util, \
javafx.util.converter, \
netscape.javascript, \
org.ietf.jgss, \
org.omg.CORBA, \
org.omg.CORBA_2_3, \
org.omg.CORBA_2_3.portable, \
org.omg.CORBA.DynAnyPackage, \
org.omg.CORBA.ORBPackage, \
org.omg.CORBA.portable, \
org.omg.CORBA.TypeCodePackage, \
org.omg.CosNaming, \
org.omg.CosNaming.NamingContextExtPackage, \
org.omg.CosNaming.NamingContextPackage, \
org.omg.Dynamic, \
org.omg.DynamicAny, \
org.omg.DynamicAny.DynAnyFactoryPackage, \
org.omg.DynamicAny.DynAnyPackage, \
org.omg.IOP, \
org.omg.IOP.CodecFactoryPackage, \
org.omg.IOP.CodecPackage, \
org.omg.Messaging, \
org.omg.PortableInterceptor, \
org.omg.PortableInterceptor.ORBInitInfoPackage, \
org.omg.PortableServer, \
org.omg.PortableServer.CurrentPackage, \
org.omg.PortableServer.POAManagerPackage, \
org.omg.PortableServer.POAPackage, \
org.omg.PortableServer.portable, \
org.omg.PortableServer.ServantLocatorPackage, \
org.omg.SendingContext, \
org.omg.stub.java.rmi, \
org.omg.stub.javax.management.remote.rmi, \
org.w3c.dom, \
org.w3c.dom.bootstrap, \
org.w3c.dom.css, \
org.w3c.dom.events, \
org.w3c.dom.html, \
org.w3c.dom.ls, \
org.w3c.dom.ranges, \
org.w3c.dom.stylesheets, \
org.w3c.dom.traversal, \
org.w3c.dom.views, \
org.w3c.dom.xpath, \
org.xml.sax, \
org.xml.sax.ext, \
org.xml.sax.helpers, \
com.sun.nio.sctp, \
sun.nio.ch, \
com.sun.management
jre-9=\
javax.accessibility, \
javax.activation;version="1.2", \
javax.activity, \
javax.annotation;version="1.0", \
javax.annotation.processing;version="1.0", \
javax.crypto, \
javax.crypto.interfaces, \
javax.crypto.spec, \
javax.imageio, \
javax.imageio.event, \
javax.imageio.metadata, \
javax.imageio.plugins.bmp, \
javax.imageio.plugins.jpeg, \
javax.imageio.spi, \
javax.imageio.stream, \
javax.lang.model, \
javax.lang.model.element, \
javax.lang.model.type, \
javax.lang.model.util, \
javax.management, \
javax.management.loading, \
javax.management.modelmbean, \
javax.management.monitor, \
javax.management.openmbean, \
javax.management.relation, \
javax.management.remote, \
javax.management.remote.rmi, \
javax.management.timer, \
javax.naming, \
javax.naming.directory, \
javax.naming.event, \
javax.naming.ldap, \
javax.naming.spi, \
javax.net, \
javax.net.ssl, \
javax.print, \
javax.print.attribute, \
javax.print.attribute.standard, \
javax.print.event, \
javax.rmi, \
javax.rmi.CORBA, \
javax.rmi.ssl, \
javax.script, \
javax.security.auth, \
javax.security.auth.callback, \
javax.security.auth.kerberos, \
javax.security.auth.login, \
javax.security.auth.spi, \
javax.security.auth.x500, \
javax.security.cert, \
javax.security.sasl, \
javax.sound.midi, \
javax.sound.midi.spi, \
javax.sound.sampled, \
javax.sound.sampled.spi, \
javax.sql, \
javax.sql.rowset, \
javax.sql.rowset.serial, \
javax.sql.rowset.spi, \
javax.swing, \
javax.swing.border, \
javax.swing.colorchooser, \
javax.swing.event, \
javax.swing.filechooser, \
javax.swing.plaf, \
javax.swing.plaf.basic, \
javax.swing.plaf.metal, \
javax.swing.plaf.multi, \
javax.swing.plaf.synth, \
javax.swing.table, \
javax.swing.text, \
javax.swing.text.html, \
javax.swing.text.html.parser, \
javax.swing.text.rtf, \
javax.swing.tree, \
javax.swing.undo, \
javax.tools, \
javax.transaction; javax.transaction.xa; partial=true; mandatory:=partial, \
javax.xml, \
javax.xml.bind;version="2.3.0", \
javax.xml.bind.annotation;version="2.3.0", \
javax.xml.bind.annotation.adapters;version="2.3.0", \
javax.xml.bind.attachment;version="2.3.0", \
javax.xml.bind.helpers;version="2.3.0", \
javax.xml.bind.util;version="2.3.0", \
javax.xml.crypto, \
javax.xml.crypto.dom, \
javax.xml.crypto.dsig, \
javax.xml.crypto.dsig.dom, \
javax.xml.crypto.dsig.keyinfo, \
javax.xml.crypto.dsig.spec, \
javax.xml.datatype, \
javax.xml.namespace, \
javax.xml.parsers, \
javax.xml.stream;version="1.2", \
javax.xml.stream.events;version="1.2", \
javax.xml.stream.util;version="1.2", \
javax.xml.transform, \
javax.xml.transform.dom, \
javax.xml.transform.sax, \
javax.xml.transform.stax, \
javax.xml.transform.stream, \
javax.xml.validation, \
javax.xml.xpath, \
javafx.animation, \
javafx.application, \
javafx.beans, \
javafx.beans.binding, \
javafx.beans.property, \
javafx.beans.property.adapter, \
javafx.beans.value, \
javafx.collections, \
javafx.collections.transformation, \
javafx.concurrent, \
javafx.css, \
javafx.embed.swing, \
javafx.embed.swt, \
javafx.event, \
javafx.fxml, \
javafx.geometry, \
javafx.print, \
javafx.scene, \
javafx.scene.canvas, \
javafx.scene.chart, \
javafx.scene.control, \
javafx.scene.control.cell, \
javafx.scene.effect, \
javafx.scene.image, \
javafx.scene.input, \
javafx.scene.layout, \
javafx.scene.media, \
javafx.scene.paint, \
javafx.scene.shape, \
javafx.scene.text, \
javafx.scene.transform, \
javafx.scene.web, \
javafx.stage, \
javafx.util, \
javafx.util.converter, \
netscape.javascript, \
org.ietf.jgss, \
org.omg.CORBA, \
org.omg.CORBA_2_3, \
org.omg.CORBA_2_3.portable, \
org.omg.CORBA.DynAnyPackage, \
org.omg.CORBA.ORBPackage, \
org.omg.CORBA.portable, \
org.omg.CORBA.TypeCodePackage, \
org.omg.CosNaming, \
org.omg.CosNaming.NamingContextExtPackage, \
org.omg.CosNaming.NamingContextPackage, \
org.omg.Dynamic, \
org.omg.DynamicAny, \
org.omg.DynamicAny.DynAnyFactoryPackage, \
org.omg.DynamicAny.DynAnyPackage, \
org.omg.IOP, \
org.omg.IOP.CodecFactoryPackage, \
org.omg.IOP.CodecPackage, \
org.omg.Messaging, \
org.omg.PortableInterceptor, \
org.omg.PortableInterceptor.ORBInitInfoPackage, \
org.omg.PortableServer, \
org.omg.PortableServer.CurrentPackage, \
org.omg.PortableServer.POAManagerPackage, \
org.omg.PortableServer.POAPackage, \
org.omg.PortableServer.portable, \
org.omg.PortableServer.ServantLocatorPackage, \
org.omg.SendingContext, \
org.omg.stub.java.rmi, \
org.omg.stub.javax.management.remote.rmi, \
org.w3c.dom, \
org.w3c.dom.bootstrap, \
org.w3c.dom.css, \
org.w3c.dom.events, \
org.w3c.dom.html, \
org.w3c.dom.ls, \
org.w3c.dom.ranges, \
org.w3c.dom.stylesheets, \
org.w3c.dom.traversal, \
org.w3c.dom.views, \
org.w3c.dom.xpath, \
org.xml.sax, \
org.xml.sax.ext, \
org.xml.sax.helpers, \
com.sun.nio.sctp, \
sun.nio.ch, \
com.sun.management
jre-10=${jre-9}
jre-11=${jre-10}

View File

@ -0,0 +1,68 @@
#
# This property stores the cluster groups for which the local node is member
#
groups = default
#
# Filtering of the bundles in the default cluster group
#
default.bundle.whitelist.inbound=*
default.bundle.whitelist.outbound=*
default.bundle.blacklist.inbound=none
default.bundle.blacklist.outbound=none
#
# Filtering of the configurations in the default cluster group
#
default.config.whitelist.inbound=*
default.config.whitelist.outbound=*
default.config.blacklist.inbound=org.apache.felix.fileinstall*, \
org.apache.karaf.management, \
org.apache.karaf.shell, \
org.ops4j.pax.web, \
org.apache.aries.transaction, \
org.ops4j.pax.logging, \
org.apache.karaf.cellar.node, \
org.apache.karaf.cellar.groups.cfg
default.config.blacklist.outbound=org.apache.felix.fileinstall*, \
org.apache.karaf.management, \
org.apache.karaf.shell, \
org.ops4j.pax.web, \
org.apache.aries.transaction, \
org.ops4j.pax.logging, \
org.apache.karaf.cellar.node, \
org.apache.karaf.cellar.groups.cfg
#
# Filtering of the features in the default cluster group
#
default.feature.whitelist.inbound=*
default.feature.whitelist.outbound=*
default.feature.blacklist.inbound=none
default.feature.blacklist.outbound=none
#
# The following properties define the behavior to use when the node joins the cluster (the usage of the bootstrap
# synchronizer), per cluster group and per resource.
# The following values are accepted:
# disabled: means that the synchronizer doesn't sync cluster group and node states
# cluster: the synchronizer retrieves the state from the cluster group first (pull first), and push the node the state
# to the cluster group after (push after)
# node: the synchronizer push the node state to the cluster group (push first), and pull the state from the cluster group
# after (pull after)
# clusterOnly: the cluster is the "master", the node only retrieves and applies the cluster group state, nothing is
# pushed to the cluster group
# nodeOnly: the node is the "master", the node pushes his state to the cluster group, nothing is pulled from the
# cluster group
#
default.bundle.sync = disabled
default.config.sync = disabled
default.feature.sync = disabled
default.obr.urls.sync = disabled
default.balanced.servlet.sync = disabled
default.event.blacklist.inbound = none
default.event.blacklist.outbound = none
default.event.whitelist.inbound = subscription
default.event.whitelist.outbound = subscription

View File

@ -0,0 +1,10 @@
dataSourceName=entaxy.esb.cache
osgi.jdbc.driver.name=PostgreSQL JDBC Driver
serverName=db-postgres
portNumber=5432
databaseName=cache
user=entaxy
password=entaxy
pool=dbcp2
xa=true
jdbc.pool.maxTotal=100

View File

@ -0,0 +1,10 @@
dataSourceName=entaxy.esb.db_connector
osgi.jdbc.driver.name=PostgreSQL JDBC Driver
serverName=db-postgres
portNumber=5432
databaseName=db_connector_test
user=entaxy
password=entaxy
pool=dbcp2
xa=true
jdbc.pool.maxTotal=100

View File

@ -0,0 +1,10 @@
dataSourceName=entaxy.esb.storage
osgi.jdbc.driver.name=PostgreSQL JDBC Driver
serverName=db-postgres
portNumber=5432
databaseName=esb_entaxy
user=entaxy
password=entaxy
pool=dbcp2
xa=true
jdbc.pool.maxTotal=100

View File

@ -0,0 +1,20 @@
# адреса кластера брокеров сообщений, задаются:
# если tcp в скобках и через запятую: (tcp://192.168.122.81:61616,tcp://192.168.122.82:61616)
# если amqp с failover и в скобках через запятую: failover:(amqp://192.168.122.81:5672,amqp://192.168.122.82:5672)
common.jms.url=(tcp://broker:61616)
# логин для аутентификации в брокере сообщений
common.jms.username=entaxy
# пароль для аутентификации в брокере сообщений
common.jms.password=entaxy
# максимальное количество соединений
# подробнее можно почитать здесь: https://github.com/messaginghub/pooled-jms/blob/master/pooled-jms-docs/Configuration.md
common.jms.maxConnections=20
# максимальное количество сессий для каждого соединения
# подробнее можно почитать здесь: https://github.com/messaginghub/pooled-jms/blob/master/pooled-jms-docs/Configuration.md
common.jms.maxSessionsPerConnection=100
# наименование драйвера для инициализации фабрики планировщика quartz
org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
# название очереди, через которую ходят большие пакеты и файлы
common.bridge.file.queue.name=file.queue

View File

@ -0,0 +1,58 @@
# имя локальной шины(<node_name>)
jms.local=test1
# значение true - мост текущего узла работает в пассивном режиме,
# т.е. сообщения для соответствующего удалённого узла складываются в очередь на локальном брокере,
# из которой уже читает подключаемый узел (локальный брокер должен быть доступен для соединения)
# По умолчанию false - активный режим, запись сообщения идёт сразу в очередь на удалённом брокере,
# подключаемого узла (брокеры по обе стороны моста должны быть доступны)
jms.local.master=false
# имена удаленных шин, задается через запятую(<node_name>,<node_name>)
jms.remote.list=test2
# адреса брокера, задаются чеерез запятую(jms.url.<node_name>)
jms.url.test1=broker:61616
# логин для подключения к брокеру(jms.username.<node_name>)
jms.username.test1=entaxy
# пароль для подключения к брокеру(jms.password.<node_name>)
jms.password.test1=entaxy
# протокол для передачи сообщений внутри шины(jms.protocol.inner.esb.<node_name>)
# для корректной работы синхронного режима передачи сообщений: необходимо следить
# за одинаковым значением данного параметра в мосту и в самой шине(ru.entaxy.esb.cfg)
# возможные значения tcp, amqp
jms.protocol.inner.esb.test1=tcp
# протокол для передачи сообщений между шинами(jms.protocol.bridge.esb.<node_name>)
# для корректной работы синхронного режима передачи сообщений: необходимо следить
# за одинаковым значением данного параметра во всех подключенных шинах
# возможные значения tcp, amqp
jms.protocol.bridge.test1=amqp
# адреса брокера, задаются чеерез запятую(jms.url.<node_name>)
jms.url.test2=broker:61616
# логин для подключения к брокеру(jms.username.<node_name>)
jms.username.test2=entaxy
# пароль для подключения к брокеру(jms.password.<node_name>)
jms.password.test2=entaxy
# jms.master.<node_name> - выставляем в true, когда соответствующий узел настроен в пассивный режим,
# т.е. для него jms.local.master = true (брокер должен быть доступен для соединения)
jms.master.test2=true
# протокол для передачи сообщений внутри шины(jms.protocol.inner.esb.<node_name>)
# для корректной работы синхронного режима передачи сообщений: необходимо следить
# за одинаковым значением данного параметра в мосту и в самой шине(ru.entaxy.esb.cfg)
# возможные значения tcp, amqp
jms.protocol.inner.esb.test2=tcp
# протокол для передачи сообщений между шинами(jms.protocol.bridge.esb.<node_name>)
# для корректной работы синхронного режима передачи сообщений: необходимо следить
# за одинаковым значением данного параметра во всех подключенных шинах
# возможные значения tcp, amqp
jms.protocol.bridge.test2=amqp
# максимальное колчичество попыток отправить сообщение в очередь
# почитать подробнее можно в https://camel.apache.org/components/latest/eips/dead-letter-channel.html#deadLetterChannel-Redelivery
redelivery.maximumRedeliveries=-1
# время между попытками отправить сообщение в очередь
redelivery.redeliveryDelay=5000
# экспоненциальный рост времени между попытками отпрвки сообщений в очередь
redelivery.useExponentialBackOff=true
queue.sender.concurrentConsumers=1
queue.receiver.concurrentConsumers=1

View File

@ -0,0 +1,3 @@
FROM postgres
COPY create-db.sql /docker-entrypoint-initdb.d/

View File

@ -0,0 +1,4 @@
CREATE DATABASE esb_entaxy;
GRANT ALL PRIVILEGES ON DATABASE esb_entaxy TO entaxy;
CREATE DATABASE db_connector_test;
GRANT ALL PRIVILEGES ON DATABASE db_connector_test TO entaxy;

View File

@ -0,0 +1,3 @@
FROM dzikoysk/reposilite:2.9.23
COPY tokens.dat /app/data

View File

@ -0,0 +1,6 @@
!!org.panda_lang.reposilite.auth.TokenCollection
"tokens":
- "alias": "admin"
"path": "/"
"permissions": "m"
"token": "$2a$10$Xrurah6y4IOijq9EtFlAIe2wlhlUScggEBS88DriZDM9MCrAGwqdS"

View File

@ -448,12 +448,12 @@
"if (response.hasOwnProperty('listTemplate')) {",
" var list_template = response['listTemplate'];",
"",
" pm.test(\"Body matches nsi-in-connector\", function () {",
" pm.expect(pm.response.text()).to.include(\"nsi-in-connector\");",
" pm.test(\"Body matches uniform-service-in-connector\", function () {",
" pm.expect(pm.response.text()).to.include(\"uniform-service-in-connector\");",
" });",
" ",
" // if (response.some(item => item.templateName === 'nsi-in-connector')) {",
" pm.globals.set(\"template_name\", \"nsi-in-connector\");",
" // if (response.some(item => item.templateName === 'uniform-service-in-connector')) {",
" pm.globals.set(\"template_name\", \"uniform-service-in-connector\");",
" // }",
" ",
" pm.test(\"Body matches uniform-service-in-connector\", function () {",
@ -665,8 +665,8 @@
"if (response.hasOwnProperty('listConnector')) {",
" var list_template = response['listConnector'];",
"",
" pm.test(\"Body matches nsi-in-connector\", function () {",
" pm.expect(pm.response.text()).to.include(\"nsi-in-connector\");",
" pm.test(\"Body matches uniform-service-in-connector\", function () {",
" pm.expect(pm.response.text()).to.include(\"uniform-service-in-connector\");",
" });",
"}"
],

View File

@ -495,7 +495,7 @@ karaf@root()>
[source,bash]
----
feature:repo-add mvn:ru.entaxy.esb/karaf-features/1.0-SNAPSHOT/xml/features
feature:repo-add mvn:ru.entaxy.esb/karaf-features/1.8/xml/features
----
Затем запускается команда установки всех компонентов Entaxy

View File

@ -5,6 +5,6 @@ __Alternative languages:__
= Installation
Entaxy have different installation ways OOTB:
* xref:../../temp/entaxy-docker/ReadMe.md[Development docker installation]
* xref:../../distribution/entaxy-docker/ReadMe.md[Development docker installation]
* xref:../../features/README.md[Development standalone installation]
* xref:install.adoc[Enterprise environment installation]

View File

@ -5,6 +5,6 @@ __Alternative languages:__
= Установка
Entaxy из коробки имеет разные варианты установки:
* xref:local-installation/ReadMe.md[Установка для разработки в докер]
* xref:../../distribution/entaxy-docker/ReadMe.md[Установка для разработки в докер]
* xref:../../features/README.ru.md[Установка для разработки отдельных серверных приложений]
* xref:install.adoc[Установка на промышленное окружение]

View File

@ -20,7 +20,7 @@ cd entaxy-framework
<distributionManagement>
<snapshotRepository>
<id>entaxy-maven-repo-file</id>
<url>file:./temp/entaxy-docker/karaf/repo</url>
<url>file:./distribution/entaxy-docker/karaf/repo</url>
</snapshotRepository>
</distributionManagement>
</profile>
@ -31,7 +31,7 @@ mvn deploy -P docker.file.repo
```
И после успешной сборки запускаем контейнеры из директории проекта, в которой находится docker-compose.yml:
```bash
cd ./temp/entaxy-docker
cd ./distribution/entaxy-docker
docker-compose up
```
Или `docker compose up` для новых версий docker.
@ -68,7 +68,7 @@ config:property-set -p org.ops4j.pax.url.mvn org.ops4j.pax.url.mvn.repositories
Запускаем контейнеры из директории проекта, в которой находится docker-compose.yml:
```bash
cd ./temp/entaxy-docker
cd ./distribution/entaxy-docker
docker-compose up
```
Или `docker compose up` для новых версий docker.

View File

@ -25,90 +25,125 @@ Launch the server
karaf / karaf.bat
#### Step 2: DB Setup
#### Step 2: DB, artemis and artefact manager Setup
If use docker:
If use docker run Artemis
docker run --name entaxy_db -p 5432:5432 -e POSTGRES_PASSWORD=entaxy -e POSTGRES_USER=entaxy -e POSTGRES_DB=cache -d postgres
sudo docker run --rm -p 8161:8161 -p 61616:61616 -e ARTEMIS_USERNAME=entaxy -e ARTEMIS_PASSWORD=entaxy --name=artemis1 -d vromero/activemq-artemis
#### Step 3: Add features
And run postgres
sudo docker run --name entaxy_db -p 5432:5432 -v /etc/timezone:/etc/timezone:ro -e POSTGRES_PASSWORD=entaxy -e POSTGRES_USER=entaxy -e POSTGRES_DB=cache -d postgres
or mssql
sudo docker run --name mssql -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=entaxy' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-CU8-ubuntu
`By default project use two db: cache и esb_entaxy,`
`Name of db wrote in org.ops4j.datasource-entaxy.esb.*.cfg`
and run nexus, if do you want to use it(necessary for system-management to work)
sudo docker run -d -p 8081:8081 --name nexus sonatype/nexus3
Now we look at the admin password through the command:
docker exec nexus cat /nexus-data/admin.password
And then we go to the admin panel through the browser on http://localhost:8081/.
By default, it needs to create a user entaxy / entaxy and a maven repository called entaxy to work.
On Docker Toolbox, errors may occur due to insufficient memory, solved by changing the memory allocation at startup`
docker run -d -p 8081:8081 --name nexus -e INSTALL4J_ADD_VM_PARAMS="-Xms2g -Xmx2g -XX:MaxDirectMemorySize=3g" sonatype/nexus3
#### Step 3: Preparing and launching karaf
Copy the following files from the entaxy-framework\features\src\main\cfg\ repository to etc karaf
jre.properties
org.apache.karaf.cellar.groups.cfg
Also, the local nexus repository must be added to the standard repositories in the file org.ops4j.pax.url.mvn.cfg property org.ops4j.pax.url.mvn.repositories.`
`The user and the name of the repository are specified in the ru.entaxy.esb.deployer.nexus.cfg configuration file.`
Running Apache Karaf 4.x or newer
karaf
Or starting karaf with cleaning to its original state
karaf clean
## Step 4: Installing all features in one go using the karaf command line
shell:source <project-directory>/entaxy-framework/features/src/main/script/install.karaf
- After that you need to check the configurations of connections to the database in the files org.ops4j.datasource-entaxy.esb. *. Cfg
- Check the address of the broker in the file ru.entaxy.esb.cfg property ru.entaxy.esb.jms.url
- Check broker address in init/entaxy-platform-connections.json file "name": "entaxy-broker" connection in which property url
- Replace org.apache.karaf.cellar.groups.cfg file
#### Step 4a: Add features
Add features required
feature:repo-add mvn:ru.entaxy.esb/karaf-features/LATEST/xml/features
feature:install liquibase-updater
feature:install entaxy-esb-api
feature:repo-add mvn:ru.entaxy.esb/karaf-features/$ESB_ENTAXY_VERSION/xml/features
Install nsi
Install entaxy
feature:install nsi
feature:install entaxy-all
Install permission
Add base feature required
feature:install permission
feature:repo-add mvn:ru.entaxy.esb.platform.runtime/base/$ESB_ENTAXY_VERSION/xml/features
Install system-registry
Install base
feature:install system-registry
feature:install base
Install system-group-registry
Add core feature required
feature:install system-group-registry
feature:repo-add mvn:ru.entaxy.esb.platform.runtime/core/$ESB_ENTAXY_VERSION/xml/features
Install system-group-profile
Install core
install -s blueprint:mvn:ru.entaxy.esb.integration.esb.test.profiles/test-profiles/1.0-SNAPSHOT/xml/g_test
feature:install core
Install bridge
Add entaxy-uniform-service feature required
feature:install bridge
feature:repo-add mvn:ru.entaxy.esb.platform.runtime.modules/uniform-service/$ESB_ENTAXY_VERSION/xml/features
Install basic-auth
Install entaxy-uniform-service
feature:install basic-auth
Install events
feature:install events
feature:install entaxy-uniform-service
Useful comand for dev
bundle:watch mvn:ru.entaxy.esb/nsi-esb/1.0-SNAPSHOT
bundle:watch mvn:ru.entaxy.esb/esb/1.8
#### Step 4: Verify that your service is available using the following url in the browser.
#### Step 5: Verify that your service is available using the following url in the browser.
We assume you're using Karaf's default PAX Web configuration which uses port `8181` for http. If you would like to use another port or https, change the configuration in `${KARAF_HOME}/etc/org.ops4j.pax.web.cfg`. The immediate extension after the hostname and port ("cxf" in the below URL) is configured via the org.apache.cxf.osgi.cfg file (Please see [http://team.ops4j.org/wiki//display/paxweb/Pax+Web](http://team.ops4j.org/wiki//display/paxweb/Pax+Web) for more information on PAX Web).
[http://localhost:8181/cxf/xdto/NSI?wsdl](http://localhost:8181/cxf/xdto/NSI?wsdl)
[http://localhost:8181/cxf/system-management?wsdl](http://localhost:8181/cxf/system-management?wsdl)
#### Step 5: Start SOAPUI or Postman
#### Step 6: Start SOAPUI or Postman
POST request to
http://localhost:8181/cxf/xdto/NSI
http://localhost:8181/cxf/system-management
Send test request:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xdto="http://www.entaxy.ru/xdto_NSI">
<soap:Header/>
<soap:Body>
<xdto:GetMDMReferences/>
</soap:Body>
</soap:Envelope>
Response contains GUID, copy it and send request for get result:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xdto="http://www.entaxy.ru/xdto_NSI">
<soap:Header/>
<soap:Body>
<xdto:GetResult>
<xdto:RequestNumber>{GUID}</xdto:RequestNumber>
</xdto:GetResult>
</soap:Body>
</soap:Envelope>
#### Step 6: Check the file system and DB
Check the folder "target/inbox/" in the Karaf base directory to see that a message has arrived.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sys="http://www.entaxy.ru/system-management-service/">
<soapenv:Header/>
<soapenv:Body>
<sys:listTemplateRequest/>
</soapenv:Body>
</soapenv:Envelope>
### Forum, Help, etc
@ -143,7 +178,7 @@ The Camel riders!
or
newman run "Entaxy Integration Tests.postman_collection.json" --env-var base_url=http://192.168.122.83:8181/cxf
newman run "Entaxy Integration Tests.postman_collection.json" --env-var base_url=http://localhost:8181/cxf
#### CXF logging messages

View File

@ -8,7 +8,7 @@
Для установки фич понадобятся несколько шагов.
Использовать Java 8
Использовать Java 11+
### Шаг 1: Сборка проекта
@ -74,86 +74,67 @@
- После требуется проверить конфигурации соединений с бд в файлах org.ops4j.datasource-entaxy.esb.*.cfg
- Проверить адрес брокера в файле ru.entaxy.esb.cfg свойство ru.entaxy.esb.jms.url
- Проверить адреса брокеров для моста в файле ru.entaxy.esb.system.bridge.cfg свойства jms.url.*
- Проверить адрес брокера в файле init/entaxy-platform-connections.json коннекция "name": "entaxy-broker" в которой свойство url
- Заменить файл org.apache.karaf.cellar.groups.cfg
#### Шаг 4a: Или можно установить фичи вручную
Добавить необходимые фичи
Добавить необходимую фичу
feature:repo-add mvn:ru.entaxy.esb/karaf-features/LATEST/xml/features
feature:install liquibase-updater
feature:install entaxy-esb-api
feature:repo-add mvn:ru.entaxy.esb/karaf-features/$ESB_ENTAXY_VERSION/xml/features
Установить nsi
Установить entaxy
feature:install nsi
feature:install entaxy-all
Установить permission
Добавить необходимую фичу base
feature:install permission
feature:repo-add mvn:ru.entaxy.esb.platform.runtime/base/$ESB_ENTAXY_VERSION/xml/features
Установить реестр систем
Установить base
feature:install system-registry
feature:install base
Установить тестовый профиль
Добавить необходимую фичу core
install -s blueprint:mvn:ru.entaxy.esb.integration.esb.test.profiles/test-profiles/1.0-SNAPSHOT/xml/s_s1
feature:repo-add mvn:ru.entaxy.esb.platform.runtime/core/$ESB_ENTAXY_VERSION/xml/features
Установить реестр групп систем
Установить core
feature:install system-group-registry
feature:install core
Установить профиль группы систем
Добавить необходимую entaxy-uniform-service
install -s blueprint:mvn:ru.entaxy.esb.integration.esb.test.profiles/test-profiles/1.0-SNAPSHOT/xml/g_fzd
feature:repo-add mvn:ru.entaxy.esb.platform.runtime.modules/uniform-service/$ESB_ENTAXY_VERSION/xml/features
Установить мост
Install entaxy-uniform-service
feature:install bridge
feature:install entaxy-uniform-service
Установить сервис управления учётными записями
Useful comand for dev
feature:install basic-auth
Установить events
feature:install events
Для дев окружения может быть полезна команда watch
bundle:watch mvn:ru.entaxy.esb/nsi-esb/1.0-SNAPSHOT
bundle:watch mvn:ru.entaxy.esb/esb/1.8
#### Шаг 5: Проверка доступности сервиса через браузер, используя следующий адрес.
Подразумевается использование настроек по умолчанию для карафовского PAX Web, который для http настроен на порт `8181`. Если Вы желаете использовать другой порт или https, то необходимо поменять настройки в `${KARAF_HOME}/etc/org.ops4j.pax.web.cfg`. Непосредственное продолжение адреса после имени хоста и номера порта (в примере ниже `cxf`) можно настроить в файле `org.apache.cxf.osgi.cfg`. (Для более подробной информации по PAX Web перейдите по ссылке [http://team.ops4j.org/wiki/display/paxweb/Pax+Web](http://team.ops4j.org/wiki/display/paxweb/Pax+Web))
[http://localhost:8181/cxf/system-management?wsdl](http://localhost:8181/cxf/system-management?wsdl)
#### Шаг 6: Запуск SOAPUI или Postman
Отправка POST запроса на адрес
http://localhost:8181/cxf/xdto/NSI
http://localhost:8181/cxf/system-management
Тестовый запрос:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xdto="http://www.entaxy.ru/xdto_NSI">
<soap:Header/>
<soap:Body>
<xdto:GetMDMReferences/>
</soap:Body>
</soap:Envelope>
Ответ сожержит GUID, скопируйте его и отправьте для получения результата:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xdto="http://www.entaxy.ru/xdto_NSI">
<soap:Header/>
<soap:Body>
<xdto:GetResult>
<xdto:RequestNumber>{GUID}</xdto:RequestNumber>
</xdto:GetResult>
</soap:Body>
</soap:Envelope>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sys="http://www.entaxy.ru/system-management-service/">
<soapenv:Header/>
<soapenv:Body>
<sys:listTemplateRequest/>
</soapenv:Body>
</soapenv:Envelope>
## Автотесты
@ -170,12 +151,7 @@
#### Запуск нагрузочных тестов через Jmeter
В тестах прописана система s1, запросы направляются на 83 ноду
В тестах прописана система s1
* 1C-EXCHANGE_SEND_GET_ASK.jmx - запись и чтение с подтверждением последовательно
* 1C-EXCHANGE_SEND_GET_ASK_ASYNC.jmx - запись и чтение с подтверждением в параллельных потоках
Можно запускать с машины 192.168.122.76
cd /opt/jenkins/.jenkins/workspace/test_master/test/jmeter
/opt/apache-jmeter-5.2.1/bin/jmeter.sh -n -t ./1C-EXCHANGE_SEND_GET_ASK_ASYNC.jmx
* UNIFORM-SERVICE-CONNECTOR_SEND_GET_ACK.jmx - запись и чтение с подтверждением последовательно
* UNIFORM-SERVICE_SEND_GET_AСK_ASYNC.jmx - запись и чтение с подтверждением в параллельных потоках

View File

@ -90,21 +90,6 @@
<type>cfg</type>
<classifier>ru.entaxy.esb</classifier>
</artifact>
<artifact>
<file>target/cfg/ru.entaxy.esb.connector.1c.service.soap.passive.cfg</file>
<type>cfg</type>
<classifier>ru.entaxy.esb.connector.1c.service.soap.passive</classifier>
</artifact>
<artifact>
<file>target/cfg/ru.entaxy.esb.connector.1c.soap.passive.cfg</file>
<type>cfg</type>
<classifier>ru.entaxy.esb.connector.1c.soap.passive</classifier>
</artifact>
<artifact>
<file>target/cfg/ru.entaxy.esb.connector.1c.support.cfg</file>
<type>cfg</type>
<classifier>ru.entaxy.esb.connector.1c.support</classifier>
</artifact>
<artifact>
<file>target/cfg/ru.entaxy.esb.system.basic_auth.cfg</file>
<type>cfg</type>

View File

@ -1,47 +0,0 @@
###
# ~~~~~~licensing~~~~~~
# karaf-features
# ==========
# Copyright (C) 2020 - 2021 EmDev LLC
# ==========
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ~~~~~~/licensing~~~~~~
###
# максимальное количество попыток отправить сообщение в очередь из агрегатора
redelivery.maximumRedeliveries=2
# очередь для отправки сообщений, которые не смог отправить агрегатор в destination
redelivery.deadLetterQueue=revert.message.dead
# задается в mc, значение по умолчанию 10 минут
acknowledge.completion.timeout=600000
# настройка способа агрегирования через игнайт или бд
# Важно! следить за тем чтобы данный параметр был одинаковым во всем кластере
# варианты - igniteAggregationRepository, jdbcAggregationRepository (для всех бд кроме postgres), postgresAggregationRepository
# по умолчанию - jdbcAggregationRepository
acknowledge.aggregation.repository=jdbcAggregationRepository
# Поднимается endpoint /active_connector_test_consumer
# при выставленной настройке mode.dev=true
active.mode.dev=false
active.username=Администратор
active.password=
# валидация сообщения по wsdl
active.validation=false
# uuid шины, для отправки в активном режиме в систему от имени шины
bus.id=FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF
get.destination=
# параметр для тестирования активного коннектора
test.empty.rate=20

View File

@ -56,7 +56,7 @@ rm -rf $INSTALL_DIR/data/txlog/*
if test -f "$DIRNAME/version"; then
ESB_ENTAXY_VERSION=`cat $DIRNAME/version`
else
ESB_ENTAXY_VERSION=1.0-SNAPSHOT
ESB_ENTAXY_VERSION=1.8.0
fi
echo "Installing $ESB_ENTAXY_VERSION"

View File

@ -27,7 +27,7 @@ DIRNAME="$( cd "$(dirname "$0")" ; pwd -P )"
if test -f "$DIRNAME/version"; then
ESB_ENTAXY_VERSION=`cat $DIRNAME/version`
else
ESB_ENTAXY_VERSION=1.0-SNAPSHOT
ESB_ENTAXY_VERSION=1.8.0
fi
echo "Create patch version $ESB_ENTAXY_VERSION"

View File

@ -20,7 +20,7 @@
# ~~~~~~/licensing~~~~~~
###
# берет номер версии из файла version, если его нет то используется 1.0-SNAPSHOT
# берет номер версии из файла version, если его нет то используется 1.8
# если задан первый параметр чистит конфиги
DIRNAME="$( cd "$(dirname "$0")" ; pwd -P )"
@ -28,7 +28,7 @@ DIRNAME="$( cd "$(dirname "$0")" ; pwd -P )"
if test -f "$DIRNAME/version"; then
ESB_ENTAXY_VERSION=`cat $DIRNAME/version`
else
ESB_ENTAXY_VERSION=1.0-SNAPSHOT
ESB_ENTAXY_VERSION=1.8
fi
echo "Installing $ESB_ENTAXY_VERSION"

View File

@ -17,4 +17,109 @@
<modules>
<module>runtime</module>
</modules>
<profiles>
<profile>
<id>install-script</id>
<activation>
<file>
<exists>src/main/scripts/entaxy-platform.install</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>update-file-header</id>
<goals>
<goal>update-file-header</goal>
</goals>
<phase>process-sources</phase>
<configuration>
<organizationName>${license.organizationName}</organizationName>
<inceptionYear>${license.inceptionYear}</inceptionYear>
<projectName>${license.projectName}</projectName>
<copyrightOwners>${license.copyrightOwners}</copyrightOwners>
<licenseName>${license.licenseName}</licenseName>
<!-- plugin documentation recommends "true"
but we use "false" to look like Apache sources -->
<addJavaLicenseAfterPackage>false</addJavaLicenseAfterPackage>
<emptyLineAfterHeader>false</emptyLineAfterHeader>
<excludes>
<exclude>**/*.json</exclude>
</excludes>
<extraExtensions>
<!-- treat *.install files as *.properties -->
<install>properties</install>
</extraExtensions>
<ignoreNoFileToScan>true</ignoreNoFileToScan>
<keepBackup>true</keepBackup>
<processStartTag>${license.processStartTag}</processStartTag>
<processEndTag>${license.processEndTag}</processEndTag>
<sectionDelimiter>${license.sectionDelimiter}</sectionDelimiter>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!-- @TODO move plugin declaration to root/pom.xml -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/scripts</outputDirectory>
<resources>
<resource>
<directory>src/main/scripts</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-script</id>
<phase>verify</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>target/scripts/entaxy-platform.install</file>
<type>install</type>
<classifier>entaxy-platform</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>

View File

@ -18,6 +18,7 @@
# ~~~~~~/licensing~~~~~~
###
welcome = \
\r\n\
\u001B[36m :::::::::: :::: ::: ::::::::::: ::: ::: ::: ::: ::: \u001B[0m\r\n\
\u001B[36m :+: :+:+: :+: :+: :+: :+: :+: :+: :+: :+: \u001B[0m\r\n\
\u001B[36m +:+ :+:+:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ +:+ \u001B[0m\r\n\

View File

@ -26,52 +26,62 @@
xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
<repository>mvn:org.apache.camel.karaf/apache-camel/${camel.version}/xml/features</repository>
<repository>mvn:ru.entaxy.esb.distribution/entaxy-karaf-features/${project.version}/xml/features</repository>
<feature name="base" version="${project.version}">
<feature version="${project.version}">connecting</feature>
<feature name="entaxy-platform-base" version="${project.version}" start-level="70">
<feature version="${project.version}">entaxy-branding</feature>
<feature version="${project.version}">connecting</feature>
</feature>
<feature name="entaxy-branding" version="${project.version}" start-level="70">
<configfile finalname="${karaf.etc}/branding.properties" override="true">
mvn:ru.entaxy.esb.platform.runtime.base/branding/${project.version}/properties/branding
</configfile>
</feature>
<feature name="connecting" version="${project.version}">
<feature name="connecting" version="${project.version}" start-level="70">
<feature version="${project.version}">generator</feature>
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting/connection/${project.version}</bundle>
<feature version="${project.version}">producer</feature>
<feature version="${project.version}">adapter</feature>
</feature>
<feature name="generator" version="${project.version}">
<feature name="generator" version="${project.version}" start-level="70">
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting.generator/generator-api/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting.generator/ftl-generator/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting.generator/generator-factory/${project.version}</bundle>
</feature>
<feature name="producer" version="${project.version}">
<feature name="producer" version="${project.version}" start-level="70">
<feature>camel-gson</feature>
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting.producer/producer-api/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting.producer/connection-producer/${project.version}</bundle>
</feature>
<feature name="adapter" version="${project.version}">
<feature name="adapter" version="${project.version}" start-level="70">
<feature version="${project.version}">adapters-core</feature>
<feature version="${project.version}">file-adapter</feature>
<feature version="${project.version}">artemis-adapter</feature>
<feature version="${project.version}">postgresql-adapter</feature>
</feature>
<feature name="adapters-core" version="${project.version}">
<feature name="adapters-core" version="${project.version}" start-level="70">
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting.adapter/adapters-core/${project.version}</bundle>
</feature>
<feature name="file-adapter" version="${project.version}">
<bundle>mvn:org.apache.camel/camel-file/${camel.version}</bundle>
<feature name="file-adapter" version="${project.version}" start-level="70">
<!-- bundle>mvn:org.apache.camel/camel-file/${camel.version}</bundle -->
<feature prerequisite="true" version="${camel.version}">camel-core</feature>
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting.adapter/file-adapter/${project.version}</bundle>
</feature>
<feature name="artemis-adapter" version="${project.version}">
<bundle>mvn:org.apache.camel/camel-jms/${camel.version}</bundle>
<feature name="artemis-adapter" version="${project.version}" start-level="70">
<!-- bundle>mvn:org.apache.camel/camel-jms/${camel.version}</bundle -->
<feature prerequisite="true" version="${camel.version}">camel-jms</feature>
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting.adapter/artemis-adapter/${project.version}</bundle>
</feature>
<feature name="postgresql-adapter" version="${project.version}">
<feature name="postgresql-adapter" version="${project.version}" start-level="70">
<bundle>wrap:mvn:org.postgresql/postgresql/${postgresql.version}</bundle>
<bundle>mvn:org.apache.camel/camel-jdbc/${camel.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.base.connecting.adapter/postgresql-adapter/${project.version}</bundle>

View File

@ -24,10 +24,32 @@
<extensions>true</extensions>
<configuration>
<instructions>
<Entaxy-Initializer-Class>ru.entaxy.esb.platform.runtime.core.initializer.connection.ConnectionInitializer?id=connections&amp;repeat=false&amp;depends-on=core,datasources</Entaxy-Initializer-Class>
<Entaxy-Initializer-Class>ru.entaxy.esb.platform.runtime.core.initializer.connection.ConnectionInitializer?id=connections&amp;repeat=true&amp;depends-on=core,datasources</Entaxy-Initializer-Class>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>src/main/non-packaged-resources/etc/init/entaxy-platform-connections.json</file>
<type>json</type>
<classifier>init-config</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

View File

@ -0,0 +1,54 @@
{
"connections": [
{
"nodeType": "connection",
"uuid": "connection-uuid-1",
"name": "entaxy-file",
"adapterName": "fileAdapter",
"platform": true,
"pathParameter": "data/shared",
"properties": {},
"options": {
"noop": true,
"fileName": "default.txt",
"allowNullBody": "true"
}
},
{
"nodeType": "connection",
"uuid": "connection-uuid-2",
"name": "entaxy-broker",
"adapterName": "artemisAdapter",
"platform": true,
"pathParameter": "queue:entaxy.default",
"properties": {
"url": "(tcp://localhost:61616)",
"username": "entaxy",
"password": "entaxy",
"maxConnections": "20",
"maxSessionsPerConnection": "100"
},
"options": {}
},
{
"nodeType": "connection",
"uuid": "connection-uuid-3",
"name": "entaxy-db-storage",
"adapterName": "postgresqlAdapter",
"platform": true,
"pathParameter": "entaxy.esb.storage",
"properties": {},
"options": {}
},
{
"nodeType": "connection",
"uuid": "connection-uuid-4",
"name": "entaxy-db-cache",
"adapterName": "postgresqlAdapter",
"platform": true,
"pathParameter": "entaxy.esb.cache",
"properties": {},
"options": {}
}
]
}

View File

@ -26,10 +26,38 @@
<extensions>true</extensions>
<configuration>
<instructions>
<Entaxy-Initializer-Class>ru.entaxy.esb.platform.runtime.core.initializer.datasources.DataSourcesInitializer?id=datasources&amp;repeat=false</Entaxy-Initializer-Class>
<Entaxy-Initializer-Class>ru.entaxy.esb.platform.runtime.core.initializer.datasources.DataSourcesInitializer?id=datasources&amp;repeat=false&amp;retries=10&amp;interval=2000</Entaxy-Initializer-Class>
</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>src/main/non-packaged-resources/etc/org.ops4j.datasource-entaxy.esb.cache.cfg</file>
<type>cfg</type>
<classifier>datasource-cache</classifier>
</artifact>
<artifact>
<file>src/main/non-packaged-resources/etc/org.ops4j.datasource-entaxy.esb.storage.cfg</file>
<type>cfg</type>
<classifier>datasource-storage</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

View File

@ -0,0 +1,43 @@
/*-
* ~~~~~~licensing~~~~~~
* datasources-initializer
* ==========
* Copyright (C) 2020 - 2021 EmDev LLC
* ==========
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ~~~~~~/licensing~~~~~~
*/
package ru.entaxy.esb.platform.runtime.core.initializer.datasources;
import javax.sql.DataSource;
public class DataSourcesCollector {
protected DataSource dsCache;
protected DataSource dsStorage;
protected void notifyOnComplete() {
if ((this.dsCache != null) && (this.dsStorage != null))
DataSourcesInitializer.collectorCompleted();
}
public void setDsCache(DataSource dsCache) {
this.dsCache = dsCache;
notifyOnComplete();
}
public void setDsStorage(DataSource dsStorage) {
this.dsStorage = dsStorage;
notifyOnComplete();
}
}

View File

@ -24,6 +24,7 @@ import org.osgi.framework.ServiceReference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import ru.entaxy.esb.platform.runtime.core.initializer.api.AbstractInitializer;
import ru.entaxy.esb.platform.runtime.core.initializer.api.Initializer;
import ru.entaxy.esb.platform.runtime.core.initializer.api.InitializerException;
import javax.sql.DataSource;
@ -33,6 +34,13 @@ public class DataSourcesInitializer extends AbstractInitializer {
protected static final Logger log = LoggerFactory.getLogger(DataSourcesInitializer.class);
protected static Initializer.Callback callback = null;
public static void collectorCompleted() {
if (DataSourcesInitializer.callback != null)
DataSourcesInitializer.callback.inited(new DataSourcesInitializer());
}
@Override
public void init() throws InitializerException {
log.info("Init in DataSourcesInitializer is called");
@ -55,5 +63,8 @@ public class DataSourcesInitializer extends AbstractInitializer {
log.info("ReInit in CoreInitializer is called");
}
@Override
public void setCalllback(Callback callback) {
DataSourcesInitializer.callback = callback;
}
}

View File

@ -1,6 +1,6 @@
###
# ~~~~~~licensing~~~~~~
# karaf-features
# datasources-initializer
# ==========
# Copyright (C) 2020 - 2021 EmDev LLC
# ==========
@ -17,8 +17,13 @@
# limitations under the License.
# ~~~~~~/licensing~~~~~~
###
# адрес soap-connector, будет формироваться host/cxf + passive.endpoint.address,
# по умолчанию passive.endpoint.address=/exchange
passive.endpoint.address=/exchange
# включение кастомной валидации soap сообщений по wsdl
passive.endpoint.validation=true
dataSourceName=entaxy.esb.cache
osgi.jdbc.driver.name=PostgreSQL JDBC Driver
serverName=localhost
portNumber=5432
databaseName=cache
user=entaxy
password=entaxy
pool=dbcp2
xa=true
jdbc.pool.maxTotal=100

View File

@ -1,6 +1,6 @@
###
# ~~~~~~licensing~~~~~~
# karaf-features
# datasources-initializer
# ==========
# Copyright (C) 2020 - 2021 EmDev LLC
# ==========
@ -17,11 +17,13 @@
# limitations under the License.
# ~~~~~~/licensing~~~~~~
###
# адрес service-soap, будет формироваться host/cxf + passive.endpoint.address,
# по умолчанию passive.endpoint.address=/service
passive.endpoint.address=/service
# включение кастомной валидации soap сообщений по wsdl
passive.endpoint.validation=true
# название системы, в которую будут отправляться сообщения, если не был выставлен destination
passive.error.system.name=error
dataSourceName=entaxy.esb.storage
osgi.jdbc.driver.name=PostgreSQL JDBC Driver
serverName=localhost
portNumber=5432
databaseName=esb_entaxy
user=entaxy
password=entaxy
pool=dbcp2
xa=true
jdbc.pool.maxTotal=100

View File

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~~~~~~licensing~~~~~~
datasources-initializer
==========
Copyright (C) 2020 - 2021 EmDev LLC
==========
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
~~~~~~/licensing~~~~~~
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<reference id="dsCache" interface="javax.sql.DataSource" filter="(osgi.jndi.service.name=entaxy.esb.cache)"
availability="mandatory"/>
<reference id="dsStorage" interface="javax.sql.DataSource" filter="(osgi.jndi.service.name=entaxy.esb.storage)"
availability="mandatory"/>
<bean id="collector" class="ru.entaxy.esb.platform.runtime.core.initializer.datasources.DataSourcesCollector"
activation="eager">
<property name="dsCache" ref="dsCache" />
<property name="dsStorage" ref="dsStorage" />
</bean>
</blueprint>

View File

@ -76,7 +76,7 @@ public class InitManager {
protected List<String> waiting = new ArrayList<>();
protected class InitializerMeta {
protected class InitializerMeta implements Initializer.Callback {
String id;
String className;
@ -84,12 +84,16 @@ public class InitManager {
Bundle bundle;
List<InitializerMeta> dependsOn = new ArrayList<>();
List<InitializerMeta> dependedBy = new ArrayList<>();
Map<String, InitializerMeta> dependsOn = new HashMap<>();
Map<String, InitializerMeta> dependedBy = new HashMap<>();
boolean executed = false;
boolean toBeExecuted = true;
int retries = 1;
int interval = 1000;
public void load(String initializerData) {
String[] data = initializerData.split("\\?");
@ -120,6 +124,21 @@ public class InitManager {
String repeat = params.get(Initializer.INITIALIZER_QUERY_STRING_PARAM_REPEAT);
this.repeat = "true".equals(repeat);
String retriesValue = params.get(Initializer.INITIALIZER_QUERY_STRING_PARAM_RETRIES);
if (!Strings.isNullOrEmpty(retriesValue))
try {
this.retries = Integer.parseInt(retriesValue);
} catch (NumberFormatException e) {
log.error("Retries paramater [{}] is not an integer", retriesValue);
}
String intervalValue = params.get(Initializer.INITIALIZER_QUERY_STRING_PARAM_INTERVAL);
if (!Strings.isNullOrEmpty(intervalValue))
try {
this.interval = Integer.parseInt(intervalValue);
} catch (NumberFormatException e) {
log.error("Interval paramater [{}] is not an integer", intervalValue);
}
}
protected void addDependency(InitializerMeta meta) {
@ -127,7 +146,7 @@ public class InitManager {
if (meta.toBeExecuted && !meta.executed)
synchronized (this.dependsOn) {
meta.addDependent(this);
this.dependsOn.add(meta);
this.dependsOn.put(meta.id, meta);
}
}
}
@ -136,13 +155,15 @@ public class InitManager {
this.className = other.className;
this.bundle = other.bundle;
this.repeat = other.repeat;
for (InitializerMeta meta: other.dependsOn)
this.retries = other.retries;
this.interval = other.interval;
for (InitializerMeta meta: other.dependsOn.values())
this.addDependency(meta);
}
public void addDependent(InitializerMeta meta) {
synchronized (this.dependedBy) {
this.dependedBy.add(meta);
this.dependedBy.put(meta.id, meta);
}
}
@ -155,7 +176,7 @@ public class InitManager {
}
public void notifyDependent() {
for (InitializerMeta meta: this.dependedBy)
for (InitializerMeta meta: this.dependedBy.values())
meta.dependencyReady(this);
}
@ -190,14 +211,39 @@ public class InitManager {
}
public void setCallback() {
BundleWiring wiring = bundle.adapt(BundleWiring.class);
ClassLoader cl = wiring.getClassLoader();
Class<?> clazz;
try {
clazz = cl.loadClass(className);
log.info("Loaded class {}", clazz.getName());
Constructor<?> constructor = clazz.getConstructor();
Initializer initializer = (Initializer) constructor.newInstance();
initializer.setCalllback(this);
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void dependencyReady(InitializerMeta meta) {
synchronized (this.dependsOn) {
this.dependsOn.remove(meta);
this.dependsOn.remove(meta.id);
if (!this.executed && this.canExecute())
this.execute();
}
}
@Override
public void inited(Initializer owner) {
log.info("Initializer with id {} notified of successful init via callback");
InitManager.this.updateById(id, true);
this.executed = true;
this.notifyDependent();
owner.setCalllback(null);
}
};
@ -268,7 +314,7 @@ public class InitManager {
}
if (!meta.canExecute()) {
String dependsOn = meta.dependsOn.stream().map((m)->m.id).collect(Collectors.joining(","));
String dependsOn = meta.dependsOn.values().stream().map((m)->m.id).collect(Collectors.joining(","));
log.info("Initializer with id {} is waiting for dependencies: {}", meta.id, dependsOn);
/*
@ -276,8 +322,25 @@ public class InitManager {
*/
return;
}
int retriesCount = meta.retries;
boolean result = false;
while (!result && (retriesCount > 0)) {
log.info("Executing initializer with id {}: try {} of {}", meta.id, meta.retries-retriesCount+1, meta.retries);
retriesCount--;
result = meta.execute();
if ((retriesCount > 0) && !result)
try {
log.info("Executing initializer with id {}: sleeping for {}", meta.id, meta.interval);
Thread.sleep(meta.interval);
} catch (InterruptedException e) {
log.error("Failed sleep for thread {} on initializer {}", Thread.currentThread().getId(), meta.id);
e.printStackTrace();
}
}
meta.execute();
// last try
if (!result)
meta.setCallback();
}
/* protected void execute(InitializerMeta meta) {

View File

@ -52,4 +52,8 @@ public abstract class AbstractInitializer implements Initializer {
return this.initializerId;
}
@Override
public void setCalllback(Callback callback) {
// Ignore it by default
}
}

View File

@ -23,6 +23,10 @@ import org.osgi.framework.BundleContext;
public interface Initializer {
public static interface Callback {
public void inited(Initializer owner);
}
public static final String INITIALIZER_CLASS_HEADER = "Entaxy-Initializer-Class";
@ -38,6 +42,8 @@ public interface Initializer {
public static final String INITIALIZER_QUERY_STRING_PARAM_ID = "id";
public static final String INITIALIZER_QUERY_STRING_PARAM_DEPENDS_ON = "depends-on";
public static final String INITIALIZER_QUERY_STRING_PARAM_REPEAT = "repeat";
public static final String INITIALIZER_QUERY_STRING_PARAM_RETRIES = "retries";
public static final String INITIALIZER_QUERY_STRING_PARAM_INTERVAL = "interval";
public void init() throws InitializerException;
@ -54,4 +60,6 @@ public interface Initializer {
public void setInitializerId(String id);
public String getInitializerId();
public void setCalllback(Initializer.Callback callback);
}

View File

@ -26,14 +26,14 @@
</properties>
<dependencies>
<dependency>
<!-- dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
</dependency -->
<dependency>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-core</artifactId>

View File

@ -20,30 +20,74 @@
-->
<features name="ru.entaxy.esb.platform.runtime.core-${project.version}"
xmlns="http://karaf.apache.org/xmlns/features/v1.6.0">
<features name="entaxy-platform-core-${project.version}"
xmlns="http://karaf.apache.org/xmlns/features/v1.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
<feature name="core" version="${project.version}">
<feature version="${project.version}">management</feature>
<feature version="${project.version}">initializer</feature>
<repository>mvn:ru.entaxy.esb.platform.runtime/base/${project.version}/xml/features</repository>
<repository>mvn:ru.entaxy.esb.distribution/entaxy-karaf-features/${project.version}/xml/features</repository>
<feature name="entaxy-platform-core" version="${project.version}">
<feature version="${project.version}" prerequisite="true">entaxy-platform-base</feature>
<feature version="${project.version}">entaxy-initializer</feature>
<feature version="${project.version}">entaxy-management</feature>
</feature>
<feature name="entaxy-initializer" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer/init-manager/${project.version}</bundle>
<feature version="${project.version}">entaxy-datasources-initializer</feature>
<feature version="${project.version}">entaxy-core-initializer</feature>
<feature version="${project.version}">entaxy-connection-initializer</feature>
<feature version="${project.version}">entaxy-storage-initializer</feature>
</feature>
<feature name="management" version="${project.version}">
<feature name="entaxy-datasources-initializer" version="${project.version}" >
<configfile finalname="${karaf.etc}/org.ops4j.datasource-entaxy.esb.cache.cfg" override="false">
mvn:ru.entaxy.esb.platform.runtime.core.initializer/datasources-initializer/${project.version}/cfg/datasource-cache
</configfile>
<configfile finalname="${karaf.etc}/org.ops4j.datasource-entaxy.esb.storage.cfg" override="false">
mvn:ru.entaxy.esb.platform.runtime.core.initializer/datasources-initializer/${project.version}/cfg/datasource-storage
</configfile>
<capability>
osgi.service;effective:=active;objectClass=javax.sql.DataSource;osgi.jndi.service.name=entaxy.esb.cache;
</capability>
<capability>
osgi.service;effective:=active;objectClass=javax.sql.DataSource;osgi.jndi.service.name=entaxy.esb.storage;
</capability>
<!-- why do we need the following? -->
<!--
<capability>
osgi.service;objectClass=javax.sql.DataSource;osgi.jndi.service.name=entaxy.esb.cache-connector;
</capability>
-->
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer/datasources-initializer/${project.version}</bundle>
</feature>
<feature name="entaxy-core-initializer" version="${project.version}" >
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer/core-initializer/${project.version}</bundle>
</feature>
<feature name="entaxy-connection-initializer" version="${project.version}">
<configfile finalname="${karaf.etc}/init/entaxy-platform-connections.json" override="false">
mvn:ru.entaxy.esb.platform.runtime.core.initializer/connection-initializer/${project.version}/json/init-config
</configfile>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer/connection-initializer/${project.version}</bundle>
</feature>
<feature name="entaxy-storage-initializer" version="${project.version}">
<feature version="${project.version}" prerequisite="true">entaxy-karaf-liquibase-support</feature>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer.storage.initializer/liquibase-updater/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer.storage.initializer/storage-esb_entaxy/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer.storage.initializer/storage-cache/${project.version}</bundle>
</feature>
<feature name="entaxy-management" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.management/connection-manager/${project.version}</bundle>
</feature>
<feature name="initializer" version="${project.version}">
<feature version="${project.version}">storage-initializer</feature>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer/init-manager/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer/core-initializer/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer/datasources-initializer/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer/connection-initializer/${project.version}</bundle>
</feature>
<feature name="storage-initializer" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer.storage.initializer/liquibase-updater/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer.storage.initializer/storage-esb_entaxy/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.core.initializer.storage.initializer/storage-cache/${project.version}</bundle>
</feature>
</features>

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~~~~~~licensing~~~~~~
modules
==========
Copyright (C) 2020 - 2021 EmDev LLC
==========
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
~~~~~~/licensing~~~~~~
-->
<features name="entaxy-platform-modules-${project.version}"
xmlns="http://karaf.apache.org/xmlns/features/v1.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
<repository>mvn:ru.entaxy.esb.platform.runtime/base/${project.version}/xml/features</repository>
<repository>mvn:ru.entaxy.esb.platform.runtime/core/${project.version}/xml/features</repository>
<repository>mvn:ru.entaxy.esb.platform.runtime.modules/uniform-service/${project.version}/xml/features</repository>
<feature name="entaxy-platform-modules" version="${project.version}">
<feature version="${project.version}" prerequisite="true">entaxy-platform-base</feature>
<feature version="${project.version}" prerequisite="true">entaxy-platform-core</feature>
<feature version="${project.version}">entaxy-uniform-service</feature>
</feature>
</features>

View File

@ -73,7 +73,7 @@
<bean id="headersConverter" class="ru.entaxy.esb.system.common.util.HeadersConverter">
<property name="namespace" value="http://www.entaxy.ru/ExchangeTypes/1.0"/>
<property name="customHeaders" value="NTX_CustomHeaders"/>
<property name="customHeaderPrefix" value="NTX_1C_EXCHANGE_CustomHeader"/>
<property name="customHeaderPrefix" value="NTX_UNIFORM_EXCHANGE_CustomHeader"/>
</bean>
<bean id="headerMergeAggregator" class="ru.entaxy.esb.system.common.aggregation.HeaderMergeAggregatorImpl"/>
@ -250,7 +250,7 @@
<#else>
<route id="uniform-service-in-connector">
<from uri="direct-vm:uniform-service-in-connector-[=systemName]"/>
<log message="Start 1c exchange connector ${headers.operationName}" loggingLevel="DEBUG"/>
<log message="Start uniform exchange connector ${headers.operationName}" loggingLevel="DEBUG"/>
<setHeader name="ENTAXY_ConnectorType">
<simple>uniform-service</simple>
</setHeader>
@ -280,11 +280,11 @@
<route id="send-packets">
<from uri="direct:send-packets"/>
<setHeader name="NTX_1C_EXCHANGE_PacketCount">
<setHeader name="NTX_UNIFORM_EXCHANGE_PacketCount">
<xpath resultType="Integer">count(/soap-type:packets/soap-type:packet)</xpath>
</setHeader>
<when>
<simple>${headers.NTX_1C_EXCHANGE_PacketCount} &gt; 1</simple>
<simple>${headers.NTX_UNIFORM_EXCHANGE_PacketCount} &gt; 1</simple>
<throwException exceptionType="java.lang.UnsupportedOperationException"
message="Not supported more then 1 packet"/>
</when>

View File

@ -69,7 +69,7 @@
<bean id="headersConverter" class="ru.entaxy.esb.system.common.util.HeadersConverter">
<property name="namespace" value="http://www.entaxy.ru/ExchangeTypes/1.0"/>
<property name="customHeaders" value="NTX_CustomHeaders"/>
<property name="customHeaderPrefix" value="NTX_1C_EXCHANGE_CustomHeader"/>
<property name="customHeaderPrefix" value="NTX_UNIFORM_EXCHANGE_CustomHeader"/>
</bean>
<camelContext id="uniform-service-out-connector-[=systemName]-context"

View File

@ -6,7 +6,7 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
<repository>mvn:ru.entaxy.esb/karaf-features/${project.version}/xml/features</repository>
<!-- repository>mvn:ru.entaxy.esb/karaf-features/${project.version}/xml/features</repository -->
<feature name="common-soap" version="${project.version}">
<configfile finalname="${karaf.etc}/uniform.service.support.cfg" override="false">
@ -16,8 +16,6 @@
mvn:ru.entaxy.esb.platform.runtime.modules/uniform-service/${project.version}/cfg/uniform.service.ignite
</configfile>
<feature version="${project.version}">entaxy-common</feature>
<bundle>mvn:ru.entaxy.esb.platform.runtime.modules.uniform.service/support/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.platform.runtime.modules.uniform.service/connector/${project.version}</bundle>
<capability>

View File

@ -1,201 +0,0 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@ -5,7 +5,7 @@
<parent>
<groupId>ru.entaxy.esb.platform.runtime.modules</groupId>
<artifactId>uniform-service</artifactId>
<version>1.8.0</version>
<version>1.8</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -19,16 +19,451 @@
~~~~~~/licensing~~~~~~
-->
<features name="entaxy-karaf-features-${project.version}"
<features name="entaxy-platform-${project.version}"
xmlns="http://karaf.apache.org/xmlns/features/v1.3.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://karaf.apache.org/xmlns/features/v1.3.0 http://karaf.apache.org/xmlns/features/v1.3.0">
<repository>mvn:org.apache.camel.karaf/apache-camel/${camel.version}/xml/features</repository>
<repository>mvn:org.apache.activemq/artemis-features/${activemq.version}/xml/features</repository>
<repository>mvn:org.hibernate/hibernate-osgi/${hibernate.version}/xml/karaf</repository>
<repository>mvn:org.apache.karaf.cellar/apache-karaf-cellar/${cellar.version}/xml/features</repository>
<repository>mvn:org.apache.ignite/ignite-osgi-karaf/${ignite.version}/xml/features</repository>
<repository>mvn:org.apache.karaf.features/enterprise/${karaf.version}/xml/features</repository>
<repository>mvn:org.ops4j.pax.jdbc/pax-jdbc-features/1.4.4/xml/features</repository>
<repository>mvn:org.apache.karaf.features/spring/4.2.9/xml/features</repository>
<!-- repository>mvn:ru.entaxy.esb/karaf-features/${project.version}/xml/features</repository -->
<repository>mvn:ru.entaxy.esb.distribution/entaxy-karaf-features/${project.version}/xml/features</repository>
<repository>mvn:ru.entaxy.esb.distribution/entaxy-karaf-kar/${project.version}/xml/features</repository>
<repository>mvn:ru.entaxy.esb.platform.runtime/base/${project.version}/xml/features</repository>
<repository>mvn:ru.entaxy.esb.platform.runtime/core/${project.version}/xml/features</repository>
<repository>mvn:ru.entaxy.esb.platform.runtime/modules/${project.version}/xml/features</repository>
<feature name="entaxy-platform" version="${project.version}">
<configfile finalname="${karaf.etc}/branding.properties" override="true">
mvn:ru.entaxy.esb.platform.runtime.base/branding/${project.version}/properties/branding
<!-- Wait for all the startup features to be installed -->
<feature prerequisite="true">entaxy-karaf-configuration</feature>
<feature prerequisite="true">entaxy-karaf-basic</feature>
<feature prerequisite="true">entaxy-karaf-runtime</feature>
<!-- feature prerequisite="true">maven-support</feature -->
<!-- bundle start-level="5" dependency="true">mvn:org.ops4j.pax.logging/pax-logging-api/1.11.6</bundle -->
<!-- then be sure all entaxy features needed are installed -->
<feature>entaxy-karaf</feature>
<feature>entaxy-legacy</feature>
<feature version="${project.version}">entaxy-platform-components</feature>
<feature version="${project.version}">enatxy-platform-modules-components</feature>
</feature>
<feature name="entaxy-karaf-basic" version="${project.version}">
<feature prerequisite="true">entaxy-karaf-configuration</feature>
<feature>wrap</feature>
<!-- feature prerequisite="true">classpath</feature -->
<feature>shell</feature>
<feature>feature</feature>
<feature>jaas</feature>
<feature>ssh</feature>
<feature>management</feature>
<feature>bundle</feature>
<feature>config</feature>
<feature>deployer</feature>
<feature>diagnostic</feature>
<feature>feature</feature>
<feature>instance</feature>
<feature>kar</feature>
<feature>log</feature>
<feature>package</feature>
<feature>service</feature>
<feature>system</feature>
</feature>
<feature name="entaxy-karaf-runtime" version="${project.version}">
<feature prerequisite="true">entaxy-karaf-configuration</feature>
<feature prerequisite="true">entaxy-karaf-basic</feature>
<feature>scheduler</feature>
<feature>eventadmin</feature>
<feature>aries-blueprint</feature>
<feature>cellar</feature>
<feature>cellar-eventadmin</feature>
<feature>cxf</feature>
<feature>camel</feature>
<feature>camel-blueprint</feature>
<feature>camel-jaxb</feature>
<feature>camel-cxf</feature>
<feature>camel-amqp</feature>
<feature>camel-core</feature>
<feature>camel-http</feature>
<feature>hibernate</feature>
<feature>jdbc</feature>
<feature>pax-jdbc-pool-dbcp2</feature>
<feature>jndi</feature>
<feature>camel-eventadmin</feature>
<feature>camel-quartz</feature>
<feature>camel-jsonpath</feature>
<feature>camel-gson</feature>
<feature>camel-ognl</feature>
<feature>entaxy-karaf-commons-support</feature>
<feature>entaxy-karaf-liquibase-support</feature>
<feature>entaxy-karaf-artemis-jms-support</feature>
<feature>artemis-jms-client</feature>
<feature>camel-jms</feature>
<!-- feature version="1.4.4">pax-jdbc-spec</feature>
<feature version="1.4.4">pax-jdbc</feature>
<feature version="1.4.4">pax-jdbc-config</feature>
<feature version="4.2.9">jdbc</feature -->
<feature version="${spring.version}">spring</feature>
<feature version="${spring.version}">spring-tx</feature>
<feature version="${spring.version}">spring-jdbc</feature>
<feature version="[2,3)">jpa</feature>
<feature>entaxy-karaf-db-support</feature>
<feature>ignite-core</feature>
<feature>entaxy-karaf-ignite-support</feature>
<feature>camel-ignite</feature>
<feature>camel-sql</feature>
<feature>entaxy-karaf-jaxb-support</feature>
<!-- feature>cave-repository</feature -->
<feature>wrapper</feature>
<feature>shell-compat</feature>
<feature>camel-jpa</feature>
<feature>camel-jaxb</feature>
<feature>camel-base64</feature>
<feature>camel-zip-deflater</feature>
<feature>camel-zipfile</feature>
</feature>
<feature name="entaxy-platform-components" version="${project.version}">
<feature prerequisite="true">entaxy-karaf-basic</feature>
<feature prerequisite="true">entaxy-karaf-runtime</feature>
<feature prerequisite="true">entaxy-karaf</feature>
<feature prerequisite="true">entaxy-legacy</feature>
<feature prerequisite="true">karaf-camel-common</feature>
<feature prerequisite="true">entaxy-legacy-system</feature>
<feature prerequisite="true">entaxy-legacy-blueprint-generator</feature>
<!-- then install platform base & core -->
<feature version="${project.version}">entaxy-platform-base</feature>
<feature version="${project.version}">entaxy-platform-core</feature>
<!-- prepare for modules installation -->
<feature version="${project.version}">entaxy-legacy-for-modules</feature>
</feature>
<feature name="enatxy-platform-modules-components" version="${project.version}">
<feature prerequisite="true">entaxy-platform-base</feature>
<feature prerequisite="true">entaxy-platform-core</feature>
<feature prerequisite="true">entaxy-legacy-for-modules</feature>
<!-- install platform modules -->
<feature version="${project.version}">entaxy-platform-modules</feature>
</feature>
<!-- after the Cave repositories implemented move to entaxy-karaf -->
<!-- feature name="maven-support" version="${project.version}">
<bundle>mvn:org.eclipse.aether/aether-transport-http/1.1.0</bundle>
<bundle>mvn:org.eclipse.aether/aether-transport-file/1.1.0</bundle>
<bundle>mvn:org.eclipse.aether/aether-connector-basic/1.1.0</bundle>
<bundle>mvn:org.eclipse.aether/aether-api/${aether.version}</bundle>
<bundle>mvn:org.eclipse.aether/aether-impl/1.1.0</bundle>
<bundle>wrap:mvn:org.apache.maven/maven-aether-provider/3.3.9</bundle>
</feature -->
<feature name="entaxy-legacy" version="${project.version}">
<feature prerequisite="true">entaxy-karaf-basic</feature>
<feature prerequisite="true">entaxy-karaf-runtime</feature>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb
</configfile>
<feature prerequisite="true">karaf-camel-common</feature>
<feature prerequisite="true">entaxy-legacy-system</feature>
<feature prerequisite="true">entaxy-legacy-blueprint-generator</feature>
<!--
feature version="${project.version}" prerequisite="true">entaxy-legacy-datasources</feature
-->
</feature>
<feature name="entaxy-legacy-blueprint-generator" version="${project.version}">
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.freemarker/2.3.29_1</bundle>
<bundle>mvn:ru.entaxy.esb.system.management.blueprint.generator/blueprint-generator/${project.version}</bundle>
</feature>
<feature name="entaxy-legacy-system" version="${project.version}">
<feature prerequisite="true">camel-gson</feature>
<feature prerequisite="true">camel-jms</feature>
<feature prerequisite="true">camel-sql</feature>
<feature prerequisite="true">hibernate</feature>
<feature prerequisite="true">artemis-jms-client</feature>
<feature prerequisite="true">cxf-xjc-runtime</feature>
<feature prerequisite="true">ignite-core</feature>
<feature prerequisite="true">ignite-jcl</feature>
<feature prerequisite="true">wss4j</feature>
<feature prerequisite="true">entaxy-karaf-artemis-jms-support</feature>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb
</configfile>
<bundle dependency="true">mvn:ru.entaxy.esb.system.commons/system-commons/${project.version}</bundle>
<bundle dependency="true">mvn:ru.entaxy.esb.system.core/template/${project.version}</bundle>
</feature>
<feature name="karaf-camel-common" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.system/component-bean-fix/${project.version}</bundle>
<capability>
osgi.service;objectClass=org.apache.aries.blueprint.NamespaceHandler;osgi.service.blueprint.namespace=http://camel.apache.org/schema/blueprint;effective:=active;
</capability>
</feature>
<feature name="entaxy-legacy-system-api" version="${project.version}">
<feature prerequisite="true" version="${project.version}">entaxy-legacy-connector-api</feature>
<bundle>mvn:ru.entaxy.esb.system.registry.systems/system-api/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.registry.systems/system-impl/${project.version}</bundle>
</feature>
<feature name="entaxy-legacy-for-modules" version="${project.version}">
<feature version="${project.version}" prerequisite="true">entaxy-legacy</feature>
<feature version="${project.version}" prerequisite="true">entaxy-legacy-system-api</feature>
<feature version="${project.version}" prerequisite="true">entaxy-legacy-deployer</feature>
<feature version="${project.version}" prerequisite="true">entaxy-legacy-profile-commons</feature>
<feature version="${project.version}" prerequisite="true">entaxy-legacy-bundle-service</feature>
<feature version="${project.version}" prerequisite="true">entaxy-legacy-connectors</feature>
<feature version="${project.version}" prerequisite="true">entaxy-platform-base</feature>
<feature version="${project.version}" prerequisite="true">entaxy-platform-core</feature>
<bundle>mvn:ru.entaxy.esb.system.management.profile.manager/profile-manager/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.management.route.manager/route-manager/${project.version}</bundle>
<feature version="${project.version}">entaxy-legacy-error-handler</feature>
<feature version="${project.version}">entaxy-legacy-system-profile</feature>
<bundle>mvn:ru.entaxy.esb.system.management.bridge.profile.manager/bridge-profile-manager/${project.version}</bundle>
<feature version="${project.version}">entaxy-legacy-system-management</feature>
<bundle>mvn:ru.entaxy.esb.system.registry.systems/system-component/${project.version}</bundle>
<feature version="${project.version}">entaxy-legacy-system-groups</feature>
<feature version="${project.version}">entaxy-legacy-permissions</feature>
<bundle>mvn:ru.entaxy.esb.system.management.bundle.manager/bundle-manager/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.management.connector.manager/connector-manager/${project.version}</bundle>
<feature version="${project.version}">entaxy-legacy-events</feature>
<feature version="${project.version}">entaxy-legacy-schema</feature>
<feature version="${project.version}">entaxy-legacy-basic-auth</feature>
<capability>
osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active;
</capability>
</feature>
<feature name="entaxy-legacy-schema" version="${project.version}">
<configfile finalname="${karaf.etc}/ru.entaxy.esb.system.schema.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.system.schema
</configfile>
<bundle>mvn:ru.entaxy.esb.system.registry.schema/schema-api/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.registry.schema/schema-impl/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.registry.schema/schema-soap/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.registry.schema/schema-component/${project.version}</bundle>
<capability>
osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active;
</capability>
</feature>
<feature name="entaxy-legacy-system-profile" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.system.registry.systems.profile/system-profile-api/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.registry.systems.profile/system-profile-collector/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.registry.systems.profile/system-profile-impl-default/${project.version}
</bundle>
</feature>
<feature name="entaxy-legacy-events" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.system.core.events/events-common/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.core.events/events-api/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.core.events/events-impl/${project.version}</bundle>
<capability>
osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active;
</capability>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.system.event.rest.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.system.event.rest
</configfile>
<bundle>mvn:ru.entaxy.esb.system.core.events/events-rest/${project.version}</bundle>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.system.event.handler.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.system.event.handler
</configfile>
<bundle>mvn:ru.entaxy.esb.system.core.events/events-handler/${project.version}</bundle>
<capability>
osgi.service;effective:=active;objectClass=javax.sql.DataSource;osgi.jndi.service.name=entaxy.esb.cache;
</capability>
</feature>
<feature name="entaxy-legacy-system-groups" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.system.registry.system-groups.profile/system-group-profile-api/${project.version}
</bundle>
<bundle>
mvn:ru.entaxy.esb.system.registry.system-groups.profile/system-group-profile-collector/${project.version}
</bundle>
<bundle>
mvn:ru.entaxy.esb.system.registry.system-groups.profile/system-group-profile-impl-default/${project.version}
</bundle>
<bundle>mvn:ru.entaxy.esb.system.registry.system-groups/system-group-component/${project.version}</bundle>
</feature>
<feature name="entaxy-legacy-system-management" version="${project.version}">
<configfile finalname="${karaf.etc}/ru.entaxy.esb.system.management.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.system.management
</configfile>
<bundle>mvn:ru.entaxy.esb.system.management/system-management-api/${project.version}</bundle>
<capability>
osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active;
</capability>
</feature>
<feature name="entaxy-legacy-basic-auth" version="${project.version}">
<feature prerequisite="true" version="${project.version}">entaxy-legacy-system-api</feature>
<feature prerequisite="true" version="${project.version}">entaxy-legacy-permissions-api</feature>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.system.basic_auth.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.system.basic_auth
</configfile>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.system.basic_auth.htpasswd.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.system.basic_auth.htpasswd
</configfile>
<bundle>mvn:ru.entaxy.esb.system.auth.basic.api/basic-auth-api/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.auth.basic.impl/basic-auth-impl/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.auth.basic.htpasswd/htpasswd/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.auth.basic/basic-auth-soap/${project.version}</bundle>
<capability>
osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active;
</capability>
</feature>
<feature name="entaxy-legacy-deployer" version="${project.version}">
<feature prerequisite="true">bundle</feature>
<feature prerequisite="true">camel-blueprint</feature>
<feature prerequisite="true">camel-http</feature>
<feature prerequisite="true">camel-cxf</feature>
<feature prerequisite="true">cellar</feature>
<bundle>mvn:ru.entaxy.esb.system.deployer/deployer-api/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.deployer/file-system-deployer/${project.version}</bundle>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.deployer.file.system.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.deployer.file.system
</configfile>
<bundle>mvn:org.eclipse.aether/aether-api/${aether.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.deployer/nexus-deployer/${project.version}</bundle>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.deployer.nexus.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.deployer.nexus
</configfile>
<bundle>mvn:ru.entaxy.esb.system.deployer/cellar-deployer/${project.version}</bundle>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.deployer.cellar.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.deployer.cellar
</configfile>
</feature>
<feature name="entaxy-legacy-profile-commons" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.system.core.dispatcher/dispatcher/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.registry.profile.commons/profile-commons/${project.version}</bundle>
</feature>
<feature name="entaxy-legacy-bundle-service" version="${project.version}">
<feature version="${project.version}" prerequisite="true">entaxy-legacy-system</feature>
<feature version="${project.version}" prerequisite="true">entaxy-legacy-deployer</feature>
<bundle>mvn:ru.entaxy.esb.system.core.dispatcher/dispatcher/${project.version}</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.freemarker/2.3.29_1</bundle>
<bundle>mvn:ru.entaxy.esb.system.management.bundle.jpa/bundle-service/${project.version}</bundle>
<capability>
osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active;
</capability>
</feature>
<feature name="entaxy-legacy-connector-api" version="${project.version}">
<feature version="${project.version}" prerequisite="true">entaxy-legacy-bundle-service</feature>
<bundle>mvn:ru.entaxy.esb.system.registry.connector/connector-api/${project.version}</bundle>
</feature>
<feature name="entaxy-legacy-connectors" version="${project.version}">
<feature prerequisite="true" version="${project.version}">entaxy-legacy-connector-api</feature>
<bundle>mvn:ru.entaxy.esb.system.registry.connector/connector-impl/${project.version}</bundle>
<!-- moved to extras
<configfile finalname="${karaf.etc}/ru.entaxy.esb.connector.file.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.connector.file
</configfile>
<bundle>mvn:ru.entaxy.esb.connector/file-connector/${project.version}</bundle>
-->
</feature>
<feature name="entaxy-legacy-error-handler" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.system.core/error-handler/${project.version}</bundle>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.error.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.error
</configfile>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.error.code.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.error.code
</configfile>
<configfile finalname="${karaf.etc}/ru.entaxy.esb.error.text.cfg" override="false">
mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.error.text
</configfile>
</feature>
<feature name="entaxy-legacy-permissions-api" version="${project.version}">
<bundle>mvn:ru.entaxy.esb.system.core.permission/permission-api/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.core.permission/permission-common/${project.version}</bundle>
<capability>
osgi.service;objectClass=org.hibernate.SessionFactory;effective:=active;
</capability>
</feature>
<feature name="entaxy-legacy-permissions" version="${project.version}">
<feature prerequisite="true" version="${project.version}">entaxy-legacy-permissions-api</feature>
<!-- <configfile finalname="${karaf.etc}/ru.entaxy.esb.system.event.handler.cfg" override="false">mvn:ru.entaxy.esb/karaf-features/${project.version}/cfg/ru.entaxy.esb.system.event.handler</configfile> -->
<bundle>mvn:ru.entaxy.esb.system.core.permission/permission-handler/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.core.permission/permission-component/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.core.permission/permission-impl/${project.version}</bundle>
<feature version="${project.version}">entaxy-legacy-basic-auth</feature>
<bundle>mvn:ru.entaxy.esb.system.core.permission/permission-soap/${project.version}</bundle>
<bundle>mvn:ru.entaxy.esb.system.management.permission.manager/permission-manager/${project.version}</bundle>
</feature>

View File

@ -0,0 +1,85 @@
###
# ~~~~~~licensing~~~~~~
# platform
# ==========
# Copyright (C) 2020 - 2021 EmDev LLC
# ==========
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ~~~~~~/licensing~~~~~~
###
echo
echo
echo "************"
echo "Welcome to Entaxy platform installation script"
echo "************"
echo
echo "** Checking feature repository: ${project.groupId}/${project.artifactId}/${project.version}/xml/features ..."
_repo = (feature:repo-list | grep ru.entaxy.esb/platform)
_repo_length = ($_repo length)
if { $_repo_length'' equals "0" } {
echo "\>\> Installing Entaxy repository..."
feature:repo-add mvn:${project.groupId}/${project.artifactId}/${project.version}/xml/features
echo "\>\> ... installed"
} else {
echo "\>\> Entaxy repository is already installed"
}
echo
echo "** Checking entaxy-karaf-configuration feature ..."
_config = [((feature:list | grep entaxy-karaf-configuration) split '\|')]
_status = (($_config get 3) trim)
if { $_status equals "Uninstalled" } {
echo "\>\> Installing feature..."
feature:install entaxy-karaf-configuration
echo "\>\> ... installed"
echo
if { $1'' equals "skipReboot" } {
echo "** the system will skip reboot for applying JRE exports"
echo " \( see etc/jre.properties \)"
echo " due to 'skipReboot argument'"
echo "** If further installation will fail with errors please reboot"
} else {
echo "** the system will reboot now to apply JRE exports"
echo " \( see etc/jre.properties \)"
echo
echo "** PLEASE RUN THE SCRIPT AGAIN AFTER RESTART **"
shutdown -r -f
}
} else {
echo "\>\> Entaxy configuration is already installed"
}
echo
_config = [((feature:list | grep entaxy-karaf-configuration) split '\|')]
_status = (($_config get 3) trim)
if { NOT { $_status equals "Started" } } {
echo "** Current configuration feature status is " $_status
echo "** Please clean the container and run installation again "
} else {
echo "** Installing Entaxy platform in verbose mode..."
_platform = [((feature:list | grep entaxy-platform) split '\|')]
_status = (($_platform get 3) trim)
if { $_status equals "Uninstalled" } {
feature:install -v entaxy-platform
echo
echo "\>\> ... installed"
} else {
echo "\>\> Entaxy platform is already installed"
}
}
echo
echo "** Thank you!"

167
pom.xml
View File

@ -36,13 +36,21 @@
<jpa.version>2.1.0</jpa.version>
<aether.version>1.1.0</aether.version>
<cellar.version>4.2.1</cellar.version>
<spring.version>5.2.5.RELEASE_1</spring.version>
<mapstruct.version>1.3.1.Final</mapstruct.version>
<ignite.version>2.8.1</ignite.version>
<hazelcast.version>3.9.1</hazelcast.version>
<gson.version>2.8.5</gson.version>
<liquibase.version>3.6.3</liquibase.version>
<mssql.version>7.4.1.jre8</mssql.version>
<postgresql.version>42.2.5</postgresql.version>
<!-- postgresql.version>42.2.5</postgresql.version -->
<!--
version should be 42.2.7 or higher
to avoid
java.lang.ClassNotFoundException: javax.security.sasl.SaslException not found by org.postgresql.jdbc42
see https://github.com/pgjdbc/pgjdbc/issues/1503
-->
<postgresql.version>42.2.9</postgresql.version>
<slf4j.version>1.7.30</slf4j.version>
<javax.transaction.version>1.2</javax.transaction.version>
<javax.interceptor.version>1.2</javax.interceptor.version>
@ -267,11 +275,6 @@
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven-deploy-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.0.0</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
@ -281,7 +284,7 @@
<version>${maven-bundle-plugin.version}</version>
<extensions>true</extensions>
<configuration>
<obrRepository>NONE</obrRepository>
<obrRepository>NONE</obrRepository>
<instructions>
<Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
<Bundle-Description>${project.description}</Bundle-Description>
@ -356,7 +359,7 @@
<!-- <plugin>-->
<!-- <groupId>org.codehaus.mojo</groupId>-->
<!-- <artifactId>build-helper-maven-plugin</artifactId>-->
<!-- <version>1.8</version>-->
<!-- <version>1.8.0</version>-->
<!-- <inherited>false</inherited>-->
<!-- <executions>-->
<!-- <execution>-->
@ -374,7 +377,7 @@
<!-- <plugin>-->
<!-- <groupId>org.apache.maven.plugins</groupId>-->
<!-- <artifactId>maven-antrun-plugin</artifactId>-->
<!-- <version>1.8</version>-->
<!-- <version>1.8.0</version>-->
<!-- <executions>-->
<!-- <execution>-->
<!-- <inherited>false</inherited>-->
@ -442,7 +445,7 @@
<!-- url>http://localhost:8981/repository/entaxy-public-entaxy/</url -->
<url>https://nexus.entaxy.ru/nexus/repository/entaxy-public-entaxy/</url>
</repository>
<!-- we use the same repository for releases & snapshots -->
<!-- we don't publish snapshots -->
<!-- snapshotRepository>
<id>entaxy-private-snapshots</id>
<name>entaxy-private-snapshots</name>
@ -475,8 +478,12 @@
<profile>
<id>docker.reposilite</id>
<distributionManagement>
<repository>
<id>local-reposilte-releases</id>
<url>http://127.0.0.1:8081/releases</url>
</repository>
<snapshotRepository>
<id>entaxy-maven-repo</id>
<id>local-reposilte-snapshots</id>
<url>http://127.0.0.1:8081/snapshots</url>
</snapshotRepository>
</distributionManagement>
@ -510,7 +517,7 @@
<version>1.12</version>
<executions>
<execution>
<id>attach-artifacts</id>
<id>attach-features</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
@ -630,7 +637,7 @@
<excludedGroups>^ru\.entaxy\.esb</excludedGroups>
<licenseMerges>
<licenseMerge>Apache License, Version 2.0|The Apache Software License, Version 2.0|The Apache License, Version 2.0|Apache 2.0 License</licenseMerge>
<licenseMerge>Apache License, Version 2.0|The Apache Software License, Version 2.0|The Apache License, Version 2.0|Apache 2.0 License|Apache 2.0</licenseMerge>
<licenseMerge>EDL 1.0|Eclipse Distribution License v. 1.0|Eclipse Distribution License - v 1.0</licenseMerge>
<licenseMerge>EPL 2.0|Eclipse Public License v. 2.0</licenseMerge>
<licenseMerge>EPL 1.0|Eclipse Public License v. 1.0|Eclipse Public License v1.0</licenseMerge>
@ -686,69 +693,87 @@
</profile>
<profile>
<id>license-aggregate</id>
<activation>
<file>
<exists>aggregate.marker</exists>
</file>
</activation>
<profile>
<id>license-aggregate</id>
<activation>
<file>
<exists>aggregate.marker</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<!-- collect all the dependencies through all the underlying modules
-->
<execution>
<id>aggregate-add-third-party</id>
<goals>
<goal>aggregate-add-third-party</goal>
</goals>
<phase>prepare-package</phase>
<configuration>
<outputDirectory>${project.build.directory}/generated-sources/license</outputDirectory>
<thirdPartyFilename>ALL-DEPENDENCIES</thirdPartyFilename>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.0.0</version>
<executions>
<!-- collect all the dependencies through all the underlying modules
-->
<execution>
<id>aggregate-add-third-party</id>
<goals>
<goal>aggregate-add-third-party</goal>
</goals>
<phase>prepare-package</phase>
<configuration>
<outputDirectory>${project.build.directory}/generated-sources/license</outputDirectory>
<thirdPartyFilename>ALL-DEPENDENCIES</thirdPartyFilename>
<acceptPomPackaging>false</acceptPomPackaging>
<includeTransitiveDependencies>false</includeTransitiveDependencies>
<excludeTransitiveDependencies>true</excludeTransitiveDependencies>
<excludedGroups>^ru\.entaxy\.esb</excludedGroups>
<excludedScopes>test, provided</excludedScopes>
</configuration>
</execution>
</executions>
</plugin>
<acceptPomPackaging>true</acceptPomPackaging>
<includeTransitiveDependencies>false</includeTransitiveDependencies>
<excludeTransitiveDependencies>true</excludeTransitiveDependencies>
<excludedGroups>^ru\.entaxy\.esb</excludedGroups>
<excludedScopes>test, provided</excludedScopes>
<licenseMerges>
<licenseMerge>Apache License, Version 2.0|The Apache Software License, Version 2.0|The Apache License, Version 2.0|Apache 2.0 License|Apache 2.0</licenseMerge>
<licenseMerge>EDL 1.0|Eclipse Distribution License v. 1.0|Eclipse Distribution License - v 1.0</licenseMerge>
<licenseMerge>EPL 2.0|Eclipse Public License v. 2.0</licenseMerge>
<licenseMerge>EPL 1.0|Eclipse Public License v. 1.0|Eclipse Public License v1.0</licenseMerge>
<licenseMerge>CDDL/GPLv2+CE|CDDL + GPLv2 with classpath exception</licenseMerge>
<licenseMerge>GPLv2+CE|GPL2 w/ CPE</licenseMerge>
<licenseMerge>CDDL/GPL|CDDL+GPL License</licenseMerge>
<licenseMerge>LGPL|lgpl|GNU Lesser General Public License</licenseMerge>
<licenseMerge>BSD|The BSD License</licenseMerge>
<licenseMerge>MIT|MIT License</licenseMerge>
</licenseMerges>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>target/generated-sources/license/ALL-DEPENDENCIES</file>
<type>deps</type>
<classifier>aggregated</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<!--
@TODO remove version after moving plugins declarations from distribution/pom.xml to root/pom.xml
-->
<version>3.2.0</version>
<executions>
<execution>
<id>attach-dependencies</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>target/generated-sources/license/ALL-DEPENDENCIES</file>
<type>deps</type>
<classifier>aggregated</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</plugins>
</build>
</profile>
</profile>
</profiles>
<!-- TODO Imrove it!!! -->
<organization>

View File

@ -7,7 +7,7 @@
<parent>
<groupId>ru.entaxy.esb.system</groupId>
<artifactId>system-parent</artifactId>
<version>1.8.0</version>
<version>1.8</version>
</parent>
<groupId>ru.entaxy.esb.system.auth</groupId>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry</groupId>
<artifactId>registry</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../registry/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -7,7 +7,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry</groupId>
<artifactId>registry</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../registry/pom.xml</relativePath>
</parent>

View File

@ -7,7 +7,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry</groupId>
<artifactId>registry</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../registry/pom.xml</relativePath>
</parent>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry</groupId>
<artifactId>registry</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../registry/pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -7,7 +7,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry</groupId>
<artifactId>registry</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../registry/pom.xml</relativePath>
</parent>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>system-groups</artifactId>
<groupId>ru.entaxy.esb.system.registry.system-groups</groupId>
<version>1.8.0</version>
<version>1.8</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>system-groups</artifactId>
<groupId>ru.entaxy.esb.system.registry.system-groups</groupId>
<version>1.8.0</version>
<version>1.8</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<artifactId>system-groups</artifactId>
<groupId>ru.entaxy.esb.system.registry.system-groups</groupId>
<version>1.8.0</version>
<version>1.8</version>
</parent>
<modelVersion>4.0.0</modelVersion>

View File

@ -5,7 +5,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.system-groups</groupId>
<artifactId>system-groups</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../system-groups/pom.xml</relativePath>
</parent>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.system-groups.profile</groupId>
<artifactId>system-group-profile</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../system-group-profile/pom.xml</relativePath>
</parent>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.system-groups.profile</groupId>
<artifactId>system-group-profile</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../system-group-profile/pom.xml</relativePath>
</parent>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.system-groups.profile</groupId>
<artifactId>system-group-profile</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../system-group-profile/pom.xml</relativePath>
</parent>

View File

@ -7,7 +7,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry</groupId>
<artifactId>registry</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../registry/pom.xml</relativePath>
</parent>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.systems</groupId>
<artifactId>systems</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../systems/pom.xml</relativePath>
</parent>

View File

@ -8,7 +8,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.systems</groupId>
<artifactId>systems</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../systems/pom.xml</relativePath>
</parent>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.systems</groupId>
<artifactId>systems</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../systems/pom.xml</relativePath>
</parent>

View File

@ -7,7 +7,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.systems</groupId>
<artifactId>systems</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../systems/pom.xml</relativePath>
</parent>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.systems.profile</groupId>
<artifactId>system-profile</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../system-profile/pom.xml</relativePath>
</parent>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.systems.profile</groupId>
<artifactId>system-profile</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../system-profile/pom.xml</relativePath>
</parent>

View File

@ -6,7 +6,7 @@
<parent>
<groupId>ru.entaxy.esb.system.registry.systems.profile</groupId>
<artifactId>system-profile</artifactId>
<version>1.8.0</version>
<version>1.8</version>
<relativePath>../../system-profile/pom.xml</relativePath>
</parent>

View File

@ -8,7 +8,7 @@
<parent>
<groupId>ru.entaxy.esb.system</groupId>
<artifactId>system-parent</artifactId>
<version>1.0-SNAPSHOT</version>
<version>1.8</version>
</parent>
<artifactId>system-transformer</artifactId>