smongiar opened a new pull request, #1996: URL: https://github.com/apache/camel-spring-boot/pull/1996
…ce on Camel components Spring Boot's Binder speculatively walks every nested JavaBean in a @ConfigurationProperties class when a non-enumerable PropertySource is present (e.g. Vault, cloud config, or any custom resolver that does not expose its key set). For Camel component configuration classes that hold third-party options such as a Jackson ObjectMapper, this walk eventually reaches a type that cannot be instantiated by the Binder (JacksonFeatureSet<StreamWriteCapability>) and causes a BindException at application startup, even when the user has not set any related property. Fix: add CamelConfigurationPropertiesBindHandlerAdvisor, a ConfigurationPropertiesBindHandlerAdvisor that intercepts each nested bind attempt under camel.*. When the target type is a third-party bean (not java.*, not org.apache.camel.*, not a primitive/enum/array/Map/ Collection) and no property source has a concrete value or a confirmed descendant key for it, the advisor skips the speculative walk entirely. Normal binding is unaffected: values set via enumerable sources or via a non-enumerable source (e.g. #bean:myMapper) are still applied. The advisor is registered as a static @Bean in CamelAutoConfiguration so it is available to all @ConfigurationProperties binders in the context. Resolves the startup failure seen with camel-salesforce-starter and camel-http-starter on Spring Boot 4.1.1 + Jackson 2.18.x. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
