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 2017/01/17 11:07:56 UTC
camel git commit: CAMEL-10716 Salesforce Composite API wrongly ch...
Repository: camel
Updated Branches:
refs/heads/master 91ae7be43 -> 33912cf79
CAMEL-10716 Salesforce Composite API wrongly ch...
...ecks for minimum supported version
Fixes an issue when the Batch request and the configured component
version is version 34.0.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/33912cf7
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/33912cf7
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/33912cf7
Branch: refs/heads/master
Commit: 33912cf79c126640dc2e6d2556f783af66a5a84c
Parents: 91ae7be
Author: Zoran Regvart <zo...@regvart.com>
Authored: Tue Jan 17 11:33:42 2017 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Jan 17 12:07:39 2017 +0100
----------------------------------------------------------------------
.../client/DefaultCompositeApiClient.java | 16 +++++--
.../client/DefaultCompositeApiClientTest.java | 49 ++++++++++++++++++++
2 files changed, 60 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/33912cf7/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClient.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClient.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClient.java
index 17fc7fb..24a8e77 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClient.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClient.java
@@ -117,11 +117,7 @@ public class DefaultCompositeApiClient extends AbstractClientBase implements Com
@Override
public void submitCompositeBatch(final SObjectBatch batch, final ResponseCallback<SObjectBatchResponse> callback)
throws SalesforceException {
- final Version batchVersion = batch.getVersion();
- if (Version.create(version).compareTo(batchVersion) <= 0) {
- throw new SalesforceException("Component is configured with Salesforce API version " + version
- + ", but the Composite API batch operation requires at least " + batchVersion, 0);
- }
+ checkCompositeBatchVersion(version, batch.getVersion());
final String url = versionUrl() + "composite/batch";
@@ -148,6 +144,16 @@ public class DefaultCompositeApiClient extends AbstractClientBase implements Com
.onResponse(tryToReadResponse(SObjectTreeResponse.class, response), exception));
}
+ static void checkCompositeBatchVersion(final String configuredVersion, final Version batchVersion)
+ throws SalesforceException {
+ if (Version.create(configuredVersion).compareTo(batchVersion) < 0) {
+ throw new SalesforceException("Component is configured with Salesforce API version "
+ + configuredVersion
+ + ", but the payload of the Composite API batch operation requires at least "
+ + batchVersion, 0);
+ }
+ }
+
Request createRequest(final HttpMethod method, final String url) {
final Request request = getRequest(method, url);
http://git-wip-us.apache.org/repos/asf/camel/blob/33912cf7/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClientTest.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClientTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClientTest.java
new file mode 100644
index 0000000..049c164
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeApiClientTest.java
@@ -0,0 +1,49 @@
+/**
+ * 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 org.apache.camel.component.salesforce.api.SalesforceException;
+import org.apache.camel.component.salesforce.api.dto.composite.SObjectBatch;
+import org.junit.Test;
+
+public class DefaultCompositeApiClientTest {
+
+ private static final String V34_0 = "34.0";
+
+ private static final String V35_0 = "35.0";
+
+ @Test
+ public void shouldAllowNewerPayloadsWhenConfiguredWithNewerVersion() throws SalesforceException {
+ final SObjectBatch batch = new SObjectBatch(V34_0);
+
+ DefaultCompositeApiClient.checkCompositeBatchVersion(V35_0, batch.getVersion());
+ }
+
+ @Test(expected = SalesforceException.class)
+ public void shouldNotAllowNewerPayloadsWhenConfiguredWithOlderVersion() throws SalesforceException {
+ final SObjectBatch batch = new SObjectBatch(V35_0);
+
+ DefaultCompositeApiClient.checkCompositeBatchVersion(V34_0, batch.getVersion());
+ }
+
+ @Test
+ public void shouldUseCompositeApiFromVersion34Onwards() throws SalesforceException {
+ final SObjectBatch batch = new SObjectBatch(V34_0);
+
+ DefaultCompositeApiClient.checkCompositeBatchVersion(V34_0, batch.getVersion());
+ }
+}