CAMEL-10144: Salesforce component now ignores ALL unknown properties added by Salesforce that break backward compatibility
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5c3b6652 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5c3b6652 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5c3b6652 Branch: refs/heads/camel-2.17.x Commit: 5c3b6652c13ccff7c752540b7fcd77afdd1f5838 Parents: 2830967 Author: Dhiraj Bokde <dhira...@yahoo.com> Authored: Wed Jul 13 19:54:24 2016 -0700 Committer: Dhiraj Bokde <dhira...@yahoo.com> Committed: Wed Jul 13 19:54:24 2016 -0700 ---------------------------------------------------------------------- .../camel/component/salesforce/api/dto/AbstractDTOBase.java | 3 +++ .../component/salesforce/internal/client/DefaultRestClient.java | 1 + .../salesforce/internal/processor/XmlRestProcessor.java | 1 + .../main/java/org/apache/camel/maven/CamelSalesforceMojo.java | 4 ++-- 4 files changed, 7 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/5c3b6652/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractDTOBase.java ---------------------------------------------------------------------- diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractDTOBase.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractDTOBase.java index 9c0954a..43b9fe1 100644 --- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractDTOBase.java +++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractDTOBase.java @@ -19,11 +19,14 @@ package org.apache.camel.component.salesforce.api.dto; import java.io.IOException; import java.io.StringWriter; +import org.codehaus.jackson.annotate.JsonIgnoreProperties; import org.codehaus.jackson.map.ObjectMapper; import org.codehaus.jackson.map.annotate.JsonSerialize; // disable null values in json output @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL) +// avoid running into Salesforce backward compatibility breaks +@JsonIgnoreProperties(ignoreUnknown = true) public abstract class AbstractDTOBase { private static final ObjectMapper MAPPER = new ObjectMapper(); http://git-wip-us.apache.org/repos/asf/camel/blob/5c3b6652/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java ---------------------------------------------------------------------- diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java index 562719c..5c547b7 100644 --- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java +++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRestClient.java @@ -69,6 +69,7 @@ public class DefaultRestClient extends AbstractClientBase implements RestClient xStream.processAnnotations(RestErrors.class); xStream.processAnnotations(RestChoices.class); + xStream.ignoreUnknownElements(); XStreamUtils.addDefaultPermissions(xStream); } http://git-wip-us.apache.org/repos/asf/camel/blob/5c3b6652/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java ---------------------------------------------------------------------- diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java index a67bef5..3f8756f 100644 --- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java +++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/XmlRestProcessor.java @@ -70,6 +70,7 @@ public class XmlRestProcessor extends AbstractRestProcessor { } }); + result.ignoreUnknownElements(); XStreamUtils.addDefaultPermissions(result); result.registerConverter(new JodaTimeConverter()); return result; http://git-wip-us.apache.org/repos/asf/camel/blob/5c3b6652/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/CamelSalesforceMojo.java ---------------------------------------------------------------------- diff --git a/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/CamelSalesforceMojo.java b/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/CamelSalesforceMojo.java index 5d3d40e..bae7b22 100644 --- a/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/CamelSalesforceMojo.java +++ b/components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/CamelSalesforceMojo.java @@ -691,10 +691,10 @@ public class CamelSalesforceMojo extends AbstractMojo { private static final String BASE64BINARY = "base64Binary"; private static final String MULTIPICKLIST = "multipicklist"; private static final String PICKLIST = "picklist"; - private Boolean useStringsForPicklists; + private boolean useStringsForPicklists; public GeneratorUtility(Boolean useStringsForPicklists) { - this.useStringsForPicklists = useStringsForPicklists; + this.useStringsForPicklists = Boolean.TRUE.equals(useStringsForPicklists); } public boolean isBlobField(SObjectField field) {