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]

Reply via email to