You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by je...@apache.org on 2021/11/16 02:05:42 UTC

[camel] branch main updated: CAMEL-17189: User-supplied SalesforceHttpClient

This is an automated email from the ASF dual-hosted git repository.

jeremyross pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new db6a2d7  CAMEL-17189: User-supplied SalesforceHttpClient
db6a2d7 is described below

commit db6a2d7c4f4555904d6c60efc6aeb056c6c276b4
Author: Jeremy Ross <je...@gmail.com>
AuthorDate: Mon Nov 15 19:58:21 2021 -0600

    CAMEL-17189: User-supplied SalesforceHttpClient
    
    Make sure we actually use the SalesforceHttpClient that the user provides.
---
 .../component/salesforce/SalesforceComponent.java  | 16 ++++++++-----
 .../SalesforceComponentIntegrationTest.java        | 27 ++++++++++++++++++++++
 2 files changed, 37 insertions(+), 6 deletions(-)

diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
index c99fa0a..0fca548 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
@@ -378,14 +378,18 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
 
         // create a Jetty HttpClient if not already set
         if (httpClient == null) {
-            final SSLContextParameters contextParameters = Optional.ofNullable(sslContextParameters)
-                    .orElseGet(() -> Optional.ofNullable(retrieveGlobalSslContextParameters())
-                            .orElseGet(() -> new SSLContextParameters()));
+            if (config != null && config.getHttpClient() != null) {
+                httpClient = config.getHttpClient();
+            } else {
+                final SSLContextParameters contextParameters = Optional.ofNullable(sslContextParameters)
+                        .orElseGet(() -> Optional.ofNullable(retrieveGlobalSslContextParameters())
+                                .orElseGet(() -> new SSLContextParameters()));
 
-            final SslContextFactory sslContextFactory = new SslContextFactory();
-            sslContextFactory.setSslContext(contextParameters.createSSLContext(getCamelContext()));
+                final SslContextFactory sslContextFactory = new SslContextFactory();
+                sslContextFactory.setSslContext(contextParameters.createSSLContext(getCamelContext()));
 
-            httpClient = createHttpClient(this, sslContextFactory, getCamelContext(), workerPoolSize, workerPoolMaxSize);
+                httpClient = createHttpClient(this, sslContextFactory, getCamelContext(), workerPoolSize, workerPoolMaxSize);
+            }
             if (config != null) {
                 config.setHttpClient(httpClient);
             }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentIntegrationTest.java
new file mode 100644
index 0000000..af38b25
--- /dev/null
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentIntegrationTest.java
@@ -0,0 +1,27 @@
+package org.apache.camel.component.salesforce;
+
+import org.junit.jupiter.api.Test;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+public class SalesforceComponentIntegrationTest extends AbstractSalesforceTestBase {
+
+    private SalesforceHttpClient client = new SalesforceHttpClient();
+    private SalesforceComponent component;
+
+    @Test
+    public void usesUserSuppliedHttpClient() {
+        assertEquals(client, component.getHttpClient());
+    }
+
+    @Override
+    protected void createComponent() throws Exception {
+        super.createComponent();
+        client = new SalesforceHttpClient();
+        SalesforceEndpointConfig config = new SalesforceEndpointConfig();
+        config.setHttpClient(client);
+        component = (SalesforceComponent) context.getComponent("salesforce");
+        component.setConfig(config);
+        component.getLoginConfig().setLazyLogin(true);
+    }
+}