Apache Camel обновлен до версии 3.7, а также есть обновленная версия коннектора Camel Kafka.
Apache Camel — это инструмент интеграции приложений, который можно использовать для определения правил маршрутизации и посредничества на нескольких языках, зависящих от предметной области, включая файлы конфигурации Fluent API на основе Java, Spring или Blueprint XML. Camel — самый активный проект Apache по количеству коммитов.
Camel использует URI (универсальные идентификаторы ресурсов) для работы напрямую с любым типом транспорта или модели обмена сообщениями, например HTTP, ActiveMQ, JMS, JBI, SCA, MINA или CXF, а также с подключаемыми компонентами и параметрами формата данных. Он включает несколько сотен компонентов, которые используются для доступа к базам данных, очередям сообщений и API.
Помимо Camel Core, есть два варианта Camel — Camel K и Camel Quarkus. Camel K — это версия Kubernetes, состоящая из собственной версии Kubernetes инструментария Camel.
Camel Quarkus — это набор расширений Quarkus. Quarkus — это платформа Java, обеспечивающая быструю загрузку и малый объем памяти. Он нацелен как на стандартные JVM, так и на GraalVM. Проект направлен на предоставление более 280 компонентов Camel в качестве расширений Quarkus. Он был обновлен до версии 1.5, основным улучшением которой стало добавление CSimple, нового варианта языка Simple. Буква «C» в его названии означает «скомпилированный», и действительно, выражения компилируются в байт-код Java или собственный код во время сборки приложения.
Улучшения в версии 3.7 нацелены на то, чтобы Camel стал быстрее и меньше, а разработчики сосредоточились на встроенном языке сценариев Simple. Появилась новая поддержка языка jOOR. jOOR — это небольшой инструмент Java для выполнения компиляции исходного кода Java в памяти во время выполнения. У него есть некоторые ограничения, но, как правило, он хорошо работает для небольшого скриптового кода.
В новом выпуске также есть улучшения для compiled simple. Язык csimple разбирается в обычный исходный код Java и компилируется вместе со всем остальным исходным кодом или компилируется один раз во время начальной загрузки с помощью jOOR. Он предлагает преимущества по сравнению с простым языком при использовании вызовов методов динамического языка объектно-графической навигации (OGNL).
В другом месте разработчики продолжили работу над оптимизацией верблюжьего ядра. На этот раз ряд небольших улучшений в различных областях, таких как замена регулярных выражений регулярным кодом Java, когда регулярные выражения были излишними (регулярные выражения занимают значительную часть памяти кучи).
Команда также объединила все преобразователи типов из ядра в два класса (сгенерированный исходным кодом). Это позволяет избежать индивидуальной регистрации каждого преобразователя типов в реестре преобразователя типов, что экономит 20 КБ памяти кучи.
Ядро camel было оптимизировано в Camel 3, чтобы оно было маленьким, тонким и быстрым при запуске. Это дает преимущества Camel Quarkus, который может выполнять встроенную оптимизацию времени, используя преимущества оптимизированного ядра camel.
Наряду с улучшениями версии 3.7 есть новый выпуск Apache Camel Kafka Connector. Версия 0.7.0 основана на выпуске LTS Apache Camel 3.7. Основным улучшением является добавление новых соединителей, включая AtlasMap, который преобразует сообщение с помощью преобразования AtlasMap, и настраиваемые ресурсы Kubernetes, выполняющие операции с настраиваемыми ресурсами Kubernetes и предоставляющие уведомления об изменениях развертывания. Появился новый соединитель Vert.X Kafka, который можно использовать для отправки и получения сообщений от брокера Apache Kafka с помощью клиента vert.x Kafka. Другие новые соединители включают JSON, CSimple, DataSonnet и jOOR.