smongiar opened a new pull request, #1994:
URL: https://github.com/apache/camel-spring-boot/pull/1994
## Problem
Jackson 2.18+ (shipped with Spring Boot 4.1.1) changed `JacksonFeatureSet`
so it is no longer bindable via Spring Boot's `@ConfigurationProperties`
processor.
When `SalesforceComponentConfiguration` is loaded at startup, Spring Boot
recursively traverses the `objectMapper` and `config` fields:
```
camel.component.salesforce.object-mapper
.serializer-provider.generator.write-capabilities
→ JacksonFeatureSet<StreamWriteCapability> ← not bindable
camel.component.salesforce.config.object-mapper
.serializer-provider.generator.write-capabilities
→ JacksonFeatureSet<StreamWriteCapability> ← not bindable
```
This causes a `BindException` at startup **even when the user has not set
any of those properties**, breaking every test that uses the Salesforce
component (sink, source, notify).
## Root cause
`SalesforceComponentConfiguration` is the only starter configuration class
in the whole project that holds a raw `ObjectMapper` instance field (and a
`SalesforceEndpointConfig` field which itself contains one). All other starters
that interact with Jackson only expose boolean flags like
`useDefaultObjectMapper`.
## Fix
Annotate both fields with `@NestedConfigurationProperty`. This instructs the
Spring Boot configuration metadata processor to treat them as opaque bean
references rather than recursively enumerating sub-properties. Users can still
inject custom instances using the `#bean:myBean` convention, which is handled
by `SalesforceComponentConverter`.
--
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]