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());
+    }
+}