You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Federico Mariani (Jira)" <ji...@apache.org> on 2026/07/16 17:08:00 UTC

[jira] [Resolved] (CAMEL-24000) camel-spring-boot - Align core auto-configuration with Spring Boot 4 idioms

     [ https://issues.apache.org/jira/browse/CAMEL-24000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Federico Mariani resolved CAMEL-24000.
--------------------------------------
    Resolution: Fixed

> camel-spring-boot - Align core auto-configuration with Spring Boot 4 idioms
> ---------------------------------------------------------------------------
>
>                 Key: CAMEL-24000
>                 URL: https://issues.apache.org/jira/browse/CAMEL-24000
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-spring-boot
>            Reporter: Federico Mariani
>            Assignee: Federico Mariani
>            Priority: Major
>             Fix For: 4.22.0
>
>
> Modernization of {{core/camel-spring-boot}} following a review against Spring Boot 4.1.x best practices:
> * *MainListener notified exactly once with run controller enabled*: with {{camel.main.run-controller=true}}, {{MainListener}} beans received {{beforeStart}}/{{afterStart}} (and stop callbacks) twice, once from the controller created by {{CamelAutoConfiguration}} (CAMEL-21359) and once from the run controller's internal {{Main}}. The run controller no longer registers the listener beans; a test asserts exactly-once delivery for all seven callbacks.
> * *Remove dead code*: unused {{HierarchicalCondition}} and {{CompositeConversionService}}, unbindable {{ClusteredRouteControllerConfiguration.clusterServiceRef}}, unused import in {{CamelDevConsoleAutoConfiguration}}.
> * *Do not mutate shared @ConfigurationProperties beans*: the trace, error registry and security policy auto-configurations applied dev/prod profile defaults by mutating the injected properties singleton; effective values are now computed locally.
> * *Use @ConditionalOnBooleanProperty* (Spring Boot 3.4+) for the supervising and clustered route controller auto-configurations, dropping the redundant in-method enabled re-check and null @Bean return.
> * *Consolidate the eight vault auto-configurations*: replace hand-written per-field copy chains with {{BeanUtils.copyProperties}} and add a reflection test guarding against drift with the Camel core vault configurations. The test immediately found missing options: {{camel.vault.ibm.refresh-enabled}} and {{camel.vault.ibm.secrets}} were not configurable from Spring Boot; both added.
> * *Bind duration properties as java.time.Duration* with {{@DurationUnit(MILLIS)}} for the supervising route controller delays and startup condition interval/timeout. Plain numeric values keep meaning milliseconds; values such as {{5s}} are now supported. Note: the getters of the affected properties classes change type from {{long}}/{{int}} to {{Duration}}.
> _Claude Code on behalf of Federico Mariani._



--
This message was sent by Atlassian Jira
(v8.20.10#820010)