[ 
https://issues.apache.org/jira/browse/CAMEL-10059?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-10059.
---------------------------------
       Resolution: Fixed
         Assignee: Claus Ibsen
    Fix Version/s: 2.18.0

Thanks for the PR

> 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
>            Assignee: Claus Ibsen
>            Priority: Minor
>              Labels: camel-salesforce, jackson2, salesforce
>             Fix For: 2.18.0
>
>
> 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)

Reply via email to