You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by dh...@apache.org on 2016/07/14 06:11:43 UTC
[1/3] camel git commit: CAMEL-10143: Changed LastActivityDate to
DateTime
Repository: camel
Updated Branches:
refs/heads/master 3a8722abd -> 690726893
CAMEL-10143: Changed LastActivityDate to DateTime
Conflicts:
components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractSObjectBase.java
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/fc2686c6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fc2686c6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fc2686c6
Branch: refs/heads/master
Commit: fc2686c66387e7873d5986d71f351c17c79be724
Parents: 3a8722a
Author: Dhiraj Bokde <dh...@yahoo.com>
Authored: Wed Jul 13 19:02:00 2016 -0700
Committer: Dhiraj Bokde <dh...@yahoo.com>
Committed: Wed Jul 13 20:12:03 2016 -0700
----------------------------------------------------------------------
.../component/salesforce/api/dto/AbstractSObjectBase.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/fc2686c6/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractSObjectBase.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractSObjectBase.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractSObjectBase.java
index bbdc3ac..183a7aa 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractSObjectBase.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractSObjectBase.java
@@ -36,7 +36,7 @@ public class AbstractSObjectBase extends AbstractDTOBase {
private ZonedDateTime LastModifiedDate;
private String LastModifiedById;
private ZonedDateTime SystemModstamp;
- private String LastActivityDate;
+ private ZonedDateTime LastActivityDate;
private ZonedDateTime LastViewedDate;
private ZonedDateTime LastReferencedDate;
@@ -157,12 +157,12 @@ public class AbstractSObjectBase extends AbstractDTOBase {
}
@JsonProperty("LastActivityDate")
- public String getLastActivityDate() {
+ public ZonedDateTime getLastActivityDate() {
return LastActivityDate;
}
@JsonProperty("LastActivityDate")
- public void setLastActivityDate(String lastActivityDate) {
+ public void setLastActivityDate(ZonedDateTime lastActivityDate) {
this.LastActivityDate = lastActivityDate;
}
[2/3] camel git commit: CAMEL-10144: Salesforce component now ignores
ALL unknown properties added by Salesforce that break backward compatibility
Posted by dh...@apache.org.
CAMEL-10144: Salesforce component now ignores ALL unknown properties added by Salesforce that break backward compatibility
Conflicts:
components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/AbstractDTOBase.java
components/camel-salesforce/camel-salesforce-maven-plugin/src/main/java/org/apache/camel/maven/CamelSalesforceMojo.java
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ff1898b6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ff1898b6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ff1898b6
Branch: refs/heads/master
Commit: ff1898b610fed3d961224d4741f9306f89525fef
Parents: fc2686c
Author: Dhiraj Bokde <dh...@yahoo.com>
Authored: Wed Jul 13 19:54:24 2016 -0700
Committer: Dhiraj Bokde <dh...@yahoo.com>
Committed: Wed Jul 13 20:16:59 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 | 5 ++---
4 files changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/ff1898b6/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 cd173b8..f05735c 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 com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
// disable null values in json output
@JsonInclude(JsonInclude.Include.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/ff1898b6/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 4aaa225..9d5849e 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/ff1898b6/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/ff1898b6/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 3462264..7a93db6 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
@@ -727,11 +727,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) {
[3/3] camel git commit: Created JsonUtils to create properly
configured ObjectMapper
Posted by dh...@apache.org.
Created JsonUtils to create properly configured ObjectMapper
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/69072689
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/69072689
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/69072689
Branch: refs/heads/master
Commit: 6907268939de07eebd919abdc6c547c4c2043a7d
Parents: ff1898b
Author: Dhiraj Bokde <dh...@yahoo.com>
Authored: Wed Jul 13 23:11:37 2016 -0700
Committer: Dhiraj Bokde <dh...@yahoo.com>
Committed: Wed Jul 13 23:11:37 2016 -0700
----------------------------------------------------------------------
.../salesforce/SalesforceConsumer.java | 3 +-
.../salesforce/api/dto/AbstractDTOBase.java | 4 +-
.../salesforce/internal/SalesforceSession.java | 3 +-
.../client/DefaultAnalyticsApiClient.java | 2 +-
.../internal/client/DefaultRestClient.java | 2 +-
.../salesforce/internal/client/JsonUtils.java | 35 +++++++++++++
.../internal/datetime/DateTimeDeserializer.java | 52 +++++++++++++++++++
.../internal/datetime/DateTimeModule.java | 31 ++++++++++++
.../internal/datetime/DateTimeSerializer.java | 48 ++++++++++++++++++
.../internal/joda/DateTimeDeserializer.java | 53 --------------------
.../internal/joda/DateTimeModule.java | 31 ------------
.../internal/joda/DateTimeSerializer.java | 48 ------------------
.../internal/processor/JsonRestProcessor.java | 8 +--
.../internal/streaming/PushTopicHelper.java | 3 +-
.../api/MultiSelectPicklistJsonTest.java | 7 ++-
.../salesforce/internal/LoginTokenTest.java | 7 ++-
.../apache/camel/maven/CamelSalesforceMojo.java | 3 +-
17 files changed, 191 insertions(+), 149 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
index e606a81..93d8faa 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
@@ -28,6 +28,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.Processor;
import org.apache.camel.RuntimeCamelException;
import org.apache.camel.component.salesforce.internal.client.DefaultRestClient;
+import org.apache.camel.component.salesforce.internal.client.JsonUtils;
import org.apache.camel.component.salesforce.internal.client.RestClient;
import org.apache.camel.component.salesforce.internal.streaming.PushTopicHelper;
import org.apache.camel.component.salesforce.internal.streaming.SubscriptionHelper;
@@ -42,7 +43,7 @@ import org.cometd.bayeux.client.ClientSessionChannel;
public class SalesforceConsumer extends DefaultConsumer {
- private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+ private static final ObjectMapper OBJECT_MAPPER = JsonUtils.createObjectMapper();
private static final String EVENT_PROPERTY = "event";
private static final String TYPE_PROPERTY = "type";
private static final String CREATED_DATE_PROPERTY = "createdDate";
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/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 f05735c..060605c 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
@@ -23,13 +23,15 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.camel.component.salesforce.internal.client.JsonUtils;
+
// disable null values in json output
@JsonInclude(JsonInclude.Include.NON_NULL)
// avoid running into Salesforce backward compatibility breaks
@JsonIgnoreProperties(ignoreUnknown = true)
public abstract class AbstractDTOBase {
- private static final ObjectMapper MAPPER = new ObjectMapper();
+ private static final ObjectMapper MAPPER = JsonUtils.createObjectMapper();
@Override
public String toString() {
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/SalesforceSession.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/SalesforceSession.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/SalesforceSession.java
index 8d6d1cc..3f6ce0c 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/SalesforceSession.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/SalesforceSession.java
@@ -33,6 +33,7 @@ import org.apache.camel.component.salesforce.SalesforceHttpClient;
import org.apache.camel.component.salesforce.SalesforceLoginConfig;
import org.apache.camel.component.salesforce.api.SalesforceException;
import org.apache.camel.component.salesforce.api.dto.RestError;
+import org.apache.camel.component.salesforce.internal.client.JsonUtils;
import org.apache.camel.component.salesforce.internal.dto.LoginError;
import org.apache.camel.component.salesforce.internal.dto.LoginToken;
import org.apache.camel.util.ObjectHelper;
@@ -82,7 +83,7 @@ public class SalesforceSession implements Service {
String loginUrl = config.getLoginUrl();
config.setLoginUrl(loginUrl.endsWith("/") ? loginUrl.substring(0, loginUrl.length() - 1) : loginUrl);
- this.objectMapper = new ObjectMapper();
+ this.objectMapper = JsonUtils.createObjectMapper();
this.listeners = new CopyOnWriteArraySet<SalesforceSessionListener>();
}
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultAnalyticsApiClient.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultAnalyticsApiClient.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultAnalyticsApiClient.java
index cd3cb06..45efeeb 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultAnalyticsApiClient.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultAnalyticsApiClient.java
@@ -56,7 +56,7 @@ public class DefaultAnalyticsApiClient extends AbstractClientBase implements Ana
SalesforceHttpClient httpClient) throws SalesforceException {
super(version, session, httpClient);
- objectMapper = new ObjectMapper();
+ objectMapper = JsonUtils.createObjectMapper();
}
@Override
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/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 9d5849e..50560a2 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
@@ -64,7 +64,7 @@ public class DefaultRestClient extends AbstractClientBase implements RestClient
this.format = format;
// initialize error parsers for JSON and XML
- this.objectMapper = new ObjectMapper();
+ this.objectMapper = JsonUtils.createObjectMapper();
this.xStream = new XStream();
xStream.processAnnotations(RestErrors.class);
xStream.processAnnotations(RestChoices.class);
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/JsonUtils.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/JsonUtils.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/JsonUtils.java
new file mode 100644
index 0000000..e894ce3
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/JsonUtils.java
@@ -0,0 +1,35 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.internal.client;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+
+import org.apache.camel.component.salesforce.internal.datetime.DateTimeModule;
+
+/**
+ * Factory class for creating {@linkplain com.fasterxml.jackson.databind.ObjectMapper}
+ */
+public abstract class JsonUtils {
+ public static ObjectMapper createObjectMapper() {
+ // enable date time support including Java 1.8 ZonedDateTime
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
+ objectMapper.registerModule(new DateTimeModule());
+ return objectMapper;
+ }
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeDeserializer.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeDeserializer.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeDeserializer.java
new file mode 100644
index 0000000..39c19c3
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeDeserializer.java
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.internal.datetime;
+
+import java.io.IOException;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeFormatterBuilder;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.core.JsonToken;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+
+
+public class DateTimeDeserializer extends JsonDeserializer<ZonedDateTime> {
+
+ private final DateTimeFormatter formatter = new DateTimeFormatterBuilder()
+ .appendPattern("yyyy-MM-dd'T'HH:mm:ss[.A][,A]")
+ .appendOffset("+HH:mm", "Z")
+ .toFormatter();
+
+ public DateTimeDeserializer() {
+ super();
+ }
+
+ @Override
+ public ZonedDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
+ JsonToken currentToken = jsonParser.getCurrentToken();
+ if (currentToken == JsonToken.VALUE_STRING) {
+ String dateTimeAsString = jsonParser.getText().trim();
+ return formatter.parse(dateTimeAsString, ZonedDateTime::from);
+ }
+ throw deserializationContext.mappingException(getClass());
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeModule.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeModule.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeModule.java
new file mode 100644
index 0000000..aec2df8
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeModule.java
@@ -0,0 +1,31 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.internal.datetime;
+
+
+import java.time.ZonedDateTime;
+
+import com.fasterxml.jackson.databind.module.SimpleModule;
+
+public class DateTimeModule extends SimpleModule {
+
+ public DateTimeModule() {
+ super();
+ addSerializer(ZonedDateTime.class, new DateTimeSerializer());
+ addDeserializer(ZonedDateTime.class, new DateTimeDeserializer());
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeSerializer.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeSerializer.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeSerializer.java
new file mode 100644
index 0000000..0ad029e
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/datetime/DateTimeSerializer.java
@@ -0,0 +1,48 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.internal.datetime;
+
+
+
+import java.io.IOException;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeFormatterBuilder;
+
+import com.fasterxml.jackson.core.JsonGenerator;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.SerializerProvider;
+
+
+public class DateTimeSerializer extends JsonSerializer<ZonedDateTime> {
+
+ private final DateTimeFormatter formatter = new DateTimeFormatterBuilder()
+ .appendPattern("yyyy-MM-dd'T'HH:mm:ss")
+ .appendOffset("+HH:mm", "Z")
+ .toFormatter();
+
+ public DateTimeSerializer() {
+ super();
+ }
+
+ @Override
+ public void serialize(ZonedDateTime dateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
+ jsonGenerator.writeString(formatter.format(dateTime));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeDeserializer.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeDeserializer.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeDeserializer.java
deleted file mode 100644
index 0f4b771..0000000
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeDeserializer.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.salesforce.internal.joda;
-
-import java.io.IOException;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.time.format.DateTimeFormatterBuilder;
-import java.time.temporal.TemporalQuery;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-
-
-public class DateTimeDeserializer extends JsonDeserializer<ZonedDateTime> {
-
- private final DateTimeFormatter formatter = new DateTimeFormatterBuilder()
- .appendPattern("yyyy-MM-dd'T'HH:mm:ss")
- .appendOffset("+HH:mm", "Z")
- .toFormatter();
-
- public DateTimeDeserializer() {
- super();
- }
-
- @Override
- public ZonedDateTime deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
- JsonToken currentToken = jsonParser.getCurrentToken();
- if (currentToken == JsonToken.VALUE_STRING) {
- String dateTimeAsString = jsonParser.getText().trim();
- return formatter.parse(dateTimeAsString, ZonedDateTime::from);
- }
- throw deserializationContext.mappingException(getClass());
- }
-
-}
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeModule.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeModule.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeModule.java
deleted file mode 100644
index 8ce74f1..0000000
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeModule.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.salesforce.internal.joda;
-
-
-import java.time.ZonedDateTime;
-
-import com.fasterxml.jackson.databind.module.SimpleModule;
-
-public class DateTimeModule extends SimpleModule {
-
- public DateTimeModule() {
- super();
- addSerializer(ZonedDateTime.class, new DateTimeSerializer());
- addDeserializer(ZonedDateTime.class, new DateTimeDeserializer());
- }
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeSerializer.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeSerializer.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeSerializer.java
deleted file mode 100644
index bcc216f..0000000
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/joda/DateTimeSerializer.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.component.salesforce.internal.joda;
-
-
-
-import java.io.IOException;
-import java.time.ZonedDateTime;
-import java.time.format.DateTimeFormatter;
-import java.time.format.DateTimeFormatterBuilder;
-
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-
-
-public class DateTimeSerializer extends JsonSerializer<ZonedDateTime> {
-
- private final DateTimeFormatter formatter = new DateTimeFormatterBuilder()
- .appendPattern("yyyy-MM-dd'T'HH:mm:ss")
- .appendOffset("+HH:mm", "Z")
- .toFormatter();
-
- public DateTimeSerializer() {
- super();
- }
-
- @Override
- public void serialize(ZonedDateTime dateTime, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {
- jsonGenerator.writeString(formatter.format(dateTime));
- }
-
-}
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/JsonRestProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/JsonRestProcessor.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/JsonRestProcessor.java
index 53f31b3..1e8f948 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/JsonRestProcessor.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/processor/JsonRestProcessor.java
@@ -24,7 +24,6 @@ import java.util.List;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
@@ -39,7 +38,7 @@ import org.apache.camel.component.salesforce.api.dto.SObjectBasicInfo;
import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
import org.apache.camel.component.salesforce.api.dto.SearchResult;
import org.apache.camel.component.salesforce.api.dto.Version;
-import org.apache.camel.component.salesforce.internal.joda.DateTimeModule;
+import org.apache.camel.component.salesforce.internal.client.JsonUtils;
import org.eclipse.jetty.util.StringUtil;
public class JsonRestProcessor extends AbstractRestProcessor {
@@ -55,10 +54,7 @@ public class JsonRestProcessor extends AbstractRestProcessor {
if (endpoint.getConfiguration().getObjectMapper() != null) {
this.objectMapper = endpoint.getConfiguration().getObjectMapper();
} else {
- this.objectMapper = new ObjectMapper();
- // enable date time support including Joda DateTime
- this.objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
- this.objectMapper.registerModule(new DateTimeModule());
+ this.objectMapper = JsonUtils.createObjectMapper();
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/PushTopicHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/PushTopicHelper.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/PushTopicHelper.java
index 3321b4f..a92924d 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/PushTopicHelper.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/PushTopicHelper.java
@@ -26,6 +26,7 @@ import org.apache.camel.CamelException;
import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
import org.apache.camel.component.salesforce.api.SalesforceException;
import org.apache.camel.component.salesforce.api.dto.CreateSObjectResult;
+import org.apache.camel.component.salesforce.internal.client.JsonUtils;
import org.apache.camel.component.salesforce.internal.client.RestClient;
import org.apache.camel.component.salesforce.internal.client.SyncResponseCallback;
import org.apache.camel.component.salesforce.internal.dto.PushTopic;
@@ -36,7 +37,7 @@ import org.slf4j.LoggerFactory;
public class PushTopicHelper {
private static final Logger LOG = LoggerFactory.getLogger(PushTopicHelper.class);
- private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
+ private static final ObjectMapper OBJECT_MAPPER = JsonUtils.createObjectMapper();
private static final String PUSH_TOPIC_OBJECT_NAME = "PushTopic";
private static final long API_TIMEOUT = 60; // Rest API call timeout
private final SalesforceEndpointConfig config;
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistJsonTest.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistJsonTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistJsonTest.java
index 393c1d6..a3c2500 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistJsonTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/api/MultiSelectPicklistJsonTest.java
@@ -19,16 +19,19 @@ package org.apache.camel.component.salesforce.api;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.camel.component.salesforce.dto.generated.MSPTest;
+import org.apache.camel.component.salesforce.internal.client.JsonUtils;
import org.junit.Test;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
public class MultiSelectPicklistJsonTest {
private static final String TEST_JSON = "{\"MspField\":\"Value1;Value2;Value3\"}";
private static final String TEST_NULL_JSON = "{\"MspField\":null}";
- private static ObjectMapper objectMapper = new ObjectMapper();
+ private static ObjectMapper objectMapper = JsonUtils.createObjectMapper();
@Test
public void testMarshal() throws Exception {
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/LoginTokenTest.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/LoginTokenTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/LoginTokenTest.java
index a0494db..5ac63be 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/LoginTokenTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/LoginTokenTest.java
@@ -18,12 +18,15 @@ package org.apache.camel.component.salesforce.internal;
import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.camel.component.salesforce.internal.client.JsonUtils;
import org.apache.camel.component.salesforce.internal.dto.LoginToken;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import static org.junit.Assert.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
public class LoginTokenTest {
@@ -42,7 +45,7 @@ public class LoginTokenTest {
+ " \"issued_at\": \"1442798068621\",\n"
+ " \"an_unrecognised_field\": \"foo\"\n"
+ "}";
- ObjectMapper mapper = new ObjectMapper();
+ ObjectMapper mapper = JsonUtils.createObjectMapper();
Exception e = null;
LoginToken token = null;
try {
http://git-wip-us.apache.org/repos/asf/camel/blob/69072689/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 7a93db6..3e0324b 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
@@ -52,6 +52,7 @@ import org.apache.camel.component.salesforce.api.dto.SObjectField;
import org.apache.camel.component.salesforce.internal.PayloadFormat;
import org.apache.camel.component.salesforce.internal.SalesforceSession;
import org.apache.camel.component.salesforce.internal.client.DefaultRestClient;
+import org.apache.camel.component.salesforce.internal.client.JsonUtils;
import org.apache.camel.component.salesforce.internal.client.RestClient;
import org.apache.camel.component.salesforce.internal.client.SyncResponseCallback;
import org.apache.camel.util.IntrospectionSupport;
@@ -309,7 +310,7 @@ public class CamelSalesforceMojo extends AbstractMojo {
try {
// use Jackson json
- final ObjectMapper mapper = new ObjectMapper();
+ final ObjectMapper mapper = JsonUtils.createObjectMapper();
// call getGlobalObjects to get all SObjects
final Set<String> objectNames = new TreeSet<String>();