Рубрики
Без рубрики

Пример: Верблюд Apache с чертежом

Автор оригинала: 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 . В течение нескольких секунд вы должны увидеть, как на рабочем столе появится каталог погода/ , содержащий файл с прогнозом погоды на следующий день для Омахи.

Ресурсы