Автор оригинала: Scott Robinson.
Здесь мы представляем полностью работающий проект Apache Camel Blueprint. В нем приведен пример кода для построения маршрутов, создания компонентов и развертывания в ServiceMix с помощью Blueprint.
План
Короче говоря, Blueprint очень похож на весну. Действительно, это много похоже на весну, но с небольшими отличиями. Спецификация контейнера Blueprint была создана Альянсом OSGi (используя Eclipse Gemini Blueprint в качестве эталонной реализации), чтобы обеспечить приложениям лучшее разделение модулей, возможность динамического добавления, удаления и обновления модулей в работающей системе, возможность одновременного развертывания нескольких версий модуля (и автоматической привязки клиентов к соответствующему) и динамическую модель обслуживания. На Blueprint сильно влияет Spring, и поэтому в нем реализовано множество функций Spring, хотя он больше ориентирован на приложения OSGi.
Файл чертежа записан в XML и обычно содержится в каталоге OSGI-INF/чертеж/
, который является его местоположением по умолчанию. Этот каталог будет упакован с полученным файлом JAR, и контейнеры OSGi, такие как ServiceMix, по умолчанию будут искать там один или несколько файлов чертежей. Похоже, что это нигде не очень хорошо документировано, но имейте в виду, что файлы чертежей не обязательно упаковывать в файл JAR. Они могут быть автономными файлами, которые загружаются в контейнер OSGi (т. Е. попали в каталог deploy/
ServiceMix) сами по себе. Это может быть чрезвычайно удобно для перенастройки маршрутов на лету.
Код
Здесь мы покажем вам, как создать простой, развертываемый маршрут верблюда, используя сочетание схемы (для спецификации маршрута) и Java (для обработки сообщений). Каталог проектов структурирован следующим образом:
stackabuse-example-blueprint/ pom.xml src/ main/ java/ com.stackabuse.example.WeatherProcessor.java resources/ OSGI-INF/ blueprint/ blueprint-example.xml test/
Использование Maven для пакетов OSGi очень удобно, в основном из-за предоставленного maven-bundle-плагина , созданного проектом Apache Felix. Этот плагин, учитывая некоторые конфигурации в pom.xml
файл, сгенерирует ваш файл MANIFEST.MF для вас , используя И , что избавит вас от многих головных болей.
В blueprint-example.xml
файл содержит определения маршрута верблюда в формате XML, который обеспечивает тот же уровень детализации, что и доменный язык Java (DSL). Содержимое выглядит следующим образом:
Все файлы чертежей начинаются с тега <чертеж>
и обычно содержат тег для указания маршрутов верблюдов. В этом примере наш маршрут запускается простым таймером каждый час (3600 секунд), в течение которого он затем получит прогноз на 7 дней для Омахи, штат Нью-Йорк, США, и сохранит результат в файл на рабочем столе. Прежде чем данные будут сохранены, они будут перенаправлены через процессор, который определен как Javabean до запуска тега
. Этот компонент, который показан ниже, реализует
org.apache.camel.Процессор
интерфейс и извлекает только нужные нам данные из возвращенных данных о погоде JSON. Он анализирует JSON и возвращает строку вида “[дата]: [температура] по Цельсию”, которая будет сохранена в файле.
На веб-сайте Apache Camel почти на каждой странице компонентов Camel приведены примеры как на Java, так и в Blueprint, что делает разработку маршрута такой же простой, если не проще, в Blueprint. Мне было трудно найти много примеров кода Blueprint, несмотря на его популярность, поэтому, если у вас когда-нибудь возникнут сомнения в возможностях Blueprint, просто предположите, что все, что работает весной, будет работать в Blueprint, плюс дополнительные функции/схемы, специфичные для верблюдов.
Использование кода
Если вы хотите попробовать это самостоятельно, вы можете скачать приведенный ниже код. Чтобы запустить его, у вас должны быть установлены Apache Maven и Apache ServiceMix. Создайте проект, перейдя в каталог stackabuse-пример-чертеж
, выполнив пакет mvn
и, наконец, поместив полученный файл JAR в каталог deploy/|/ServiceMix. Поскольку результирующая банка является пакетом OSGi, она не будет содержать зависимостей, как вы можете ожидать. Вам также нужно будет разместить следующие зависимости в папке
deploy/ :
- Если вы хотите попробовать это самостоятельно, вы можете скачать приведенный ниже код. Чтобы запустить его, у вас должны быть установлены Apache Maven и Apache ServiceMix. Создайте проект, перейдя в каталог
- stackabuse-пример-чертеж
- , выполнив
- пакет mvn
- и, наконец, поместив полученный файл JAR в каталог
Вы должны быть в состоянии найти все эти банки в своем локальном репозитории Maven ( ~/.m2/|/) после создания проекта с помощью Maven.
И, наконец, чтобы запустить пакет, запустите ServiceMix, выполнив servicemix
или запуск
из [Домашний каталог ServiceMix]/bin
. В течение нескольких секунд вы должны увидеть, как на рабочем столе появится каталог погода/
, содержащий файл с прогнозом погоды на следующий день для Омахи.