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

claudio4j 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 3fd823780538 CAMEL-23082 camel-as2 - Replace deprecated api (#21641)
3fd823780538 is described below

commit 3fd823780538f606046bd7d044f3730cb3357ae6
Author: Claudio Miranda <[email protected]>
AuthorDate: Wed Mar 4 16:01:21 2026 -0300

    CAMEL-23082 camel-as2 - Replace deprecated api (#21641)
    
    https://issues.apache.org/jira/browse/CAMEL-23082
---
 .../as2/api/AS2AsyncMDNServerConnection.java       | 47 ++++++++++++++++----
 .../as2/api/AS2AsynchronousMDNManager.java         | 10 ++++-
 .../component/as2/api/AS2ClientConnection.java     | 46 ++++++++-----------
 .../camel/component/as2/api/AS2ClientManager.java  | 10 ++++-
 .../camel/component/as2/api/AS2Constants.java      |  3 ++
 .../component/as2/api/AS2ServerConnection.java     | 51 ++++++++++++++++------
 .../component/as2/api/protocol/RequestAS2.java     |  2 +-
 .../as2/api/protocol/RequestAsynchronousMDN.java   |  2 +-
 .../component/as2/api/protocol/RequestMDN.java     |  2 +-
 .../component/as2/api/protocol/ResponseMDN.java    |  5 +--
 .../component/as2/api/util/AS2HeaderUtils.java     | 13 +++---
 .../util/DispositionNotificationContentUtils.java  |  7 ++-
 .../camel/component/as2/api/util/EntityUtils.java  |  9 ++--
 .../component/as2/api/util/HttpMessageUtils.java   |  2 +-
 .../as2/api/AS2UnencryptedMessageTest.java         |  3 +-
 .../src/test/resources/log4j2.properties           |  7 ++-
 .../camel/component/as2/AS2AsyncMDNConsumer.java   |  2 +-
 .../apache/camel/component/as2/AS2Consumer.java    |  2 +-
 .../component/as2/AS2AsyncMDNServerManagerIT.java  |  1 -
 .../camel/component/as2/AS2ClientManagerIT.java    |  4 --
 .../component/as2/AS2ServerManagerEncryptedIT.java |  4 +-
 .../camel/component/as2/AS2ServerManagerIT.java    |  4 +-
 .../component/as2/AS2ServerManagerITBase.java      |  3 +-
 .../camel/component/as2/AS2ServerSecTestBase.java  |  7 ++-
 .../camel/component/as2/MendelsonCertLoader.java   | 19 --------
 .../src/test/resources/test-server.properties      |  5 +--
 .../ROOT/pages/camel-4x-upgrade-guide-4_19.adoc    | 21 +++++++++
 27 files changed, 176 insertions(+), 115 deletions(-)

diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
index 7d051dd2a1af..6cad6e5da394 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsyncMDNServerConnection.java
@@ -21,6 +21,8 @@ import java.io.InterruptedIOException;
 import java.net.ServerSocket;
 import java.net.Socket;
 import java.net.SocketException;
+import java.util.LinkedHashMap;
+import java.util.Map;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
@@ -29,18 +31,19 @@ import javax.net.ssl.SSLServerSocketFactory;
 
 import org.apache.camel.component.as2.api.io.AS2BHttpServerConnection;
 import org.apache.camel.util.ObjectHelper;
+import org.apache.hc.core5.http.ClassicHttpRequest;
 import org.apache.hc.core5.http.HttpException;
 import org.apache.hc.core5.http.config.Http1Config;
 import org.apache.hc.core5.http.impl.io.HttpService;
+import org.apache.hc.core5.http.impl.routing.RequestRouter;
 import org.apache.hc.core5.http.io.HttpRequestHandler;
 import org.apache.hc.core5.http.io.HttpServerConnection;
 import org.apache.hc.core5.http.io.HttpServerRequestHandler;
 import org.apache.hc.core5.http.io.support.BasicHttpServerRequestHandler;
-import org.apache.hc.core5.http.protocol.BasicHttpContext;
 import org.apache.hc.core5.http.protocol.DefaultHttpProcessor;
 import org.apache.hc.core5.http.protocol.HttpContext;
+import org.apache.hc.core5.http.protocol.HttpCoreContext;
 import org.apache.hc.core5.http.protocol.HttpProcessor;
-import org.apache.hc.core5.http.protocol.RequestHandlerRegistry;
 import org.apache.hc.core5.http.protocol.RequestValidateHost;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -98,8 +101,22 @@ public class AS2AsyncMDNServerConnection {
 
         private final ServerSocket serverSocket;
         private final HttpService httpService;
-        private final RequestHandlerRegistry registry;
-        private final HttpServerRequestHandler handler;
+        private final Map<String, HttpRequestHandler> routeMap = new 
LinkedHashMap<>();
+        private volatile HttpServerRequestHandler currentHandler;
+
+        /**
+         * Delegating handler that always forwards to the current handler. 
This allows us to update the routing
+         * configuration dynamically.
+         */
+        private class DelegatingRequestHandler implements 
HttpServerRequestHandler {
+            @Override
+            public void handle(
+                    ClassicHttpRequest request, 
HttpServerRequestHandler.ResponseTrigger responseTrigger,
+                    HttpContext context)
+                    throws HttpException, IOException {
+                currentHandler.handle(request, responseTrigger, context);
+            }
+        }
 
         public RequestListenerThread(int port, SSLContext sslContext) throws 
IOException {
             setName(REQUEST_LISTENER_THREAD_NAME_PREFIX + port);
@@ -110,9 +127,20 @@ public class AS2AsyncMDNServerConnection {
                 serverSocket = factory.createServerSocket(port);
             }
             HttpProcessor httpProcessor = new DefaultHttpProcessor(new 
RequestValidateHost());
-            registry = new RequestHandlerRegistry<>();
-            handler = new BasicHttpServerRequestHandler(registry);
-            httpService = new HttpService(httpProcessor, handler);
+            // Create initial empty router
+            currentHandler = createHandler();
+            // Set up the HTTP service with delegating handler
+            httpService = new HttpService(httpProcessor, new 
DelegatingRequestHandler());
+        }
+
+        private HttpServerRequestHandler createHandler() {
+            RequestRouter.Builder<HttpRequestHandler> builder = 
RequestRouter.builder();
+            // Use LOCAL_AUTHORITY_RESOLVER to match any host (like the old 
RequestHandlerRegistry behavior)
+            builder.resolveAuthority(RequestRouter.LOCAL_AUTHORITY_RESOLVER);
+            for (Map.Entry<String, HttpRequestHandler> entry : 
routeMap.entrySet()) {
+                builder.addRoute(RequestRouter.LOCAL_AUTHORITY, 
entry.getKey(), entry.getValue());
+            }
+            return new BasicHttpServerRequestHandler(builder.build());
         }
 
         @Override
@@ -136,7 +164,8 @@ public class AS2AsyncMDNServerConnection {
         }
 
         void registerHandler(String requestUriPattern, HttpRequestHandler 
httpRequestHandler) {
-            registry.register(null, requestUriPattern, httpRequestHandler);
+            routeMap.put(requestUriPattern, httpRequestHandler);
+            currentHandler = createHandler();
         }
     }
 
@@ -162,7 +191,7 @@ public class AS2AsyncMDNServerConnection {
 
         @Override
         public void run() {
-            final HttpContext context = new BasicHttpContext(null);
+            final HttpContext context = HttpCoreContext.create();
             try {
                 while (!Thread.interrupted()) {
                     this.httpService.handleRequest(this.serverConnection, 
context);
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsynchronousMDNManager.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsynchronousMDNManager.java
index 3a922227d4ac..184dcff6b7ac 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsynchronousMDNManager.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2AsynchronousMDNManager.java
@@ -60,12 +60,18 @@ public class AS2AsynchronousMDNManager {
 
     /**
      * The HTTP Context Attribute containing the HTTP request message 
transporting the EDI message
+     *
+     * @deprecated Use getter method from HttpContext implementation.
      */
+    @Deprecated
     public static final String HTTP_REQUEST = HttpCoreContext.HTTP_REQUEST;
 
     /**
      * The HTTP Context Attribute containing the HTTP response message 
transporting the EDI message
+     *
+     * @deprecated Use getter method from HttpContext implementation.
      */
+    @Deprecated
     public static final String HTTP_RESPONSE = HttpCoreContext.HTTP_RESPONSE;
 
     /**
@@ -141,7 +147,7 @@ public class AS2AsynchronousMDNManager {
             ClassicHttpRequest request = new BasicClassicHttpRequest("POST", 
uri);
             request.setHeader(AS2Header.CONTENT_TYPE, contentType);
             AS2HeaderUtils.addAuthorizationHeader(request, userName, password, 
accessToken);
-            httpContext.setAttribute(HttpCoreContext.HTTP_REQUEST, request);
+            httpContext.setRequest(request);
             multipartMimeEntity.setMainBody(true);
             EntityUtils.setMessageEntity(request, multipartMimeEntity);
 
@@ -152,7 +158,7 @@ public class AS2AsynchronousMDNManager {
             } catch (IOException e) {
                 throw new HttpException("Failed to send http request message", 
e);
             }
-            httpContext.setAttribute(HTTP_RESPONSE, response);
+            httpContext.setResponse(response);
 
             return httpContext;
         } catch (Exception e) {
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientConnection.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientConnection.java
index ad7ae98fd28f..75c3bf78f5eb 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientConnection.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientConnection.java
@@ -41,17 +41,10 @@ import 
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuil
 import org.apache.hc.client5.http.io.ConnectionEndpoint;
 import org.apache.hc.client5.http.io.LeaseRequest;
 import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
-import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
-import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
-import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
+import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
+import org.apache.hc.client5.http.ssl.TlsSocketStrategy;
 import org.apache.hc.core5.http.*;
-import org.apache.hc.core5.http.ClassicHttpRequest;
-import org.apache.hc.core5.http.ClassicHttpResponse;
-import org.apache.hc.core5.http.Header;
-import org.apache.hc.core5.http.HttpHost;
 import org.apache.hc.core5.http.config.Http1Config;
-import org.apache.hc.core5.http.config.Registry;
-import org.apache.hc.core5.http.config.RegistryBuilder;
 import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
 import org.apache.hc.core5.http.io.HttpClientConnection;
 import org.apache.hc.core5.http.io.HttpConnectionFactory;
@@ -121,22 +114,20 @@ public class AS2ClientConnection {
                     }
                 };
 
-        if (sslContext == null) {
-            connectionPoolManager = 
PoolingHttpClientConnectionManagerBuilder.create()
-                    .setConnectionFactory(connFactory).build();
-        } else {
-            SSLConnectionSocketFactory sslConnectionSocketFactory;
+        PoolingHttpClientConnectionManagerBuilder builder = 
PoolingHttpClientConnectionManagerBuilder.create()
+                .setConnectionFactory(connFactory);
+
+        if (sslContext != null) {
+            TlsSocketStrategy tlsStrategy;
             if (hostnameVerifier == null) {
-                sslConnectionSocketFactory = new 
SSLConnectionSocketFactory(sslContext);
+                tlsStrategy = new DefaultClientTlsStrategy(sslContext);
             } else {
-                sslConnectionSocketFactory = new 
SSLConnectionSocketFactory(sslContext, hostnameVerifier);
+                tlsStrategy = new DefaultClientTlsStrategy(sslContext, 
hostnameVerifier);
             }
-            Registry<ConnectionSocketFactory> socketFactoryRegistry = 
RegistryBuilder.<ConnectionSocketFactory> create()
-                    .register("http", 
PlainConnectionSocketFactory.getSocketFactory())
-                    .register("https", sslConnectionSocketFactory)
-                    .build();
-            connectionPoolManager = new 
PoolingHttpClientConnectionManager(socketFactoryRegistry, connFactory);
+            builder.setTlsSocketStrategy(tlsStrategy);
         }
+
+        connectionPoolManager = builder.build();
         connectionPoolManager.setMaxTotal(connectionPoolMaxSize);
         connectionPoolManager.setDefaultSocketConfig(
                 SocketConfig.copy(SocketConfig.DEFAULT)
@@ -156,7 +147,7 @@ public class AS2ClientConnection {
                     }
                 }
                 if (AS2Header.KEEP_ALIVE.equalsIgnoreCase(h.getName())) {
-                    HeaderElement headerElement = MessageSupport.parse(h)[0];
+                    HeaderElement headerElement = 
MessageSupport.parseElements(h).get(0);
                     if (headerElement.getValue() != null && 
"timeout".equalsIgnoreCase(headerElement.getName())) {
                         ttl = 
TimeValue.ofSeconds(Long.parseLong(headerElement.getValue()));
                     }
@@ -197,17 +188,18 @@ public class AS2ClientConnection {
                 connectionPoolManager.connect(endpoint, 
TimeValue.ofMilliseconds(connectionTimeoutMilliseconds), httpContext);
             }
             // Execute Request
-            HttpRequestExecutor httpExecutor = new HttpRequestExecutor() {
+            ConnectionEndpoint.RequestExecutor requestExecutor = new 
ConnectionEndpoint.RequestExecutor() {
                 @Override
                 public ClassicHttpResponse execute(ClassicHttpRequest request, 
HttpClientConnection conn, HttpContext context)
                         throws IOException, HttpException {
-                    super.preProcess(request, httpProcessor, context);
-                    ClassicHttpResponse response = super.execute(request, 
conn, context);
-                    super.postProcess(response, httpProcessor, context);
+                    HttpRequestExecutor executor = new HttpRequestExecutor();
+                    executor.preProcess(request, httpProcessor, context);
+                    ClassicHttpResponse response = executor.execute(request, 
conn, context);
+                    executor.postProcess(response, httpProcessor, context);
                     return response;
                 }
             };
-            response = endpoint.execute(UUID.randomUUID().toString(), request, 
httpExecutor, httpContext);
+            response = endpoint.execute(UUID.randomUUID().toString(), request, 
requestExecutor, httpContext);
         } finally {
             if (endpoint != null) {
                 TimeValue keepAlive = null;
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
index 72b64e6d7f78..155b4b354f3e 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ClientManager.java
@@ -86,12 +86,18 @@ public class AS2ClientManager {
 
     /**
      * The HTTP Context Attribute containing the HTTP request message 
transporting the EDI message
+     *
+     * @deprecated Use getter method from HttpContext implementation.
      */
+    @Deprecated
     public static final String HTTP_REQUEST = HttpCoreContext.HTTP_REQUEST;
 
     /**
      * The HTTP Context Attribute containing the HTTP response message 
transporting the EDI message
+     *
+     * @deprecated Use getter method from HttpContext implementation.
      */
+    @Deprecated
     public static final String HTTP_RESPONSE = HttpCoreContext.HTTP_RESPONSE;
 
     /**
@@ -272,7 +278,7 @@ public class AS2ClientManager {
 
         BasicClassicHttpRequest request = new BasicClassicHttpRequest("POST", 
requestUri);
         request.setVersion(new ProtocolVersion("HTTP", 1, 1));
-        httpContext.setAttribute(HTTP_REQUEST, request);
+        httpContext.setRequest(request);
 
         // Create Message Body
         ApplicationEntity applicationEntity;
@@ -346,7 +352,7 @@ public class AS2ClientManager {
         }
 
         final HttpResponse response = sendRequest(httpContext, request);
-        httpContext.setAttribute(HTTP_RESPONSE, response);
+        httpContext.setResponse(response);
         return httpContext;
     }
 
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2Constants.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2Constants.java
index dbac3cb098e8..7f45cc506022 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2Constants.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2Constants.java
@@ -49,7 +49,10 @@ public interface AS2Constants {
 
     /**
      * HTTP Context Attribute Name for HTTP Client Connection object stored in 
context.
+     *
+     * @deprecated Use getter method from HttpContext implementation.
      */
+    @Deprecated
     String HTTP_CLIENT_CONNECTION = HttpCoreContext.CONNECTION_ENDPOINT;
 
     /**
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
index cf4b5c79ebc5..baf8178ba81a 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/AS2ServerConnection.java
@@ -49,16 +49,15 @@ import org.apache.hc.core5.http.HttpRequest;
 import org.apache.hc.core5.http.HttpRequestInterceptor;
 import org.apache.hc.core5.http.config.Http1Config;
 import org.apache.hc.core5.http.impl.io.HttpService;
+import org.apache.hc.core5.http.impl.routing.RequestRouter;
 import org.apache.hc.core5.http.io.HttpRequestHandler;
 import org.apache.hc.core5.http.io.HttpServerConnection;
 import org.apache.hc.core5.http.io.HttpServerRequestHandler;
 import org.apache.hc.core5.http.io.support.BasicHttpServerRequestHandler;
-import org.apache.hc.core5.http.protocol.BasicHttpContext;
 import org.apache.hc.core5.http.protocol.HttpContext;
 import org.apache.hc.core5.http.protocol.HttpCoreContext;
 import org.apache.hc.core5.http.protocol.HttpProcessor;
 import org.apache.hc.core5.http.protocol.HttpProcessorBuilder;
-import org.apache.hc.core5.http.protocol.RequestHandlerRegistry;
 import org.apache.hc.core5.http.protocol.ResponseConnControl;
 import org.apache.hc.core5.http.protocol.ResponseContent;
 import org.apache.hc.core5.http.protocol.ResponseDate;
@@ -371,7 +370,22 @@ public class AS2ServerConnection {
     class RequestListenerService {
 
         private final HttpService httpService;
-        private final RequestHandlerRegistry registry;
+        private final Map<String, HttpRequestHandler> routeMap = new 
LinkedHashMap<>();
+        private volatile HttpServerRequestHandler currentHandler;
+
+        /**
+         * Delegating handler that always forwards to the current handler. 
This allows us to update the routing
+         * configuration dynamically.
+         */
+        private class DelegatingRequestHandler implements 
HttpServerRequestHandler {
+            @Override
+            public void handle(
+                    ClassicHttpRequest request, 
HttpServerRequestHandler.ResponseTrigger responseTrigger,
+                    HttpContext context)
+                    throws HttpException, IOException {
+                currentHandler.handle(request, responseTrigger, context);
+            }
+        }
 
         public RequestListenerService(String as2Version,
                                       String originServer,
@@ -384,20 +398,32 @@ public class AS2ServerConnection {
                     as2Version, originServer, serverFqdn,
                     mdnMessageTemplate);
 
-            registry = new RequestHandlerRegistry<>();
-            HttpServerRequestHandler handler = new 
BasicHttpServerRequestHandler(registry);
+            // Create initial empty router
+            currentHandler = createHandler();
+
+            // Set up the HTTP service with delegating handler
+            httpService = new HttpService(inhttpproc, new 
DelegatingRequestHandler());
+        }
 
-            // Set up the HTTP service
-            httpService = new HttpService(inhttpproc, handler);
+        private HttpServerRequestHandler createHandler() {
+            RequestRouter.Builder<HttpRequestHandler> builder = 
RequestRouter.builder();
+            // Use LOCAL_AUTHORITY_RESOLVER to match any host
+            builder.resolveAuthority(RequestRouter.LOCAL_AUTHORITY_RESOLVER);
+            for (Map.Entry<String, HttpRequestHandler> entry : 
routeMap.entrySet()) {
+                builder.addRoute(RequestRouter.LOCAL_AUTHORITY, 
entry.getKey(), entry.getValue());
+            }
+            return new BasicHttpServerRequestHandler(builder.build());
         }
 
         void registerHandler(String requestUriPattern, HttpRequestHandler 
httpRequestHandler) {
-            registry.register(null, requestUriPattern, httpRequestHandler);
+            routeMap.put(requestUriPattern, httpRequestHandler);
+            currentHandler = createHandler();
         }
 
         void unregisterHandler(String requestUriPattern) {
             // we cannot remove from http registry, but we can replace with a 
not found to simulate 404
-            registry.register(null, requestUriPattern, new 
NotFoundHttpRequestHandler());
+            routeMap.put(requestUriPattern, new NotFoundHttpRequestHandler());
+            currentHandler = createHandler();
         }
     }
 
@@ -465,14 +491,14 @@ public class AS2ServerConnection {
         @Override
         public void run() {
             LOG.info("Processing new AS2 request");
-            final HttpContext context = new BasicHttpContext(null);
+            final HttpContext context = HttpCoreContext.create();
 
             try {
                 while (!Thread.interrupted()) {
 
                     this.httpService.handleRequest(this.serverConnection, 
context);
 
-                    HttpCoreContext coreContext = 
HttpCoreContext.adapt(context);
+                    HttpCoreContext coreContext = 
HttpCoreContext.castOrCreate(context);
 
                     // Safely retrieve the AS2 consumer configuration and path 
from ThreadLocal storage.
                     AS2ConsumerConfiguration config = 
Optional.ofNullable(CURRENT_CONSUMER_CONFIG.get())
@@ -498,13 +524,12 @@ public class AS2ServerConnection {
                                 AS2ServerConnection.this.password,
                                 AS2ServerConnection.this.accessToken);
 
-                        HttpRequest request = 
coreContext.getAttribute(HttpCoreContext.HTTP_REQUEST, HttpRequest.class);
+                        HttpRequest request = coreContext.getRequest();
                         AS2SignedDataGenerator gen = 
ResponseMDN.createSigningGenerator(
                                 request,
                                 config.getSigningAlgorithm(),
                                 config.getSigningCertificateChain(),
                                 config.getSigningPrivateKey());
-
                         if (gen != null) {
                             // send a signed MDN
                             MultipartSignedEntity multipartSignedEntity = null;
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestAS2.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestAS2.java
index d4127742975c..bb4c5e2dcd49 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestAS2.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestAS2.java
@@ -44,7 +44,7 @@ public class RequestAS2 implements HttpRequestInterceptor {
     @Override
     public void process(HttpRequest request, EntityDetails entity, HttpContext 
context) throws HttpException, IOException {
 
-        HttpCoreContext coreContext = HttpCoreContext.adapt(context);
+        HttpCoreContext coreContext = HttpCoreContext.castOrCreate(context);
 
         /* MIME header */
         request.addHeader(AS2Header.MIME_VERSION, AS2Constants.MIME_VERSION);
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestAsynchronousMDN.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestAsynchronousMDN.java
index f4dd44ddc2c4..b41e93a31dae 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestAsynchronousMDN.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestAsynchronousMDN.java
@@ -42,7 +42,7 @@ public class RequestAsynchronousMDN implements 
HttpRequestInterceptor {
     @Override
     public void process(HttpRequest request, EntityDetails entity, HttpContext 
context) throws HttpException, IOException {
 
-        HttpCoreContext coreContext = HttpCoreContext.adapt(context);
+        HttpCoreContext coreContext = HttpCoreContext.castOrCreate(context);
 
         /* MIME header */
         request.addHeader(AS2Header.MIME_VERSION, AS2Constants.MIME_VERSION);
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestMDN.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestMDN.java
index ca2f841761a1..1a773f3e32bd 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestMDN.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/RequestMDN.java
@@ -35,7 +35,7 @@ public class RequestMDN implements HttpRequestInterceptor {
     @Override
     public void process(HttpRequest request, EntityDetails entity, HttpContext 
context) throws HttpException, IOException {
 
-        HttpCoreContext coreContext = HttpCoreContext.adapt(context);
+        HttpCoreContext coreContext = HttpCoreContext.castOrCreate(context);
 
         /* Disposition-Notification-To */
         String dispositionNotificationTo = 
coreContext.getAttribute(AS2ClientManager.DISPOSITION_NOTIFICATION_TO, 
String.class);
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/ResponseMDN.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/ResponseMDN.java
index 176cfcb0ebf9..852ff8e3c0d9 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/ResponseMDN.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/protocol/ResponseMDN.java
@@ -154,9 +154,8 @@ public class ResponseMDN implements HttpResponseInterceptor 
{
                     = (Certificate[]) 
context.getAttribute(AS2ServerConnection.AS2_VALIDATE_SIGNING_CERTIFICATE_CHAIN);
         }
 
-        HttpCoreContext coreContext = HttpCoreContext.adapt(context);
-
-        HttpRequest request = 
coreContext.getAttribute(HttpCoreContext.HTTP_REQUEST, HttpRequest.class);
+        HttpCoreContext coreContext = HttpCoreContext.castOrCreate(context);
+        HttpRequest request = coreContext.getRequest();
         if (request == null || !(request instanceof ClassicHttpRequest 
httpEntityEnclosingRequest)) {
             // Not an enclosing request so nothing to do.
             return;
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/AS2HeaderUtils.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/AS2HeaderUtils.java
index 0c88ed9e65dc..e8db1b11eaf0 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/AS2HeaderUtils.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/AS2HeaderUtils.java
@@ -17,7 +17,6 @@
 package org.apache.camel.component.as2.api.util;
 
 import java.util.ArrayList;
-import java.util.BitSet;
 import java.util.List;
 
 import org.apache.camel.component.as2.api.AS2Header;
@@ -30,8 +29,8 @@ import org.apache.hc.core5.http.NameValuePair;
 import org.apache.hc.core5.http.message.BasicHeader;
 import org.apache.hc.core5.http.message.MessageSupport;
 import org.apache.hc.core5.http.message.ParserCursor;
-import org.apache.hc.core5.http.message.TokenParser;
 import org.apache.hc.core5.util.CharArrayBuffer;
+import org.apache.hc.core5.util.Tokenizer;
 
 public final class AS2HeaderUtils {
 
@@ -78,11 +77,11 @@ public final class AS2HeaderUtils {
     private static final char ELEM_DELIMITER = ';';
     private static final char NAME_VALUE_DELIMITER = '=';
 
-    private static final TokenParser TOKEN_PARSER = TokenParser.INSTANCE;
+    private static final Tokenizer TOKEN_PARSER = Tokenizer.INSTANCE;
 
-    private static final BitSet TOKEN_DELIMS = 
TokenParser.INIT_BITSET(NAME_VALUE_DELIMITER, PARAM_DELIMITER,
-            ELEM_DELIMITER);
-    private static final BitSet VALUE_DELIMS = 
TokenParser.INIT_BITSET(PARAM_DELIMITER, ELEM_DELIMITER);
+    private static final Tokenizer.Delimiter TOKEN_DELIMS
+            = Tokenizer.delimiters(NAME_VALUE_DELIMITER, PARAM_DELIMITER, 
ELEM_DELIMITER);
+    private static final Tokenizer.Delimiter VALUE_DELIMS = 
Tokenizer.delimiters(PARAM_DELIMITER, ELEM_DELIMITER);
 
     private AS2HeaderUtils() {
     }
@@ -152,7 +151,7 @@ public final class AS2HeaderUtils {
         ObjectHelper.notNull(headerName, "headerName");
         for (Header header : headers) {
             if (header.getName().equalsIgnoreCase(headerName)) {
-                for (HeaderElement headerElement : 
MessageSupport.parse(header)) {
+                for (HeaderElement headerElement : 
MessageSupport.parseElements(header)) {
                     for (NameValuePair nameValuePair : 
headerElement.getParameters()) {
                         if 
(nameValuePair.getName().equalsIgnoreCase(parameterName)) {
                             return nameValuePair.getValue();
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/DispositionNotificationContentUtils.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/DispositionNotificationContentUtils.java
index 75eeb2532852..6bf432bff8d4 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/DispositionNotificationContentUtils.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/DispositionNotificationContentUtils.java
@@ -17,7 +17,6 @@
 package org.apache.camel.component.as2.api.util;
 
 import java.util.ArrayList;
-import java.util.BitSet;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -32,8 +31,8 @@ import 
org.apache.camel.component.as2.api.util.MicUtils.ReceivedContentMic;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.hc.core5.http.ParseException;
 import org.apache.hc.core5.http.message.ParserCursor;
-import org.apache.hc.core5.http.message.TokenParser;
 import org.apache.hc.core5.util.CharArrayBuffer;
+import org.apache.hc.core5.util.Tokenizer;
 
 public final class DispositionNotificationContentUtils {
 
@@ -127,13 +126,13 @@ public final class DispositionNotificationContentUtils {
 
     }
 
-    private static final TokenParser TOKEN_PARSER = TokenParser.INSTANCE;
+    private static final Tokenizer TOKEN_PARSER = Tokenizer.INSTANCE;
 
     private static final char PARAM_DELIMITER = ',';
     private static final char ELEM_DELIMITER = ';';
     private static final int DEFAULT_BUFFER_SIZE = 8 * 1024;
 
-    private static final BitSet TOKEN_DELIMS = 
TokenParser.INIT_BITSET(PARAM_DELIMITER, ELEM_DELIMITER);
+    private static final Tokenizer.Delimiter TOKEN_DELIMS = 
Tokenizer.delimiters(PARAM_DELIMITER, ELEM_DELIMITER);
 
     private DispositionNotificationContentUtils() {
     }
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/EntityUtils.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/EntityUtils.java
index 300ae8aa2664..3de97bda41dc 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/EntityUtils.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/EntityUtils.java
@@ -118,10 +118,11 @@ public final class EntityUtils {
         }
         switch (encoding.toLowerCase()) {
             case "base64":
-                return new Base64OutputStream(os, true);
+                return 
Base64OutputStream.builder().setOutputStream(os).setEncode(true).get();
             case "quoted-printable":
                 // TODO: implement QuotedPrintableOutputStream
-                return new Base64OutputStream(os, true);
+                return 
Base64OutputStream.builder().setOutputStream(os).setEncode(true).get();
+            // return new Base64OutputStream(os, true);
             case "binary":
             case "7bit":
             case "8bit":
@@ -168,10 +169,10 @@ public final class EntityUtils {
         }
         switch (encoding.toLowerCase()) {
             case "base64":
-                return new Base64InputStream(is, false);
+                return 
Base64InputStream.builder().setInputStream(is).setEncode(false).get();
             case "quoted-printable":
                 // TODO: implement QuotedPrintableInputStream
-                return new Base64InputStream(is, false);
+                return 
Base64InputStream.builder().setInputStream(is).setEncode(false).get();
             case "binary":
             case "7bit":
             case "8bit":
diff --git 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/HttpMessageUtils.java
 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/HttpMessageUtils.java
index aad6db96d524..d6a03c17dec9 100644
--- 
a/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/HttpMessageUtils.java
+++ 
b/components/camel-as2/camel-as2-api/src/main/java/org/apache/camel/component/as2/api/util/HttpMessageUtils.java
@@ -89,7 +89,7 @@ public final class HttpMessageUtils {
         if (header == null) {
             return null;
         }
-        for (HeaderElement headerElement : MessageSupport.parse(header)) {
+        for (HeaderElement headerElement : 
MessageSupport.parseElements(header)) {
             for (NameValuePair nameValuePair : headerElement.getParameters()) {
                 if (nameValuePair.getName().equalsIgnoreCase(parameterName)) {
                     return nameValuePair.getValue();
diff --git 
a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2UnencryptedMessageTest.java
 
b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2UnencryptedMessageTest.java
index 127ad285894c..60684d004159 100644
--- 
a/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2UnencryptedMessageTest.java
+++ 
b/components/camel-as2/camel-as2-api/src/test/java/org/apache/camel/component/as2/api/AS2UnencryptedMessageTest.java
@@ -49,6 +49,7 @@ import org.junit.jupiter.params.provider.CsvSource;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertInstanceOf;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
@@ -187,7 +188,7 @@ public class AS2UnencryptedMessageTest extends 
AS2MessageTestBase {
         assertTrue(response instanceof ClassicHttpResponse);
         HttpEntity responseEntity = ((ClassicHttpResponse) 
response).getEntity();
         assertNotNull(responseEntity, "Response entity");
-        assertTrue(responseEntity instanceof MultipartSignedEntity, 
"Unexpected response entity type");
+        assertInstanceOf(MultipartSignedEntity.class, responseEntity);
         MultipartSignedEntity responseSignedEntity = (MultipartSignedEntity) 
responseEntity;
         MimeEntity responseSignedDataEntity = 
responseSignedEntity.getSignedDataEntity();
         assertTrue(responseSignedDataEntity instanceof 
DispositionNotificationMultipartReportEntity,
diff --git 
a/components/camel-as2/camel-as2-api/src/test/resources/log4j2.properties 
b/components/camel-as2/camel-as2-api/src/test/resources/log4j2.properties
index a053fbaba7df..d7c0bed46ff1 100644
--- a/components/camel-as2/camel-as2-api/src/test/resources/log4j2.properties
+++ b/components/camel-as2/camel-as2-api/src/test/resources/log4j2.properties
@@ -19,7 +19,12 @@ appender.file.type = File
 appender.file.name = file
 appender.file.fileName = target/camel-as2-api-test.log
 appender.file.layout.type = PatternLayout
-appender.file.layout.pattern = %d %-5p %c{1} - %m %n
+appender.file.layout.pattern = %-5p %c{1} - %m %n
+
+# logger.hc.name = org.apache.hc.core5.http
+# logger.hc.level = DEBUG
+# logger.as2.name = org.apache.camel.component.as2
+# logger.as2.level = DEBUG
 
 rootLogger.level = info
 rootLogger.appenderRef.file.ref = file
\ No newline at end of file
diff --git 
a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2AsyncMDNConsumer.java
 
b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2AsyncMDNConsumer.java
index a73d646fa918..5fa8818ce22b 100644
--- 
a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2AsyncMDNConsumer.java
+++ 
b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2AsyncMDNConsumer.java
@@ -109,7 +109,7 @@ public class AS2AsyncMDNConsumer extends 
AbstractApiConsumer<AS2ApiName, AS2Conf
 
             Exchange exchange = createExchange(false);
             try {
-                HttpCoreContext coreContext = HttpCoreContext.adapt(context);
+                HttpCoreContext coreContext = 
HttpCoreContext.castOrCreate(context);
                 exchange.setProperty(AS2Constants.AS2_INTERCHANGE, 
coreContext);
                 exchange.getIn().setBody(entity);
                 // send message to next processor in the route
diff --git 
a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
 
b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
index 553b636cfc6f..675eb0df372e 100644
--- 
a/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
+++ 
b/components/camel-as2/camel-as2-component/src/main/java/org/apache/camel/component/as2/AS2Consumer.java
@@ -143,7 +143,7 @@ public class AS2Consumer extends 
AbstractApiConsumer<AS2ApiName, AS2Configuratio
             Exchange exchange = createExchange(false);
 
             try {
-                HttpCoreContext coreContext = HttpCoreContext.adapt(context);
+                HttpCoreContext coreContext = 
HttpCoreContext.castOrCreate(context);
                 exchange.setProperty(AS2Constants.AS2_INTERCHANGE, 
coreContext);
                 exchange.getIn().setBody(ediEntity.getEdiMessage());
                 // send message to next processor in the route
diff --git 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2AsyncMDNServerManagerIT.java
 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2AsyncMDNServerManagerIT.java
index 3b7229a71ee2..138ea899c7cf 100644
--- 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2AsyncMDNServerManagerIT.java
+++ 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2AsyncMDNServerManagerIT.java
@@ -457,7 +457,6 @@ public class AS2AsyncMDNServerManagerIT extends 
AbstractAS2ITSupport {
 
         String issueDN = "O=Punkhorn Software, C=US";
         KeyPair issueKP = kpg.generateKeyPair();
-        X509Certificate issueCert = Utils.makeCertificate(issueKP, issueDN, 
issueKP, issueDN);
 
         // certificate we sign against
         String signingDN = "CN=William J. Collins, [email protected], 
O=Punkhorn Software, C=US";
diff --git 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIT.java
 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIT.java
index 544b68de304c..ecc917909f94 100644
--- 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIT.java
+++ 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ClientManagerIT.java
@@ -985,8 +985,6 @@ public class AS2ClientManagerIT extends 
AbstractAS2ITSupport {
 
         String issueDN = "O=Punkhorn Software, C=US";
         KeyPair issueKP = kpg.generateKeyPair();
-        X509Certificate issueCert = Utils.makeCertificate(
-                issueKP, issueDN, issueKP, issueDN);
 
         //
         // certificate we sign against
@@ -1016,8 +1014,6 @@ public class AS2ClientManagerIT extends 
AbstractAS2ITSupport {
 
         String issueDN = "O=Punkhorn Software, C=US";
         KeyPair issueKP = kpg.generateKeyPair();
-        X509Certificate issueCert = Utils.makeCertificate(
-                issueKP, issueDN, issueKP, issueDN);
 
         //
         // certificate we sign against
diff --git 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerEncryptedIT.java
 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerEncryptedIT.java
index 53806e929712..9a06e650ce9b 100644
--- 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerEncryptedIT.java
+++ 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerEncryptedIT.java
@@ -182,8 +182,8 @@ public class AS2ServerManagerEncryptedIT extends 
AS2ServerManagerITBase {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        this.clientSslContext = setupClientContext(context);
-        this.serverSslContext = setupClientContext(context);
+        clientSslContext = setupClientContext(context);
+        serverSslContext = setupClientContext(context);
         AS2Component as2Component = (AS2Component) context.getComponent("as2");
         AS2Configuration configuration = as2Component.getConfiguration();
         configuration.setSslContext(serverSslContext);
diff --git 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
index b07c7b6f3ec7..cfa4d7db27e1 100644
--- 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
+++ 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerIT.java
@@ -624,8 +624,8 @@ public class AS2ServerManagerIT extends 
AS2ServerManagerITBase {
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
-        this.clientSslContext = setupClientContext(context);
-        this.serverSslContext = setupClientContext(context);
+        clientSslContext = setupClientContext(context);
+        serverSslContext = setupClientContext(context);
         AS2Component as2Component = (AS2Component) context.getComponent("as2");
         AS2Configuration configuration = as2Component.getConfiguration();
         configuration.setSslContext(serverSslContext);
diff --git 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerITBase.java
 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerITBase.java
index 5f445b0db468..ddfd4be9fb26 100644
--- 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerITBase.java
+++ 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerManagerITBase.java
@@ -188,7 +188,8 @@ public class AS2ServerManagerITBase extends 
AbstractAS2ITSupport {
         // Create signing attributes
         ASN1EncodableVector attributes = new ASN1EncodableVector();
         attributes.add(new SMIMEEncryptionKeyPreferenceAttribute(
-                new IssuerAndSerialNumber(new 
X500Name(signingCert.getIssuerDN().getName()), signingCert.getSerialNumber())));
+                new IssuerAndSerialNumber(
+                        new 
X500Name(signingCert.getIssuerX500Principal().getName()), 
signingCert.getSerialNumber())));
         attributes.add(new SMIMECapabilitiesAttribute(capabilities));
 
         gen = 
SigningUtils.createSigningGenerator(AS2SignatureAlgorithm.SHA256WITHRSA, 
certList.toArray(new X509Certificate[0]),
diff --git 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerSecTestBase.java
 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerSecTestBase.java
index d192ad4b1d6e..f93a28fd3737 100644
--- 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerSecTestBase.java
+++ 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/AS2ServerSecTestBase.java
@@ -127,7 +127,7 @@ public class AS2ServerSecTestBase extends 
AbstractAS2ITSupport {
     }
 
     protected void verifyOkResponse(HttpCoreContext context) {
-        HttpResponse response = 
context.getAttribute(AS2ClientManager.HTTP_RESPONSE, HttpResponse.class);
+        HttpResponse response = context.getResponse();
         assertEquals(200, response.getCode());
     }
 
@@ -152,7 +152,7 @@ public class AS2ServerSecTestBase extends 
AbstractAS2ITSupport {
     protected void verifyMic(
             AS2MessageDispositionNotificationEntity 
messageDispositionNotificationEntity, HttpCoreContext context)
             throws HttpException {
-        HttpRequest request = 
context.getAttribute(AS2ClientManager.HTTP_REQUEST, HttpRequest.class);
+        HttpRequest request = context.getRequest();
         MicUtils.ReceivedContentMic computedContentMic = 
createReceivedContentMic(request);
         MicUtils.ReceivedContentMic receivedContentMic = 
messageDispositionNotificationEntity.getReceivedContentMic();
 
@@ -164,7 +164,7 @@ public class AS2ServerSecTestBase extends 
AbstractAS2ITSupport {
     }
 
     protected AS2MessageDispositionNotificationEntity 
getAs2MdnEntity(HttpCoreContext context) {
-        HttpResponse response = 
context.getAttribute(AS2ClientManager.HTTP_RESPONSE, HttpResponse.class);
+        HttpResponse response = context.getResponse();
 
         assert (response instanceof ClassicHttpResponse);
         ClassicHttpResponse classicHttpResponse = (ClassicHttpResponse) 
response;
@@ -194,7 +194,6 @@ public class AS2ServerSecTestBase extends 
AbstractAS2ITSupport {
         kpg.initialize(1024, new SecureRandom());
         String invalidIssueDN = "O=Hackers Unlimited Ltd., C=US";
         var invalidIssueKP = kpg.generateKeyPair();
-        var invalidissueCert = Utils.makeCertificate(invalidIssueKP, 
invalidIssueDN, invalidIssueKP, invalidIssueDN);
 
         String invalidDN = "CN=John Doe, [email protected], O=Self 
Signed, C=US";
         var invalidKP = kpg.generateKeyPair();
diff --git 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonCertLoader.java
 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonCertLoader.java
index dfa4629bedf3..f62a27d2dc8a 100644
--- 
a/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonCertLoader.java
+++ 
b/components/camel-as2/camel-as2-component/src/test/java/org/apache/camel/component/as2/MendelsonCertLoader.java
@@ -18,7 +18,6 @@ package org.apache.camel.component.as2;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.nio.charset.StandardCharsets;
 import java.security.KeyManagementException;
 import java.security.KeyStore;
 import java.security.KeyStoreException;
@@ -30,12 +29,10 @@ import java.security.cert.CertificateException;
 import java.security.cert.CertificateFactory;
 import java.security.spec.InvalidKeySpecException;
 import java.util.ArrayList;
-import java.util.Base64;
 import java.util.List;
 
 import javax.net.ssl.SSLContext;
 
-import org.apache.commons.io.IOUtils;
 import org.apache.hc.client5.http.ssl.TrustAllStrategy;
 import org.apache.hc.core5.ssl.SSLContexts;
 import org.slf4j.Logger;
@@ -145,11 +142,6 @@ public class MendelsonCertLoader {
         return privateKey;
     }
 
-    private List<Certificate> getCertificatesFromStream(InputStream 
inputStream) throws CertificateException {
-        CertificateFactory certificateFactory = 
CertificateFactory.getInstance("X.509");
-        return (List<Certificate>) 
certificateFactory.generateCertificates(inputStream);
-    }
-
     private Certificate getCertificateFromStream(InputStream inputStream) 
throws IOException, CertificateException {
         CertificateFactory certificateFactory = 
CertificateFactory.getInstance("X.509");
         return certificateFactory.generateCertificate(inputStream);
@@ -181,15 +173,4 @@ public class MendelsonCertLoader {
         throw new IllegalStateException("Failed to construct a PrivateKey from 
provided InputStream");
     }
 
-    private byte[] getBytesFromPem(InputStream inputStream) throws IOException 
{
-        String privateKeyPEM
-                = IOUtils.toString(inputStream, 
StandardCharsets.UTF_8).replaceAll("-{5}.+-{5}", "").replaceAll("\\s", "");
-        return Base64.getDecoder().decode(privateKeyPEM);
-    }
-
-    private byte[] getBytesFromPKCS12(InputStream inputStream) throws 
IOException {
-        String privateKeyPKCS12 = IOUtils.toString(inputStream, 
StandardCharsets.UTF_8);
-        return privateKeyPKCS12.getBytes(StandardCharsets.UTF_8);
-    }
-
 }
diff --git 
a/components/camel-as2/camel-as2-component/src/test/resources/test-server.properties
 
b/components/camel-as2/camel-as2-component/src/test/resources/test-server.properties
index 6f4facf288bf..9ad180f8b4d1 100644
--- 
a/components/camel-as2/camel-as2-component/src/test/resources/test-server.properties
+++ 
b/components/camel-as2/camel-as2-component/src/test/resources/test-server.properties
@@ -24,8 +24,8 @@
 ## ---------------------------------------------------------------------------
 
 #TODO If you want to test HTTPS connection to Mendelson public resource, 
please place 'testas2.mendelson-e-c.com'
-#TODO instead of 'TBD' in the line below
-as2.remote.host=TBD
+#TODO instead of 'replace-me-in-test-server.properties' in the line below
+as2.remote.host=replace-me-in-test-server.properties
 as2.remote.port=8444
 as2.remote.uri=/as2/HttpReceiver
 
@@ -43,4 +43,3 @@ as2.transfer.encoding=7bit
 as2.attached.filename=from_camel.txt
 as2.signing.algorithm=SHA3_256WITHRSA
 as2.edi.message=Message from Camel AS2 via HTTPS
-
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc
index 49b23bc9d53f..216225cd8f16 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_19.adoc
@@ -311,3 +311,24 @@ The intention is to allow to configure the `base.path` _as 
is_ in the return API
 
 The camel-nitrite is removed in this version. It was deprecated in 4.10.
 
+=== camel-as2
+
+Some public constants were deprecated:
+
+```
+org.apache.camel.component.as2.api.AS2AsynchronousMDNManager.HTTP_REQUEST
+org.apache.camel.component.as2.api.AS2AsynchronousMDNManager.HTTP_RESPONSE
+org.apache.camel.component.as2.api.AS2ClientManager.HTTP_REQUEST
+org.apache.camel.component.as2.api.AS2ClientManager.HTTP_RESPONSE
+org.apache.camel.component.as2.api.AS2Constants.HTTP_CLIENT_CONNECTION
+```
+
+They can be replaced by the the getter/setter method of the HttpContext 
implementation, for example:
+
+```
+# the deprecated way
+HttpRequest request = context.getAttribute(AS2ClientManager.HTTP_REQUEST, 
HttpRequest.class);
+
+# new way
+HttpRequest request = context.getRequest();
+```

Reply via email to