From 6f0d5d2da56af9fe0fbaaa0024cb668dc09244d5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:32:38 +0000 Subject: [PATCH 1/4] Initial plan From c1db177e2fea1951d4e3770a57d9c69ace88fcf2 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:41:50 +0000 Subject: [PATCH 2/4] Initial plan for refactoring Apache HttpClient 5.5 deprecated methods Co-authored-by: gcatanese <1771700+gcatanese@users.noreply.github.com> --- .../adyen/httpclient/AdyenHttpClient$1.class | Bin 0 -> 869 bytes .../com/adyen/httpclient/AdyenHttpClient.class | Bin 0 -> 12752 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/main/java/com/adyen/httpclient/AdyenHttpClient$1.class create mode 100644 src/main/java/com/adyen/httpclient/AdyenHttpClient.class diff --git a/src/main/java/com/adyen/httpclient/AdyenHttpClient$1.class b/src/main/java/com/adyen/httpclient/AdyenHttpClient$1.class new file mode 100644 index 0000000000000000000000000000000000000000..e3aa8361e040583dd98392e93c8d539d1f6b0b4b GIT binary patch literal 869 zcmb7C+iuf95IviVodlPrCD63o0+=SDv<4*Lfs2TO+e9QOQX+Wh)5cjfF77(AH$}Yg zJ3IptLJ0K(_y>LkF>6XAkor(-wKHc%bLMzSsB4Z&7gJI1J_Z>cZ zC#2(rGFDuw*lA4s=3ij9l$vyf8iykWZkjiOj9lBpL!S-E-2X_Chue@=WPi(5O6RG4KNwrUun%ZgS=~vHMm`9Nzz2y!V z)=#Bbk807vIg}X8FdF%i2gFpXw@qANSlQzT+zGhcb$Vfc>Ww#j5scg@3M1XQY++e< z&c196nk^lwugJdQw+JsG!E&jr%A6@44Gy)5)AVlUy9yz ze<-2>9|jbe>nrZPq0t=SLO+~Fp4jwtvh?3HH*_araitf8u`hT3JgSKrgC6bC7M%PX zq^u`m)e2)0X|<&kQ8VCiEMgP487ec5+AuiKOvSL}Ug!U+M6&14A z2)##|JmBG1u*2_#&oDpfGxr4xne7kAyhz{@!R!pK5Hu3_k;?NZVF~9^#tp2Jt>PZ; zlTG0|5gQ5pPs#xcFkYLK=^kImz@|hBH>nhas&vbRqHLO2dCf)QEbH4#V C`PZWW literal 0 HcmV?d00001 diff --git a/src/main/java/com/adyen/httpclient/AdyenHttpClient.class b/src/main/java/com/adyen/httpclient/AdyenHttpClient.class new file mode 100644 index 0000000000000000000000000000000000000000..659319d86e9d21cb351ea10c797633e5afbd9727 GIT binary patch literal 12752 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 KU-FskhU?#cj1h+b literal 0 HcmV?d00001 From 457c3e274a57ba96c367fb4e739cf5fac84c80b0 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:47:44 +0000 Subject: [PATCH 3/4] Refactor AdyenHttpClient to remove Apache HttpClient 5.5 deprecated methods Co-authored-by: gcatanese <1771700+gcatanese@users.noreply.github.com> --- .gitignore | 1 + .../adyen/httpclient/AdyenHttpClient$1.class | Bin 869 -> 0 bytes .../adyen/httpclient/AdyenHttpClient.class | Bin 12752 -> 0 bytes .../com/adyen/httpclient/AdyenHttpClient.java | 55 ++++++++++++------ 4 files changed, 38 insertions(+), 18 deletions(-) delete mode 100644 src/main/java/com/adyen/httpclient/AdyenHttpClient$1.class delete mode 100644 src/main/java/com/adyen/httpclient/AdyenHttpClient.class diff --git a/.gitignore b/.gitignore index f17b03d2e..50b34733f 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ **/target/** .DS_Store .vscode +*.class diff --git a/src/main/java/com/adyen/httpclient/AdyenHttpClient$1.class b/src/main/java/com/adyen/httpclient/AdyenHttpClient$1.class deleted file mode 100644 index e3aa8361e040583dd98392e93c8d539d1f6b0b4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 869 zcmb7C+iuf95IviVodlPrCD63o0+=SDv<4*Lfs2TO+e9QOQX+Wh)5cjfF77(AH$}Yg zJ3IptLJ0K(_y>LkF>6XAkor(-wKHc%bLMzSsB4Z&7gJI1J_Z>cZ zC#2(rGFDuw*lA4s=3ij9l$vyf8iykWZkjiOj9lBpL!S-E-2X_Chue@=WPi(5O6RG4KNwrUun%ZgS=~vHMm`9Nzz2y!V z)=#Bbk807vIg}X8FdF%i2gFpXw@qANSlQzT+zGhcb$Vfc>Ww#j5scg@3M1XQY++e< z&c196nk^lwugJdQw+JsG!E&jr%A6@44Gy)5)AVlUy9yz ze<-2>9|jbe>nrZPq0t=SLO+~Fp4jwtvh?3HH*_araitf8u`hT3JgSKrgC6bC7M%PX zq^u`m)e2)0X|<&kQ8VCiEMgP487ec5+AuiKOvSL}Ug!U+M6&14A z2)##|JmBG1u*2_#&oDpfGxr4xne7kAyhz{@!R!pK5Hu3_k;?NZVF~9^#tp2Jt>PZ; zlTG0|5gQ5pPs#xcFkYLK=^kImz@|hBH>nhas&vbRqHLO2dCf)QEbH4#V C`PZWW diff --git a/src/main/java/com/adyen/httpclient/AdyenHttpClient.class b/src/main/java/com/adyen/httpclient/AdyenHttpClient.class deleted file mode 100644 index 659319d86e9d21cb351ea10c797633e5afbd9727..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12752 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 KU-FskhU?#cj1h+b diff --git a/src/main/java/com/adyen/httpclient/AdyenHttpClient.java b/src/main/java/com/adyen/httpclient/AdyenHttpClient.java index ab08231a7..4626fdc8b 100644 --- a/src/main/java/com/adyen/httpclient/AdyenHttpClient.java +++ b/src/main/java/com/adyen/httpclient/AdyenHttpClient.java @@ -53,15 +53,18 @@ import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.classic.methods.HttpUriRequest; import org.apache.hc.client5.http.classic.methods.HttpUriRequestBase; +import org.apache.hc.client5.http.config.ConnectionConfig; import org.apache.hc.client5.http.config.RequestConfig; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.HttpClients; import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManagerBuilder; -import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory; +import org.apache.hc.client5.http.impl.routing.DefaultProxyRoutePlanner; +import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy; import org.apache.hc.core5.http.HttpHost; import org.apache.hc.core5.http.io.entity.StringEntity; import org.apache.hc.core5.net.URIBuilder; import org.apache.hc.core5.ssl.SSLContexts; +import org.apache.hc.core5.util.Timeout; /** HTTP client implementation to invoke the Adyen APIs. Built on top of org.apache.hc.client5 */ public class AdyenHttpClient implements ClientInterface { @@ -155,7 +158,6 @@ HttpUriRequestBase createRequest( RequestConfig.Builder builder = RequestConfig.custom(); builder.setResponseTimeout(config.getReadTimeoutMillis(), TimeUnit.MILLISECONDS); - builder.setConnectTimeout(config.getConnectionTimeoutMillis(), TimeUnit.MILLISECONDS); builder.setDefaultKeepAlive(config.getDefaultKeepAliveMillis(), TimeUnit.MILLISECONDS); builder.setConnectionRequestTimeout( config.getConnectionRequestTimeoutMillis(), TimeUnit.MILLISECONDS); @@ -163,10 +165,6 @@ HttpUriRequestBase createRequest( if (config.getProtocolUpgradeEnabled() != null) { builder.setProtocolUpgradeEnabled(config.getProtocolUpgradeEnabled()); } - if (proxy != null && proxy.address() instanceof InetSocketAddress) { - InetSocketAddress inetSocketAddress = (InetSocketAddress) proxy.address(); - builder.setProxy(new HttpHost(inetSocketAddress.getHostName(), inetSocketAddress.getPort())); - } httpRequest.setConfig(builder.build()); setAuthentication(httpRequest, isApiKeyRequired, config); @@ -255,19 +253,40 @@ private CloseableHttpClient createCloseableHttpClient(Config config) { sslContext = SSLContexts.createDefault(); } HostnameVerifier hostnameVerifier = config.getHostnameVerifier(); - return createHttpClientWithSocketFactory( - new SSLConnectionSocketFactory(sslContext, hostnameVerifier)); - } - private CloseableHttpClient createHttpClientWithSocketFactory( - SSLConnectionSocketFactory socketFactory) { - return HttpClients.custom() - .setConnectionManager( - PoolingHttpClientConnectionManagerBuilder.create() - .setSSLSocketFactory(socketFactory) - .build()) - .setRedirectStrategy(new AdyenCustomRedirectStrategy()) - .build(); + // Create ConnectionConfig with connect timeout and keep-alive settings + ConnectionConfig connectionConfig = + ConnectionConfig.custom() + .setConnectTimeout(Timeout.ofMilliseconds(config.getConnectionTimeoutMillis())) + .build(); + + // Create TlsSocketStrategy with SSL context and hostname verifier + DefaultClientTlsStrategy tlsStrategy = + new DefaultClientTlsStrategy(sslContext, hostnameVerifier); + + // Create connection manager with TLS strategy and connection config + var connectionManager = + PoolingHttpClientConnectionManagerBuilder.create() + .setTlsSocketStrategy(tlsStrategy) + .setDefaultConnectionConfig(connectionConfig) + .build(); + + // Build HTTP client with connection manager and redirect strategy + var httpClientBuilder = + HttpClients.custom() + .setConnectionManager(connectionManager) + .setRedirectStrategy(new AdyenCustomRedirectStrategy()); + + // Set proxy if configured + if (proxy != null && proxy.address() instanceof InetSocketAddress) { + InetSocketAddress inetSocketAddress = (InetSocketAddress) proxy.address(); + HttpHost proxyHost = + new HttpHost("http", inetSocketAddress.getHostName(), inetSocketAddress.getPort()); + DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxyHost); + httpClientBuilder.setRoutePlanner(routePlanner); + } + + return httpClientBuilder.build(); } /** Sets content type */ From 64e906796f2fae3ccfdec3d104bd3b05fe78c1d8 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 12 Dec 2025 13:50:30 +0000 Subject: [PATCH 4/4] Address code review feedback: use proxy type for scheme and fix comment Co-authored-by: gcatanese <1771700+gcatanese@users.noreply.github.com> --- src/main/java/com/adyen/httpclient/AdyenHttpClient.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/adyen/httpclient/AdyenHttpClient.java b/src/main/java/com/adyen/httpclient/AdyenHttpClient.java index 4626fdc8b..352c47dde 100644 --- a/src/main/java/com/adyen/httpclient/AdyenHttpClient.java +++ b/src/main/java/com/adyen/httpclient/AdyenHttpClient.java @@ -254,7 +254,7 @@ private CloseableHttpClient createCloseableHttpClient(Config config) { } HostnameVerifier hostnameVerifier = config.getHostnameVerifier(); - // Create ConnectionConfig with connect timeout and keep-alive settings + // Create ConnectionConfig with connect timeout ConnectionConfig connectionConfig = ConnectionConfig.custom() .setConnectTimeout(Timeout.ofMilliseconds(config.getConnectionTimeoutMillis())) @@ -280,8 +280,10 @@ private CloseableHttpClient createCloseableHttpClient(Config config) { // Set proxy if configured if (proxy != null && proxy.address() instanceof InetSocketAddress) { InetSocketAddress inetSocketAddress = (InetSocketAddress) proxy.address(); + String scheme = + proxy.type() == Proxy.Type.SOCKS ? "socks" : "http"; // Map proxy type to scheme HttpHost proxyHost = - new HttpHost("http", inetSocketAddress.getHostName(), inetSocketAddress.getPort()); + new HttpHost(scheme, inetSocketAddress.getHostName(), inetSocketAddress.getPort()); DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxyHost); httpClientBuilder.setRoutePlanner(routePlanner); }