Статьи

Выпущен 66-й выпуск Apache Camel — это релиз 2.14

 Сегодня Apache Camel 2.14.0 вышел на улицы. Это наш 66-й выпуск (включая все выпуски патчей), так как проект был создан более 7 лет назад.

В этом выпуске есть куча замечательных вещей, поэтому позвольте мне попытаться отобрать список из 10 основных моментов (в произвольном порядке).

1)
Поддержка Java 8. Ветвь 2.14.x отмечает первый выпуск, где мы официально поддерживаем Java 8. Мы убедился, что код компилируется и все тесты проходят на Java 8 Мы также поддерживаем Java 7.

Теперь вы можете спросить обо всей крутости Java 8 о лямбдах и тому подобное. Да, мы рассмотрим это в следующем выпуске, чтобы предоставить примеры и первый вариант DSL на основе Java 8.

2) Поддержка Spring 4
То же самое и здесь. Теперь мы также поддерживаем Spring 4.x. Существует одно усилие по миграции, поскольку Spring 3.x и 4.x не совместимы при использовании весеннего тестирования. Поэтому нам пришлось представить модуль camel-test-spring3 для пользователей Spring 3.x, а camel-test-spring — для пользователей 4.x. Также в camel-test-spring есть известная проблема с поддержкой Spring 4.1.x, которую мы исправим в следующем выпуске патча.

3) Отдых DSL
Это, вероятно, одна из самых захватывающих новых функций в этом выпуске. Теперь мы предлагаем DSL в стиле REST, который можно использовать с Java или XML. Цель состоит в том, чтобы позволить конечным пользователям определять службы REST, используя стиль REST с такими глаголами, как get, post, delete и т. Д.

Вот небольшой пример того, как это работает

rest("/customers/")
    .get("/{id}").to("direct:customerDetail")
    .get("/{id}/orders").to("direct:customerOrders")
    .post("/neworder").to("direct:customerNewOrder");

DSL может использоваться как в Java, так и в XML. Поскольку это первый релиз с Rest DSL, мы, конечно, будем продолжать улучшать его, и, конечно же, основываясь на отзывах сообщества.

4) Поддержка Netty 4.x
Теперь у нас есть поддержка как Netty 3.x, так и 4.x. Поскольку мы серьезно относимся к обратной совместимости, мы решили оставить Camel-Netty как есть для пользователей Netty 3.x и перенести код на новый camel-netty4 для пользователей Netty 4.x. То же самое касается модулей camel-netty-http и camel-netty-http4.

5) API-компонент
Дирай Бодке (Dhiraj Bodke) работал над великолепной поддержкой новых компонентов API в Camel-Core, что делает создание новых компонентов Camel для API намного проще и быстрее. Мы используем это для интеграции с новыми компонентами, такими как box, linkedin, google-drive и salesforce, а также с тем, что еще появится в будущем. Он написал отличный блог об этом компоненте и о том, как его использовать. Так что ожидайте еще много этих компонентов API в следующих выпусках.

6) Больше JMX MBeans
Теперь мы также привлекаем производителей в JMX, и у нас также есть реестр, чтобы фиксировать использование конечных точек во время выполнения, что позволяет вам «видеть», какие конечные точки используются, а также как конечные точки могут быть разделены между маршрутами, например, отправка в очередь A на маршруте 1 и получение из очереди A на маршруте 2. Все на основе динамического использования, такого как динамические шаблоны, такие как список получателей.

Цель состоит в том, чтобы лучше понять, как используются маршруты Camel во время выполнения. Мы продолжим совершенствовать инструментальные средства в этой области, такие как hawtio, команды Camel Karaf и т. Д.

7) Метрики Codahale
И, продолжая с # 6, у нас также есть новый компонент верблюжьих метрик для интеграции с превосходной библиотекой метрик codahale. Кроме того, мы также разрешаем использовать это для сбора статистики маршрутизации Camel с использованием codehale. Затем его можно использовать с существующими инструментами Codahale, а также с hawtio. Я написал блог об этом ранее.

На приведенном ниже снимке экрана показана информация о маршруте, захваченная верблюжьими метриками и отображаемая hawtio на новой вкладке метрик маршрутов, которая поддерживает codahale.

верблюжьи метрики, используемые для захвата статики маршрутизации, которая может отображаться в hawtio с помощью новой вкладки метрик маршрута.

8) Автоматический выключатель EIP

Мы вводим новый EIP, используя
схему автоматического выключателя .

9) Интеграция Swagger

У нас есть новый модуль Camel- Swagger, который в сочетании с Rest DSL позволяет предоставлять документацию API ваших REST-сервисов. Это может затем использоваться с существующими инструментами Swagger и веб-консолей. Например, у hawtio есть консоль чванства из коробки, как показано ниже

Пример верблюда с использованием нового Rest DSL, который предлагает документацию по API для Swagger, которую можно просмотреть с помощью консоли Swagger, например, предлагаемой hawtio

10) И обычные вещи.

Мы добавили 15 новых компонентов, 1 новый EIP, 1 новый формат данных и 1 новый язык. И, как обычно, куча исправлений, улучшений и исправлений. И мы отказались от поддержки Java 6.

Если вы хотите увидеть некоторые новые вещи в действии, то вы можете попробовать новые примеры. У нас есть
верблюд-пример-сервлет-отдых-кот . Это обычный WAR-файл, который вы можете запустить в Apache Tomcat, Jetty, Wildfly,
fabric8 или любом другом веб-контейнере. Затем вы можете увидеть новые метрики Rest DSL, Swagger и codehale в действии, все в одном приложении. А для hawtness попробуйте также развернутый
hawtio и посмотрите, что он может сделать.

Этот же пример также доступен для пользователей Karaf
верблюд-пример-сервлет-отдых-план .

Вы можете найти более подробную информацию об этом выпуске в 
примечаниях к выпуску 2.14 . А если вы выполняете обновление с предыдущего выпуска, обязательно прочитайте об изменениях, которые могут на вас повлиять.

Вы можете получить этот выпуск от Maven Central и загрузить с веб-сайта Apache Camel.