You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gn...@apache.org on 2022/12/08 13:02:08 UTC

[camel] 04/04: Fix salesforce component

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

gnodet pushed a commit to branch jakarta/salesforce
in repository https://gitbox.apache.org/repos/asf/camel.git

commit eda15c498fb3834996924607e353ecb1e37cffcc
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Wed Dec 7 11:46:38 2022 +0100

    Fix salesforce component
---
 .../salesforce/codegen/AbstractSalesforceExecution.java |  2 +-
 .../camel-salesforce/camel-salesforce-component/pom.xml | 12 +-----------
 .../camel/component/salesforce/SalesforceComponent.java |  6 +++---
 .../camel/component/salesforce/SalesforceConsumer.java  |  6 ++++--
 .../component/salesforce/SalesforceHttpClient.java      | 13 ++++++++++---
 .../salesforce/internal/client/AbstractClientBase.java  |  9 +++++----
 .../internal/client/DefaultAnalyticsApiClient.java      |  2 +-
 .../internal/client/DefaultBulkApiClient.java           |  2 +-
 .../internal/client/DefaultBulkApiV2Client.java         |  2 +-
 .../internal/client/DefaultCompositeApiClient.java      |  2 +-
 .../DefaultCompositeSObjectCollectionsApiClient.java    |  2 +-
 .../salesforce/internal/client/DefaultRawClient.java    |  4 ++--
 .../salesforce/internal/client/DefaultRestClient.java   |  2 +-
 .../internal/client/SalesforceSecurityHandler.java      | 17 +++++++++--------
 .../salesforce/internal/streaming/ReplayExtension.java  |  4 ++--
 .../internal/streaming/SubscriptionHelper.java          | 13 +++++--------
 .../component/salesforce/BulkApiIntegrationTest.java    | 10 ++++++++--
 .../component/salesforce/HttpProxyIntegrationTest.java  | 10 ++++------
 .../component/salesforce/RestApiIntegrationTest.java    | 17 +++++++++++++----
 .../component/salesforce/SalesforceConsumerTest.java    |  6 ++++--
 .../salesforce/internal/SessionIntegrationTest.java     |  2 +-
 .../internal/client/AbstractClientBaseTest.java         |  4 ++--
 22 files changed, 80 insertions(+), 67 deletions(-)

diff --git a/components/camel-salesforce/camel-salesforce-codegen/src/main/java/org/apache/camel/component/salesforce/codegen/AbstractSalesforceExecution.java b/components/camel-salesforce/camel-salesforce-codegen/src/main/java/org/apache/camel/component/salesforce/codegen/AbstractSalesforceExecution.java
index db6eeb356a3..a7cf151ebb3 100644
--- a/components/camel-salesforce/camel-salesforce-codegen/src/main/java/org/apache/camel/component/salesforce/codegen/AbstractSalesforceExecution.java
+++ b/components/camel-salesforce/camel-salesforce-codegen/src/main/java/org/apache/camel/component/salesforce/codegen/AbstractSalesforceExecution.java
@@ -203,7 +203,7 @@ public abstract class AbstractSalesforceExecution {
 
         // set ssl context parameters
         try {
-            final SslContextFactory sslContextFactory = new SslContextFactory();
+            final SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
             sslContextFactory.setSslContext(sslContextParameters.createSSLContext(camelContext));
 
             SecurityUtils.adaptToIBMCipherNames(sslContextFactory);
diff --git a/components/camel-salesforce/camel-salesforce-component/pom.xml b/components/camel-salesforce/camel-salesforce-component/pom.xml
index acb7712049c..338271bb680 100644
--- a/components/camel-salesforce/camel-salesforce-component/pom.xml
+++ b/components/camel-salesforce/camel-salesforce-component/pom.xml
@@ -108,18 +108,8 @@
         </dependency>
         <dependency>
             <groupId>org.cometd.java</groupId>
-            <artifactId>cometd-java-client-websocket-jetty</artifactId>
+            <artifactId>cometd-java-client-http-jetty</artifactId>
             <version>${cometd-java-client-version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.eclipse.jetty</groupId>
-                    <artifactId>*</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-api</artifactId>
-                </exclusion>
-            </exclusions>
         </dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>
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 6fac729d865..8659ba42e1a 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
@@ -391,7 +391,7 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
                         .orElseGet(() -> Optional.ofNullable(retrieveGlobalSslContextParameters())
                                 .orElseGet(() -> new SSLContextParameters()));
 
-                final SslContextFactory sslContextFactory = new SslContextFactory();
+                final SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
                 sslContextFactory.setSslContext(contextParameters.createSSLContext(getCamelContext()));
 
                 httpClient = createHttpClient(this, sslContextFactory, getCamelContext(), workerPoolSize, workerPoolMaxSize);
@@ -820,7 +820,7 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
         // let's work with a copy so original properties are intact
         PropertyBindingSupport.bindProperties(camelContext, sslContextParameters, new HashMap<>(properties));
 
-        final SslContextFactory sslContextFactory = new SslContextFactory();
+        final SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
         sslContextFactory.setSslContext(sslContextParameters.createSSLContext(camelContext));
 
         final SalesforceHttpClient httpClient
@@ -838,7 +838,7 @@ public class SalesforceComponent extends DefaultComponent implements SSLContextP
     }
 
     static SalesforceHttpClient createHttpClient(
-            Object source, final SslContextFactory sslContextFactory, final CamelContext context, int workerPoolSize,
+            Object source, final SslContextFactory.Client sslContextFactory, final CamelContext context, int workerPoolSize,
             int workerPoolMaxSize) {
         SecurityUtils.adaptToIBMCipherNames(sslContextFactory);
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
index bda83acabb9..71ce21726e0 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceConsumer.java
@@ -170,7 +170,8 @@ public class SalesforceConsumer extends DefaultConsumer {
 
         if (rawPayload) {
             // getJSON is used for raw payload
-            in.setBody(message.getJSON());
+            in.setBody(new org.cometd.common.JacksonJSONContextClient()
+                            .generate(new org.cometd.common.HashMapMessage(message)));
         } else {
             payload.remove("ChangeEventHeader");
             in.setBody(payload);
@@ -200,7 +201,8 @@ public class SalesforceConsumer extends DefaultConsumer {
 
         if (rawPayload) {
             // getJSON is used for raw payload
-            in.setBody(message.getJSON());
+            in.setBody(new org.cometd.common.JacksonJSONContextClient()
+                    .generate(new org.cometd.common.HashMapMessage(message)));
         } else {
             in.setBody(platformEvent);
         }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceHttpClient.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceHttpClient.java
index e12403c498a..67aceb4c9a6 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceHttpClient.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceHttpClient.java
@@ -33,6 +33,7 @@ import org.eclipse.jetty.client.HttpRequest;
 import org.eclipse.jetty.client.ProtocolHandler;
 import org.eclipse.jetty.client.api.Request;
 import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP;
+import org.eclipse.jetty.io.ClientConnector;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 
 /**
@@ -61,12 +62,12 @@ public class SalesforceHttpClient extends HttpClient {
         this(null);
     }
 
-    public SalesforceHttpClient(SslContextFactory sslContextFactory) {
+    public SalesforceHttpClient(SslContextFactory.Client sslContextFactory) {
         this(null, Executors.newCachedThreadPool(), sslContextFactory);
     }
 
-    public SalesforceHttpClient(CamelContext context, ExecutorService workerPool, SslContextFactory sslContextFactory) {
-        super(new HttpClientTransportOverHTTP(), sslContextFactory);
+    public SalesforceHttpClient(CamelContext context, ExecutorService workerPool, SslContextFactory.Client sslContextFactory) {
+        super(new HttpClientTransportOverHTTP(newConnector(sslContextFactory)));
         this.workerPool = workerPool;
         this.camelContext = context;
 
@@ -90,6 +91,12 @@ public class SalesforceHttpClient extends HttpClient {
         }
     }
 
+    private static ClientConnector newConnector(SslContextFactory.Client sslContextFactory) {
+        ClientConnector connector = new ClientConnector();
+        connector.setSslContextFactory(sslContextFactory);
+        return connector;
+    }
+
     @Override
     public HttpRequest newHttpRequest(HttpConversation conversation, URI uri) {
         final SalesforceHttpRequest request = new SalesforceHttpRequest(this, conversation, uri);
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBase.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBase.java
index cdbc0462509..984cb05a001 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBase.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBase.java
@@ -368,10 +368,11 @@ public abstract class AbstractClientBase extends ServiceSupport
             return;
         }
 
-        final HttpFields requestHeaders = request.getHeaders();
-        for (Entry<String, List<String>> header : headers.entrySet()) {
-            requestHeaders.put(header.getKey(), header.getValue());
-        }
+        request.headers(requestHeaders -> {
+            for (Entry<String, List<String>> header : headers.entrySet()) {
+                requestHeaders.put(header.getKey(), header.getValue());
+            }
+        });
     }
 
     static Map<String, List<String>> determineHeaders(final Exchange exchange) {
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 fa9725fddf4..eee09ac6fdd 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
@@ -250,7 +250,7 @@ public class DefaultAnalyticsApiClient extends AbstractClientBase implements Ana
     @Override
     protected void setAccessToken(Request request) {
         // replace old token
-        request.getHeaders().put(HttpHeader.AUTHORIZATION, TOKEN_PREFIX + accessToken);
+        request.header(HttpHeader.AUTHORIZATION, TOKEN_PREFIX + accessToken);
     }
 
     @Override
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiClient.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiClient.java
index b8991d00437..d2d86630098 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiClient.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiClient.java
@@ -366,7 +366,7 @@ public class DefaultBulkApiClient extends AbstractClientBase implements BulkApiC
     @Override
     protected void setAccessToken(Request request) {
         // replace old token
-        request.getHeaders().put(TOKEN_HEADER, accessToken);
+        request.header(TOKEN_HEADER, accessToken);
     }
 
     @Override
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiV2Client.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiV2Client.java
index 38f11b3274d..8b4ff1554c3 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiV2Client.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultBulkApiV2Client.java
@@ -312,7 +312,7 @@ public class DefaultBulkApiV2Client extends AbstractClientBase implements BulkAp
 
     @Override
     protected void setAccessToken(Request request) {
-        request.getHeaders().put(AUTHORIZATION_HEADER, BEARER_PREFIX + accessToken);
+        request.header(AUTHORIZATION_HEADER, BEARER_PREFIX + accessToken);
     }
 
     private String jobUrl(String jobId) {
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 9b05fa62240..79567c25471 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
@@ -228,7 +228,7 @@ public class DefaultCompositeApiClient extends AbstractClientBase implements Com
 
     @Override
     protected void setAccessToken(final Request request) {
-        request.getHeaders().put("Authorization", "Bearer " + accessToken);
+        request.header("Authorization", "Bearer " + accessToken);
     }
 
     static void checkCompositeBatchVersion(final String configuredVersion, final Version batchVersion)
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeSObjectCollectionsApiClient.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeSObjectCollectionsApiClient.java
index 734ae54b4de..ff9d6956d1a 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeSObjectCollectionsApiClient.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultCompositeSObjectCollectionsApiClient.java
@@ -182,7 +182,7 @@ public class DefaultCompositeSObjectCollectionsApiClient extends AbstractClientB
 
     @Override
     protected void setAccessToken(final Request request) {
-        request.getHeaders().put("Authorization", "Bearer " + accessToken);
+        request.header("Authorization", "Bearer " + accessToken);
     }
 
     private Request createRequest(final String method, final String url, final Map<String, List<String>> headers) {
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRawClient.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRawClient.java
index c4483d4e0af..a004081d6e8 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRawClient.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/DefaultRawClient.java
@@ -49,8 +49,8 @@ public class DefaultRawClient extends AbstractClientBase implements RawClient {
     @Override
     protected void setAccessToken(Request request) {
         // replace old token
-        request.getHeaders().put(BULK_TOKEN_HEADER, accessToken);
-        request.getHeaders().put(REST_TOKEN_HEADER, TOKEN_PREFIX + accessToken);
+        request.header(BULK_TOKEN_HEADER, accessToken);
+        request.header(REST_TOKEN_HEADER, TOKEN_PREFIX + accessToken);
     }
 
     @Override
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 fc1329186bf..dd986926bed 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
@@ -406,7 +406,7 @@ public class DefaultRestClient extends AbstractClientBase implements RestClient
     @Override
     protected void setAccessToken(Request request) {
         // replace old token
-        request.getHeaders().put(TOKEN_HEADER, TOKEN_PREFIX + accessToken);
+        request.header(TOKEN_HEADER, TOKEN_PREFIX + accessToken);
     }
 
     private String urlEncode(String query) throws UnsupportedEncodingException {
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/SalesforceSecurityHandler.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/SalesforceSecurityHandler.java
index b672f5c101f..fd5f3380327 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/SalesforceSecurityHandler.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/client/SalesforceSecurityHandler.java
@@ -253,15 +253,16 @@ public class SalesforceSecurityHandler implements ProtocolHandler {
             if (copy) {
                 newRequest = httpClient.copyRequest(request, request.getURI());
                 newRequest.method(request.getMethod());
-                HttpFields headers = newRequest.getHeaders();
-                // copy cookies and host for subscriptions to avoid
-                // '403::Unknown Client' errors
-                for (HttpField field : request.getHeaders()) {
-                    HttpHeader header = field.getHeader();
-                    if (HttpHeader.COOKIE.equals(header) || HttpHeader.HOST.equals(header)) {
-                        headers.add(header, field.getValue());
+                newRequest.headers(headers -> {
+                    // copy cookies and host for subscriptions to avoid
+                    // '403::Unknown Client' errors
+                    for (HttpField field : request.getHeaders()) {
+                        HttpHeader header = field.getHeader();
+                        if (HttpHeader.COOKIE.equals(header) || HttpHeader.HOST.equals(header)) {
+                            headers.add(header, field.getValue());
+                        }
                     }
-                }
+                });
             } else {
                 newRequest = request;
             }
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/ReplayExtension.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/ReplayExtension.java
index b70dc995ed2..287d4400da5 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/ReplayExtension.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/ReplayExtension.java
@@ -32,7 +32,7 @@ import java.util.function.Supplier;
 import org.cometd.bayeux.Channel;
 import org.cometd.bayeux.Message;
 import org.cometd.bayeux.client.ClientSession;
-import org.cometd.bayeux.client.ClientSession.Extension.Adapter;
+import org.cometd.bayeux.client.ClientSession.Extension;
 
 /**
  * The Bayeux extension for replay
@@ -40,7 +40,7 @@ import org.cometd.bayeux.client.ClientSession.Extension.Adapter;
  * @author hal.hildebrand
  * @since  API v37.0
  */
-public class ReplayExtension extends Adapter {
+public class ReplayExtension implements Extension {
     private static final String EXTENSION_NAME = "replay";
     private static final String EVENT_KEY = "event";
     private static final String REPLAY_ID_KEY = "replayId";
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java
index 51441670ef5..e0cb14a385f 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java
@@ -16,10 +16,7 @@
  */
 package org.apache.camel.component.salesforce.internal.streaming;
 
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.atomic.AtomicLong;
@@ -39,8 +36,8 @@ import org.cometd.bayeux.client.ClientSessionChannel;
 import org.cometd.bayeux.client.ClientSessionChannel.MessageListener;
 import org.cometd.client.BayeuxClient;
 import org.cometd.client.BayeuxClient.State;
+import org.cometd.client.http.jetty.JettyHttpClientTransport;
 import org.cometd.client.transport.ClientTransport;
-import org.cometd.client.transport.LongPollingTransport;
 import org.eclipse.jetty.client.api.Request;
 import org.eclipse.jetty.http.HttpHeader;
 import org.slf4j.Logger;
@@ -297,7 +294,7 @@ public class SubscriptionHelper extends ServiceSupport {
                 if (client != null && client.isHandshook()) {
                     LOG.debug("Successful handshake!");
                     // reset backoff interval
-                    handshakeBackoff.set(client.getBackoffIncrement());
+                    handshakeBackoff.set(backoffIncrement);
                 } else {
                     LOG.error("Failed to handshake after pausing for {} msecs", backoff);
                     if ((backoff + backoffIncrement) > maxBackoff) {
@@ -387,7 +384,7 @@ public class SubscriptionHelper extends ServiceSupport {
             session.login(null);
         }
 
-        LongPollingTransport transport = new LongPollingTransport(options, httpClient) {
+        ClientTransport transport = new JettyHttpClientTransport(options, httpClient) {
             @Override
             protected void customize(Request request) {
                 super.customize(request);
@@ -401,7 +398,7 @@ public class SubscriptionHelper extends ServiceSupport {
                         throw new RuntimeException(e);
                     }
                 }
-                request.getHeaders().put(HttpHeader.AUTHORIZATION, "OAuth " + accessToken);
+                request.header(HttpHeader.AUTHORIZATION, "OAuth " + accessToken);
             }
         };
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java
index 3e4fb04a798..fc9b405cab8 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/BulkApiIntegrationTest.java
@@ -24,10 +24,13 @@ import org.apache.camel.component.salesforce.api.dto.bulk.OperationEnum;
 import org.apache.camel.component.salesforce.dto.generated.Merchandise__c;
 import org.apache.camel.support.jsse.SSLContextParameters;
 import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.client.HttpClientTransport;
 import org.eclipse.jetty.client.api.ContentResponse;
 import org.eclipse.jetty.client.api.Request;
+import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP;
 import org.eclipse.jetty.http.HttpMethod;
 import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.io.ClientConnector;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.junit.jupiter.api.Tag;
 import org.junit.jupiter.api.Test;
@@ -42,9 +45,12 @@ public class BulkApiIntegrationTest extends AbstractBulkApiTestBase {
         final SalesforceComponent sf = context().getComponent("salesforce", SalesforceComponent.class);
         final String accessToken = sf.getSession().getAccessToken();
 
-        final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+        final SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
         sslContextFactory.setSslContext(new SSLContextParameters().createSSLContext(context));
-        final HttpClient httpClient = new HttpClient(sslContextFactory);
+        final ClientConnector connector = new ClientConnector();
+        connector.setSslContextFactory(sslContextFactory);
+        final HttpClientTransport transport = new HttpClientTransportOverHTTP(connector);
+        final HttpClient httpClient = new HttpClient(transport);
         httpClient.setConnectTimeout(60000);
         httpClient.start();
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/HttpProxyIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/HttpProxyIntegrationTest.java
index f676ef2fa03..5640deb4815 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/HttpProxyIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/HttpProxyIntegrationTest.java
@@ -16,10 +16,8 @@
  */
 package org.apache.camel.component.salesforce;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.nio.charset.StandardCharsets;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.Consumer;
 
@@ -36,7 +34,6 @@ import org.apache.camel.test.junit5.params.Test;
 import org.eclipse.jetty.proxy.ConnectHandler;
 import org.eclipse.jetty.server.Server;
 import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.util.B64Code;
 import org.eclipse.jetty.util.StringUtil;
 import org.junit.jupiter.api.AfterAll;
 import org.junit.jupiter.api.BeforeAll;
@@ -108,7 +105,8 @@ public class HttpProxyIntegrationTest extends AbstractSalesforceTestBase {
         server.addConnector(connector);
 
         final String authenticationString
-                = "Basic " + B64Code.encode(HTTP_PROXY_USER_NAME + ":" + HTTP_PROXY_PASSWORD, StringUtil.__ISO_8859_1);
+                = "Basic " + Base64.getEncoder().encodeToString(
+                        (HTTP_PROXY_USER_NAME + ":" + HTTP_PROXY_PASSWORD).getBytes(StandardCharsets.ISO_8859_1));
 
         ConnectHandler connectHandler = new ConnectHandler() {
             @Override
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
index 0966e5ee092..cc5ec0f4bf4 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/RestApiIntegrationTest.java
@@ -59,10 +59,13 @@ import org.apache.camel.support.DefaultExchange;
 import org.apache.camel.support.jsse.SSLContextParameters;
 import org.apache.commons.io.IOUtils;
 import org.eclipse.jetty.client.HttpClient;
+import org.eclipse.jetty.client.HttpClientTransport;
 import org.eclipse.jetty.client.api.ContentResponse;
 import org.eclipse.jetty.client.api.Request;
+import org.eclipse.jetty.client.http.HttpClientTransportOverHTTP;
 import org.eclipse.jetty.http.HttpMethod;
 import org.eclipse.jetty.http.HttpStatus;
+import org.eclipse.jetty.io.ClientConnector;
 import org.eclipse.jetty.util.ssl.SslContextFactory;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
@@ -619,9 +622,12 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         final SalesforceComponent sf = context().getComponent("salesforce", SalesforceComponent.class);
         final String accessToken = sf.getSession().getAccessToken();
 
-        final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+        final SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
         sslContextFactory.setSslContext(new SSLContextParameters().createSSLContext(context));
-        final HttpClient httpClient = new HttpClient(sslContextFactory);
+        final ClientConnector connector = new ClientConnector();
+        connector.setSslContextFactory(sslContextFactory);
+        final HttpClientTransport transport = new HttpClientTransportOverHTTP(connector);
+        final HttpClient httpClient = new HttpClient(transport);
         httpClient.setConnectTimeout(60000);
         httpClient.start();
 
@@ -639,9 +645,12 @@ public class RestApiIntegrationTest extends AbstractSalesforceTestBase {
         final SalesforceComponent sf = context().getComponent("salesforce", SalesforceComponent.class);
         final String accessToken = sf.getSession().getAccessToken();
 
-        final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+        final SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
         sslContextFactory.setSslContext(new SSLContextParameters().createSSLContext(context));
-        final HttpClient httpClient = new HttpClient(sslContextFactory);
+        final ClientConnector connector = new ClientConnector();
+        connector.setSslContextFactory(sslContextFactory);
+        final HttpClientTransport transport = new HttpClientTransportOverHTTP(connector);
+        final HttpClient httpClient = new HttpClient(transport);
         httpClient.setConnectTimeout(60000);
         httpClient.start();
 
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
index c411d907eb0..0244a912421 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceConsumerTest.java
@@ -273,7 +273,8 @@ public class SalesforceConsumerTest {
 
         consumer.processMessage(mock(ClientSessionChannel.class), message);
 
-        verify(in).setBody(message.getJSON());
+        verify(in).setBody(new org.cometd.common.JacksonJSONContextClient()
+                .generate(new org.cometd.common.HashMapMessage(message)));
         verify(in).setHeader("CamelSalesforceCreatedDate", ZonedDateTime.parse("2018-07-06T12:41:04Z"));
         verify(in).setHeader("CamelSalesforceReplayId", 4L);
         verify(in).setHeader("CamelSalesforceChannel", "/event/TestEvent__e");
@@ -337,7 +338,8 @@ public class SalesforceConsumerTest {
 
         consumer.processMessage(mock(ClientSessionChannel.class), mockChangeEvent);
 
-        verify(in).setBody(mockChangeEvent.getJSON());
+        verify(in).setBody(new org.cometd.common.JacksonJSONContextClient()
+                .generate(new org.cometd.common.HashMapMessage(mockChangeEvent)));
     }
 
     static Message createPushTopicMessage() {
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
index 3566d639a77..900f2a8cf37 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/SessionIntegrationTest.java
@@ -40,7 +40,7 @@ public class SessionIntegrationTest implements SalesforceSession.SalesforceSessi
     @Test
     public void testLogin() throws Exception {
 
-        final SslContextFactory sslContextFactory = new SslContextFactory.Client();
+        final SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
         sslContextFactory.setSslContext(new SSLContextParameters().createSSLContext(new DefaultCamelContext()));
         final SalesforceHttpClient httpClient = new SalesforceHttpClient(sslContextFactory);
         httpClient.setConnectTimeout(TIMEOUT);
diff --git a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBaseTest.java b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBaseTest.java
index af35dfe3ff7..9b430ed7c45 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBaseTest.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/internal/client/AbstractClientBaseTest.java
@@ -113,7 +113,7 @@ public class AbstractClientBaseTest {
     @Test
     public void shouldDetermineHeadersFromResponse() {
         final Response response = mock(Response.class);
-        final HttpFields httpHeaders = new HttpFields();
+        final HttpFields.Mutable httpHeaders = HttpFields.build();
         httpHeaders.add("Date", "Mon, 20 May 2013 22:21:46 GMT");
         httpHeaders.add("Sforce-Limit-Info", "api-usage=18/5000");
         httpHeaders.add("Last-Modified", "Mon, 20 May 2013 20:49:32 GMT");
@@ -139,7 +139,7 @@ public class AbstractClientBaseTest {
         final Result result = mock(Result.class);
         final Response response = mock(Response.class);
         when(result.getResponse()).thenReturn(response);
-        when(response.getHeaders()).thenReturn(new HttpFields());
+        when(response.getHeaders()).thenReturn(HttpFields.build());
 
         final SalesforceHttpRequest salesforceRequest = mock(SalesforceHttpRequest.class);
         when(result.getRequest()).thenReturn(salesforceRequest);