Создание приложения Red Hat Fuse на основе OSGI-контейнера Karaf
Red Hat Fuse — это промышленная интеграционная шина. Предлагаю вашему вниманию способ ее запуска из Red Hat Code Ready Studio и тестовый пример использования Apache Camel. Система будет считывать содержимое поступающих на её вход файлов и в зависимости от заданных в них реквизитов будет перемещать эти файлы между разными папками.
- Описание
- Подробнее
Описание
Проверим работу Apache Camel — механизма маршрутизации и посредничества, который обеспечивает реализацию на основе объектов Java шаблонов Enterprise Integration с использованием API (или декларативного языка Java Domain Specific Language) для настройки правил маршрутизации и посредничества.
В Code Ready Studio создадим новый проект следующим образом:
File/New/Other/RedHat Fuse/Fuse Integration Project


Вводим название проекта. Кликаем Далее.

В окне Select a Target Environment выберите следующие параметры:
Выберите Standalone в качестве платформы развертывания.
Выберите Karaf / Fuse в Karaf в раскрывающееся ячейке "Runtime" fuse-karaf-7.8.0.fuse-780038-redhat-00001 RuntimeServer в качестве целевой среды выполнения.

После выбора целевой среды выполнения для вас автоматически выбирается версия Camel, и поле становится серым.
Кликаем "Next".
В открывшемся окне Advanced Project Setup выберите Beginner > Content Based Router — Blueprint DSL template.
Щелкните Готово.
Если будет предложено открыть связанную перспективу "Fuse Integration", нажмите Да.

Подождите, пока CodeReady Studio загрузит необходимые артефакты и построит проект в фоновом режиме.
Важно!
Если вы создаете проект Fuse в CodeReady Studio впервые, ему потребуется несколько минут, чтобы завершить создание проекта.
Не пытайтесь прервать работу или закрыть CodeReady Studio, пока проект строится в фоновом режиме.
Разверните проект на сервере следующим образом:
В окне « Servers» (нижний левый угол перспективы «Интеграция Fuse»), если сервер еще не запущен, выберите fuse-karaf-7.8.0.fuse-780038-redhat-00001 Runtime Server и щелкните зеленую стрелку, чтобы запустить его.
Примечание
Если вы видите диалоговое окно, Warning: The authenticity of host ‘localhost’ can’t be established.t. , нажмите Да, чтобы подключиться к серверу и получить доступ к консоли Karaf.
Подождите, пока вы не увидите сообщение, подобное следующему, в представлении консоли :
Karaf started in 1s. Bundle stats: 12 active, 12 total
После запуска сервера вернитесь в окно «Servers» , щелкните правой кнопкой мыши по серверу и выберите «Add and Remove» в контекстном меню.
В диалоговом окне «Add and Removel» выберите fuse-camel-cbr проект (CBR и Test1) и нажмите кнопку « Добавить» .
Щелкните готово!

Вы можете проверить, запущен ли пакет OSGi проекта, перейдя в Терминал введите bundle:list | tail. Вы должны увидеть следующий результат:
...
228 ^74; Active ^74; 80 ^74; 1.0.0.201505202023 ^74; org.osgi:org.osgi.service.j
232 ^74; Active ^74; 80 ^74; 1.0.0.SNAPSHOT ^74; Fuse CBR Quickstart
Заходим в проводник. Сейчас мы сделаем исполняемыми файлы "fuse", "karaf", "start" в папке bin , находящейся по пути: "/home/текущий пользователь/fuse/bin".
Открываем свойства каждого из этих файлов и на закладке Права устанавливаем флажок "Разрешить исполнение файла как программы".
Необходимо настроить авторизацию пользователей (как минимум администратора системы), для этого раскомментируем строки авторизации по умолчанию:
# Disable admin user for the default installation
admin = admin,_g_:admingroup
_g_\:admingroup = group,admin,manager,viewer,systembundles,sshВводим команду в терминале от главного администратора:
sudo nano /etc/profileДобавляем строку как показана на скриншоте:
export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")

Запускаем сервер через терминал, это можно сделать и в Code Ready Studio и в обычном терминале. Команда "sh fuse:"
$ cd fuse-karaf
$ cd bin
$ sh fuse
Запуск сервера через консоль:

Открываем веб интерфейс (консоль управления Hawtio). Копируем адрес и вставляем его в браузер:
http://localhost:8181/hawtioТестируем программу Camel CBR.
В тестовой среде Code Ready Studio настроена рабочее пространство Workspace (у нас это папка /home/akulov.na/Code-workspace), в котором находятся исполняемые файлы нашего проекта и данные, каталоги обмена по умолчанию. Эту папку можно увидеть или поменять с помощью команды меню> File > Switch Workspace>Other:

В каталоге "Workspace>CBR 1/src/main/resources/OSGI-INF/blueprint" (в данном случае это каталог "/home/akulov.na/Code-workspace/CBR 1/src/main/resources/OSGI-INF/blueprint") находится

