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 2020/11/19 19:19:33 UTC
[camel] branch master updated: CAMEL-15866: salesforce: Support new
SOSL search result (#4630)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push:
new 21735bc CAMEL-15866: salesforce: Support new SOSL search result (#4630)
21735bc is described below
commit 21735bce2fde10a9f961e4561c312af678d37171
Author: Jeremy Ross <je...@jeremyross.org>
AuthorDate: Thu Nov 19 13:19:19 2020 -0600
CAMEL-15866: salesforce: Support new SOSL search result (#4630)
---
.../component/salesforce/api/dto/SearchResult.java | 4 +--
.../dto/{SearchResult.java => SearchResult2.java} | 39 ++++++++--------------
.../internal/processor/JsonRestProcessor.java | 7 +++-
.../internal/processor/XmlRestProcessor.java | 7 +++-
4 files changed, 28 insertions(+), 29 deletions(-)
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult.java
index 844c971..66045d3 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult.java
@@ -20,7 +20,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.thoughtworks.xstream.annotations.XStreamAlias;
/**
- * DTO for Salesforce SOSL Search result record.
+ * DTO for Salesforce SOSL Search result record. Starting with v37, this is wrapped by
+ * {@link org.apache.camel.component.salesforce.api.dto.SearchResult2}
*/
@XStreamAlias("SearchResult")
//CHECKSTYLE:OFF
@@ -49,6 +50,5 @@ public final class SearchResult extends AbstractDTOBase {
public void setId(String id) {
this.Id = id;
}
-
}
//CHECKSTYLE:ON
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult2.java
similarity index 57%
copy from components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult.java
copy to components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult2.java
index 844c971..3513ff3 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/api/dto/SearchResult2.java
@@ -16,39 +16,28 @@
*/
package org.apache.camel.component.salesforce.api.dto;
+import java.util.List;
+
import com.fasterxml.jackson.annotation.JsonProperty;
import com.thoughtworks.xstream.annotations.XStreamAlias;
+import com.thoughtworks.xstream.annotations.XStreamImplicit;
/**
- * DTO for Salesforce SOSL Search result record.
+ * DTO for Salesforce SOSL Search result record for v37 and later
*/
-@XStreamAlias("SearchResult")
-//CHECKSTYLE:OFF
-public final class SearchResult extends AbstractDTOBase {
-
- // WARNING: these fields have case sensitive names,
- // the field name MUST match the field name used by Salesforce
- // DO NOT change these field names to camel case!!!
- private Attributes attributes;
- private String Id;
-
- public Attributes getAttributes() {
- return attributes;
- }
+@XStreamAlias("SearchResultWithMetadata")
+public final class SearchResult2 extends AbstractDTOBase {
- public void setAttributes(Attributes attributes) {
- this.attributes = attributes;
- }
+ @XStreamImplicit(itemFieldName = "searchRecords")
+ private List<SearchResult> searchRecords;
- @JsonProperty("Id")
- public String getId() {
- return Id;
+ @JsonProperty("searchRecords")
+ public List<SearchResult> getSearchRecords() {
+ return searchRecords;
}
- @JsonProperty("Id")
- public void setId(String id) {
- this.Id = id;
+ @JsonProperty("searchRecords")
+ public void setSearchRecords(List<SearchResult> searchRecords) {
+ this.searchRecords = searchRecords;
}
-
}
-//CHECKSTYLE:ON
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 b83c12e..c3cdec8 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
@@ -38,6 +38,7 @@ import org.apache.camel.component.salesforce.api.dto.Limits;
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.SearchResult2;
import org.apache.camel.component.salesforce.api.dto.approval.ApprovalResult;
import org.apache.camel.component.salesforce.api.dto.approval.Approvals;
import org.apache.camel.component.salesforce.api.utils.JsonUtils;
@@ -100,7 +101,11 @@ public class JsonRestProcessor extends AbstractRestProcessor {
case SEARCH:
// handle known response type
- exchange.setProperty(RESPONSE_TYPE, TypeReferences.SEARCH_RESULT_TYPE);
+ if (Double.parseDouble(endpoint.getConfiguration().getApiVersion()) >= 37.0) {
+ exchange.setProperty(RESPONSE_CLASS, SearchResult2.class);
+ } else {
+ exchange.setProperty(RESPONSE_TYPE, TypeReferences.SEARCH_RESULT_TYPE);
+ }
break;
case RECENT:
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 87209ca..8d9abf4 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
@@ -39,6 +39,7 @@ import org.apache.camel.component.salesforce.api.dto.GlobalObjects;
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.SearchResult2;
import org.apache.camel.component.salesforce.api.dto.SearchResults;
import org.apache.camel.component.salesforce.api.dto.Versions;
import org.apache.camel.component.salesforce.api.dto.approval.ApprovalResult;
@@ -134,7 +135,11 @@ public class XmlRestProcessor extends AbstractRestProcessor {
case SEARCH:
// handle known response type
- exchange.setProperty(RESPONSE_CLASS, SearchResults.class);
+ if (Double.parseDouble(endpoint.getConfiguration().getApiVersion()) >= 37.0) {
+ exchange.setProperty(RESPONSE_CLASS, SearchResult2.class);
+ } else {
+ exchange.setProperty(RESPONSE_CLASS, SearchResults.class);
+ }
break;
case APEX_CALL: