Sune Keller created CAMEL-10059:
-----------------------------------
Summary: Add option to generate Java 1.8 Optional<?> based DTOs
Key: CAMEL-10059
URL: https://issues.apache.org/jira/browse/CAMEL-10059
Project: Camel
Issue Type: New Feature
Components: camel-salesforce
Reporter: Sune Keller
Priority: Minor
See GitHub PR: https://github.com/apache/camel/pull/1033
Also upgrades to Jackson 2.x to allow injecting a custom {{ObjectMapper}} into
{{SalesforceEndpointConfig}}, which in turn allows registering the
{{Jdk8Module}} when using Java 1.8, which handles (de)serializing of
{{Optional<?>}} in a reasonable manner. Jackson 1.x does not have the
{{Jdk8Module}}.
Note that this requires that the project using the plugin is itself using Java
1.8+.
To use {{Jdk8Module}}, add this dependency:
{code:xml}
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jdk8</artifactId>
</dependency>
{code}
Then configure a custom {{ObjectMapper}} like the following snippet:
{code}
import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
...
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module;
...
@Bean
public SalesforceEndpointConfig salesforceEndpointConfig() {
SalesforceEndpointConfig salesforceEndpointConfig = new
SalesforceEndpointConfig();
...
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.registerModule(new Jdk8Module());
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
salesforceEndpointConfig.setObjectMapper(objectMapper);
return salesforceEndpointConfig;
}
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)