Статьи

Apache Camel был великолепен с версии 1.0


Недавно я нашел время, чтобы оглянуться назад на историю проекта
Apache Camel . Поэтому среди других версий я посмотрел первый официальный
релиз 1.0 Apache Camel.

Apache Camel 1.0 — 5 лет назад

Чем больше я выгляжу, тем больше меня впечатляет первый релиз. Теперь вы должны рассмотреть, что это было сделано 5 лет назад, и в этом выпуске основатели Camel уже установили эти особенности в ДНК проекта:
  • Java DSL
  • XML DSL (с использованием Spring)
  • OSGi на дорожной карте
  • JAR верблюжий сердечник 660kb
  • 18 внешних компонентов (+ что в верблюжьем ядре)
  • 2 рабочих примера
  • полный сайт с документацией, включая часто задаваемые вопросы
  • Логотип и коробка проекта
  • Плагин Camel Maven для простого запуска Camel и его примеров
  • Тестовый комплект

Ниже приведен скриншот дистрибутива tar ball этого выпуска:
Распространение Camel 1.0 (намеки на амбиции OSGi в pom.xml)

Когда вы слышите, как Джеймс говорит о прошлом и о том, как он создал верблюда, его амбиция заключалась в том, что верблюд не должен вас сдерживать. Если вы хотите использовать Java, а не XML, тогда хорошо. Если вы участвуете в Spring XML, то все в порядке. Если вы в Groovy, то хорошо, если вы хотите использовать Ruby, тогда, черт возьми, да (поддержка Ruby была добавлена ​​в Camel 1.3).

Давайте посмотрим на переулок DSL.
Apache Camel, скорее всего, является первым интеграционным проектом, который предлагает многоязычные DSL из коробки в своем первом выпуске. Это просто в основе проекта, и то, что отличает Apache Camel от остальных, ИМХО — это разнообразное и энергичное сообщество, в котором учитывается философия «один размер не подходит всем».  

Итак, давайте посмотрим на этот пример с Java DSL.
Люди, использующие последнюю версию Camel, должны быть немедленно знакомы с DSL. Это просто работает с самого начала!
Java DSL в Camel 1.0

И образец XML DSL, который вы также можете увидеть в
исходном коде .
XML DSL в Camel 1.0

И в этом первом выпуске у нас также есть отличный Test Kit.
Например, обратите внимание на использование макетов и настройку ожиданий на скриншоте ниже. Тестирование Camel стало проще с первого дня. Да, это в ДНК проекта Camel.
Тестовый набор Camel уже в Camel 1.0

И обратите внимание на юнит-тест выше, ссылка на основателей Apache Camel.
  • Джеймс Страчан
  • Роб Дэвис
  • Хирам Кирино
  • Гийом Ноде

Спасибо, ребята, за создание этого замечательного проекта. Впечатляющий первый выпуск 5 лет назад.

Я закончу этот блог запуском camel-example-spring из выпуска Apache Camel 1.0.
$cd examples
$cd camel-example-spring
$mvn compile
$mvn camel:run

Теперь вам нужно набраться терпения, так как Maven загружает древние JAR, которым 5 лет.
Так что требуется время ?
Camel 1.0 пример запуска

На приведенном выше снимке экрана показан пример использования Camel 1.0. Этот пример запускается, потребляя сообщения из очереди JMS и записывая их в файл. Поэтому нам нужно связаться с jconsole, чтобы отправить сообщение. Я выделил URL службы для использования в jconsole.
Jconsole, чтобы отправить сообщение — Верблюд 1.0 пород

В jconsole мы раскрываем дерево и находим тестовую очередь, а также вызываем операцию sentTextMessage с текстом «Camel 1.0 rocks».

На втором скриншоте выше вы можете заметить в последней строке консоли: «Received Exchange».
Это Верблюд, регистрирующий этот обмен, поскольку в примере используется следующий маршрут, показанный на скриншоте в верхней части этого блога.

Затем мы можем увидеть, что файл был записан в тестовый каталог, где мы можем увидеть, что имя файла — это идентификатор сообщения, а содержимое файла — это то, что мы отправили из jconsole:

Это было 5 лет назад, поэтому давайте перенесемся на сегодня.

Давайте перенесем старый пример для использования текущей версии Camel.
Для этого вам необходимо:
  • Настройте pom.xml для использования Camel 2.9-2.10, и компонент camel-activemq был перемещен из Camel в ActiveMQ, так что вам необходимо это включить. И для регистрации мы теперь используем slf4j. Модифицированный pom.xml показан ниже
Обновление примера с Camel 1.0 до 2.9.2, настройка файла pom.xml
  • In the Spring XML file you need to change the namespace of Camel, as when Camel graduated to become an Apache Top Level Project, the namespace was migrated from activemq to camel. Also we upgrade to use Spring 3.0 in the XSD. And the activemq component is now from ActiveMQ and not Camel. The packages attribute is now an xml tag, so you need to use <packlage> in the <camelContext>. The updated file is shown below:
Upgrading Spring XML from Camel 1.0 to Camel 2.9.2
Okay we are now ready to go. 
There is no need for changes in the Java source code!!!
The example migrated from Camel 1.0 to 2.9.2 without any Java code changes!!!
And like before we use JConsole to send a text message.
I must say James and the founders hit the nail on the head in the Camel 1.0 release.  The DSL from the example is fully compatible with today’s Camel release.
Indeed a very impressive first release. Camel was off to a great start, and the project has grown from strength to strength ever since.