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