Hi folks,

I am encountering an issue while migrating from Camel 4.0.3 to Camel 4.5.0.
Below is my Jackson configuration class:

@Configuration
public class JacksonConfiguration {

    @Primary
    @Bean("json-mapper")
    public ObjectMapper objectMapper() { return configure(new
ObjectMapper()); }

    @Bean
    @Primary
    public JacksonDataFormatConfiguration jacksonDataFormatConfiguration() {
        JacksonDataFormatConfiguration config = new
JacksonDataFormatConfiguration();
        config.setObjectMapper("json-mapper");
        return config;
    }

    private ObjectMapper configure(ObjectMapper mapper) {
        return mapper
                .setSerializationInclusion(NON_NULL)

.setPropertyNamingStrategy(PropertyNamingStrategies.SNAKE_CASE)
                .enable(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS)
                .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS)
                .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS)

.disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE)
                .disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES)
                .registerModule(new JavaTimeModule())
                .registerModule(new Jdk8Module())
                .registerModule(new GuavaModule())
                .findAndRegisterModules();
    }
}

In the new version, I get an error indicating that Camel cannot deserialize
Optional<Integer> when using .unmarshal().json(JsonLibrary.Jackson,
XXX.class). Upon debugging, I discovered that Camel requires the Jdk8Module
for this operation. It seems that my Jackson configuration is not being
scanned in the application.

Using the following syntax in my route resolves the error:

JacksonDataFormat jacksonDataFormat = new JacksonDataFormat(XXX.class);
jacksonDataFormat.setObjectMapper(objectMapper);
.
.
.
.unmarshal(jacksonDataFormat);

Do I need to explicitly import my configuration each time I need to
deserialize a POJO?

Old Environment:

   - Camel: 4.0.3
   - Spring Boot: 3.1.6
   - Java: 17

New Environment:

   - Camel: 4.5.0
   - Spring Boot: 3.1.6
   - Java: 17

Reply via email to