[
https://issues.apache.org/jira/browse/CAMEL-24000?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Work on CAMEL-24000 started by Federico Mariani.
------------------------------------------------
> 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)