You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/11/22 11:21:26 UTC
camel git commit: CAMEL-10507 Make TypeReference inline anonymous
classes constant
Repository: camel
Updated Branches:
refs/heads/master 573368a83 -> 0c5786f4d
CAMEL-10507 Make TypeReference inline anonymous classes constant
Created a class (o.a.c.c.s.a.TypeReferences) to hold any TypeReferences
as constants and replaced all usage with the constant values.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0c5786f4
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0c5786f4
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0c5786f4
Branch: refs/heads/master
Commit: 0c5786f4dc162fc6203145de2ae54da47fe780b0
Parents: 573368a
Author: Zoran Regvart <zo...@regvart.com>
Authored: Tue Nov 22 12:08:43 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Nov 22 12:17:02 2016 +0100
----------------------------------------------------------------------
.../salesforce/api/TypeReferences.java | 62 ++++++++++++++++++++
.../component/salesforce/api/dto/Limits.java | 7 +--
.../client/DefaultAnalyticsApiClient.java | 17 ++----
.../internal/client/DefaultRestClient.java | 9 +--
.../internal/processor/JsonRestProcessor.java | 8 +--
5 files changed, 74 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/0c5786f4/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/TypeReferences.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/TypeReferences.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/TypeReferences.java
new file mode 100644
index 0000000..42f022d
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/TypeReferences.java
@@ -0,0 +1,62 @@
+/**
+ * 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.api;
+
+import java.util.List;
+import java.util.Map;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+
+import org.apache.camel.component.salesforce.api.dto.Limits.Operation;
+import org.apache.camel.component.salesforce.api.dto.Limits.Usage;
+import org.apache.camel.component.salesforce.api.dto.RestError;
+import org.apache.camel.component.salesforce.api.dto.SearchResult;
+import org.apache.camel.component.salesforce.api.dto.Version;
+import org.apache.camel.component.salesforce.api.dto.analytics.reports.RecentReport;
+import org.apache.camel.component.salesforce.api.dto.analytics.reports.ReportInstance;
+
+/**
+ * Class that holds {@link TypeReference} instances needed for Jackson mapper to support generics.
+ */
+public final class TypeReferences {
+
+ public static final TypeReference<Map<Operation, Usage>> USAGES_TYPE = new TypeReference<Map<Operation, Usage>>() {
+ };
+
+ public static final TypeReference<List<RestError>> REST_ERROR_LIST_TYPE = new TypeReference<List<RestError>>() {
+ };
+
+ public static final TypeReference<List<ReportInstance>> REPORT_INSTANCE_LIST_TYPE = new TypeReference<List<ReportInstance>>() {
+ };
+
+ public static final TypeReference<List<RecentReport>> RECENT_REPORT_LIST_TYPE = new TypeReference<List<RecentReport>>() {
+ };
+
+ public static final TypeReference<List<String>> STRING_LIST_TYPE = new TypeReference<List<String>>() {
+ };
+
+ public static final TypeReference<List<Version>> VERSION_LIST_TYPE = new TypeReference<List<Version>>() {
+ };
+
+ public static final TypeReference<List<SearchResult>> SEARCH_RESULT_TYPE = new TypeReference<List<SearchResult>>() {
+ };
+
+ private TypeReferences() {
+ // not meant for instantiation, only for TypeReference constants
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/camel/blob/0c5786f4/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/Limits.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/Limits.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/Limits.java
index 20f7c15..d80bade 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/Limits.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/Limits.java
@@ -25,11 +25,11 @@ import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import org.apache.camel.component.salesforce.api.TypeReferences;
import org.apache.camel.component.salesforce.api.dto.Limits.LimitsDeserializer;
/**
@@ -43,14 +43,11 @@ public final class Limits implements Serializable {
public static final class LimitsDeserializer extends JsonDeserializer {
- private static final TypeReference<Map<Operation, Usage>> USAGES_TYPE = new TypeReference<Map<Operation, Usage>>() {
- };
-
@Override
public Object deserialize(final JsonParser parser, final DeserializationContext context)
throws IOException, JsonProcessingException {
- final Map<Operation, Usage> usages = parser.readValueAs(USAGES_TYPE);
+ final Map<Operation, Usage> usages = parser.readValueAs(TypeReferences.USAGES_TYPE);
return new Limits(usages);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/0c5786f4/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 3461c14..96396f8 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
@@ -27,6 +27,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.camel.component.salesforce.SalesforceHttpClient;
import org.apache.camel.component.salesforce.api.SalesforceException;
+import org.apache.camel.component.salesforce.api.TypeReferences;
import org.apache.camel.component.salesforce.api.dto.RestError;
import org.apache.camel.component.salesforce.api.dto.analytics.reports.AsyncReportResults;
import org.apache.camel.component.salesforce.api.dto.analytics.reports.RecentReport;
@@ -67,15 +68,11 @@ public class DefaultAnalyticsApiClient extends AbstractClientBase implements Ana
doHttpRequest(request, new ClientResponseCallback() {
@Override
- @SuppressWarnings("unchecked")
public void onResponse(InputStream response, SalesforceException ex) {
List<RecentReport> recentReports = null;
if (response != null) {
try {
- recentReports = unmarshalResponse(response, request,
- new TypeReference<List<RecentReport>>() {
- }
- );
+ recentReports = unmarshalResponse(response, request, TypeReferences.RECENT_REPORT_LIST_TYPE);
} catch (SalesforceException e) {
ex = e;
}
@@ -180,15 +177,11 @@ public class DefaultAnalyticsApiClient extends AbstractClientBase implements Ana
doHttpRequest(request, new ClientResponseCallback() {
@Override
- @SuppressWarnings("unchecked")
public void onResponse(InputStream response, SalesforceException ex) {
List<ReportInstance> reportInstances = null;
if (response != null) {
try {
- reportInstances = unmarshalResponse(response, request,
- new TypeReference<List<ReportInstance>>() {
- }
- );
+ reportInstances = unmarshalResponse(response, request, TypeReferences.REPORT_INSTANCE_LIST_TYPE);
} catch (SalesforceException e) {
ex = e;
}
@@ -261,9 +254,7 @@ public class DefaultAnalyticsApiClient extends AbstractClientBase implements Ana
try {
if (responseContent != null) {
// unmarshal RestError
- final List<RestError> errors = objectMapper.readValue(responseContent,
- new TypeReference<List<RestError>>() {
- });
+ final List<RestError> errors = objectMapper.readValue(responseContent, TypeReferences.REST_ERROR_LIST_TYPE);
return new SalesforceException(errors, statusCode);
}
} catch (UnsupportedEncodingException e) {
http://git-wip-us.apache.org/repos/asf/camel/blob/0c5786f4/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 076b3fd..d1a5394 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
@@ -31,6 +31,7 @@ import com.thoughtworks.xstream.XStream;
import org.apache.camel.component.salesforce.SalesforceHttpClient;
import org.apache.camel.component.salesforce.api.SalesforceException;
import org.apache.camel.component.salesforce.api.SalesforceMultipleChoicesException;
+import org.apache.camel.component.salesforce.api.TypeReferences;
import org.apache.camel.component.salesforce.api.dto.RestError;
import org.apache.camel.component.salesforce.api.utils.JsonUtils;
import org.apache.camel.component.salesforce.internal.PayloadFormat;
@@ -100,8 +101,7 @@ public class DefaultRestClient extends AbstractClientBase implements RestClient
// return list of choices as error message for 300
if (statusCode == HttpStatus.MULTIPLE_CHOICES_300) {
if (PayloadFormat.JSON.equals(format)) {
- choices = objectMapper.readValue(responseContent, new TypeReference<List<String>>() {
- });
+ choices = objectMapper.readValue(responseContent, TypeReferences.STRING_LIST_TYPE);
} else {
RestChoices restChoices = new RestChoices();
xStream.fromXML(responseContent, restChoices);
@@ -111,10 +111,7 @@ public class DefaultRestClient extends AbstractClientBase implements RestClient
} else {
final List<RestError> restErrors;
if (PayloadFormat.JSON.equals(format)) {
- restErrors = objectMapper.readValue(
- responseContent, new TypeReference<List<RestError>>() {
- }
- );
+ restErrors = objectMapper.readValue(responseContent, TypeReferences.REST_ERROR_LIST_TYPE);
} else {
RestErrors errors = new RestErrors();
xStream.fromXML(responseContent, errors);
http://git-wip-us.apache.org/repos/asf/camel/blob/0c5786f4/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 7d26b8f..5fe991f 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
@@ -30,6 +30,7 @@ import org.apache.camel.Exchange;
import org.apache.camel.Message;
import org.apache.camel.component.salesforce.SalesforceEndpoint;
import org.apache.camel.component.salesforce.api.SalesforceException;
+import org.apache.camel.component.salesforce.api.TypeReferences;
import org.apache.camel.component.salesforce.api.dto.AbstractDTOBase;
import org.apache.camel.component.salesforce.api.dto.CreateSObjectResult;
import org.apache.camel.component.salesforce.api.dto.GlobalObjects;
@@ -38,7 +39,6 @@ import org.apache.camel.component.salesforce.api.dto.RestResources;
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.api.utils.JsonUtils;
import org.eclipse.jetty.util.StringUtil;
@@ -65,8 +65,7 @@ public class JsonRestProcessor extends AbstractRestProcessor {
switch (operationName) {
case GET_VERSIONS:
// handle in built response types
- exchange.setProperty(RESPONSE_TYPE, new TypeReference<List<Version>>() {
- });
+ exchange.setProperty(RESPONSE_TYPE, TypeReferences.VERSION_LIST_TYPE);
break;
case GET_RESOURCES:
@@ -101,8 +100,7 @@ public class JsonRestProcessor extends AbstractRestProcessor {
case SEARCH:
// handle known response type
- exchange.setProperty(RESPONSE_TYPE, new TypeReference<List<SearchResult>>() {
- });
+ exchange.setProperty(RESPONSE_TYPE, TypeReferences.SEARCH_RESULT_TYPE);
break;
case LIMITS: