Quarkus 3.36

Опубликован релиз Quarkus 3.36 — Java-фреймворка для cloud-native-приложений, ориентированного на контейнеры, Kubernetes, JVM и нативную компиляцию. Выпуск состоялся 27 мая 2026 года. Главные изменения связаны с новым экспериментальным механизмом обмена сигналами между компонентами, улучшениями supply chain security, TLS и OIDC-аутентификацией для zero-trust-сценариев.
Для обновления разработчики рекомендуют использовать свежую версию Quarkus CLI и выполнить:
quarkus update
Команда quarkus update, по заявлению проекта, умеет обновлять приложения до Quarkus 3.36 даже с веток Quarkus 2.x.
Основные изменения
-
Quarkus Signals — экспериментальное расширение для обмена сигналами между компонентами. В Quarkus появился новый механизм, позволяющий компонентам приложения взаимодействовать слабосвязанным способом: один компонент отправляет сигнал, другой его принимает. Разрешение получателей типобезопасное и вдохновлено CDI events: сигналы сопоставляются с обработчиками по типу и квалификаторам. Поддерживаются три режима:
publish— рассылка всем получателям,send— отправка одному получателю с round-robin-выбором, иrequest-reply— запрос с типизированным ответом. Для каждого режима есть блокирующий API и реактивный API на базеUni. -
Гибкая модель выполнения для обработчиков сигналов. Получатели сигналов выполняются асинхронно и могут работать как блокирующие, неблокирующие или запускаемые в виртуальных потоках. Для этого используются привычные для Quarkus аннотации вроде
@Blocking,@NonBlockingи@RunOnVirtualThread. Также предусмотрена регистрация и снятие обработчиков во время выполнения через fluent builder API. -
Метаданные сигналов и SPI для интеграторов. К сигналам можно прикреплять произвольные пары ключ-значение, доступные обработчикам через
SignalContext. Для расширения поведения добавлены точки интеграцииSignalMetadataEnricherиReceiverInterceptor. Расширение пока имеет экспериментальный статус, разработчики ждут обратной связи от пользователей. -
Встраиваемые SBOM для зависимостей. Quarkus теперь умеет встраивать SBOM — Software Bill of Materials, то есть описание состава зависимостей, — прямо в собранные приложения. По умолчанию такой SBOM можно отдавать через endpoint
/.well-known/sbom. Это полезно для аудита зависимостей, инвентаризации компонентов и последующего сканирования уязвимостей. -
SBOM в нативных образах. Для native image добавлена возможность встраивать SBOM непосредственно в нативный бинарный файл согласно спецификации GraalVM SBOM. Это закрывает сценарий, когда приложение распространяется не как JVM-артефакт, а как самостоятельный исполняемый файл.
-
OIDC-аутентификация клиента через SPIFFE. В Quarkus OIDC добавлена поддержка SPIFFE JWT-токенов для аутентификации клиента перед провайдерами вроде Keycloak. Это изменение рассчитано на инфраструктуры с workload identity, zero-trust-моделью и сервис-сервисным взаимодействием, где идентичность рабочей нагрузки важнее статических секретов.
-
Произвольные типы keystore и truststore. TLS Registry теперь поддерживает произвольные типы хранилищ ключей и доверенных сертификатов, например
BCFKS, через новую группу конфигурацииother. Тип можно задать параметром видаquarkus.tls.key-store.other.type=без написания дополнительного кода. Если для типа требуется собственная логика загрузки, можно предоставить CDI-бинKeyStoreFactoryилиTrustStoreFactoryс соответствующим@Identifier. -
Динамические поля в JSON-журналах. Добавлен новый SPI
JsonProvider, позволяющий добавлять поля в JSON-логи динамически для каждой записи. Это даёт возможность обогащать журналы контекстом времени выполнения: например, дополнительными идентификаторами запроса, служебными метками или данными окружения. -
Горячая перезагрузка TLS для GraphQL-клиента. GraphQL-клиент теперь поддерживает динамическую перезагрузку TLS-конфигурации. Раньше новая TLS-конфигурация подхватывалась только при создании нового экземпляра клиента, что требовало уменьшать CDI scope. Теперь обновление применяется сразу и работает в том числе для клиентов с областью
application.
Дополнительные изменения и обновления компонентов
В финальном релизе 3.36.0 также отмечены доработки Signals, обновление Gradle до 9.5.1, Jackson BOM до 2.21.3, slf4j-api до 2.0.18, драйвера Microsoft SQL Server JDBC до 13.4.0, поддержка нескольких конфигураций SunPKCS11, исправление генерации POM для внешних расширений и добавление preauthorized_code как варианта OidcClient grant type.
Обновлены и компоненты платформы Quarkus: Camel Quarkus 3.36.0, Debezium 3.5.1.Final, Quarkus Amazon Services 3.19.0, Quarkus LangChain4j 1.10.0, Quarkus MCP Server 1.12.1 и Quarkus Operator SDK 7.7.5.
>>> Источник
