You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2023/12/23 12:21:08 UTC

(httpcomponents-client) branch master updated: Removed references to deprecated functions

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

olegk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/httpcomponents-client.git


The following commit(s) were added to refs/heads/master by this push:
     new 4dc82b40f Removed references to deprecated functions
4dc82b40f is described below

commit 4dc82b40f6cc0ff760b77fdc5bbdc4f4b3a401e9
Author: Oleg Kalnichevski <ol...@apache.org>
AuthorDate: Sat Dec 23 13:16:25 2023 +0100

    Removed references to deprecated functions
---
 .../client5/http/impl/cache/AsyncCachingExec.java  |  3 +-
 .../client5/http/impl/cache/CacheKeyGenerator.java |  2 +-
 .../hc/client5/http/impl/cache/CachingExec.java    |  5 +++-
 .../http/impl/cache/ConditionalRequestBuilder.java |  6 ++--
 .../impl/cache/TestConditionalRequestBuilder.java  |  5 ++--
 .../client5/testing/sync/TestSSLSocketFactory.java | 14 +---------
 .../hc/client5/http/impl/RequestSupport.java       |  2 +-
 .../http/impl/classic/ContentCompressionExec.java  | 14 +++++-----
 .../impl/io/DefaultHttpResponseParserFactory.java  | 32 ++++++++++++++++++++--
 .../http/impl/io/LenientHttpResponseParser.java    |  2 +-
 .../io/ManagedHttpClientConnectionFactory.java     |  4 +--
 .../client5/http/examples/ClientConfiguration.java | 15 +++++-----
 .../hc/client5/http/impl/auth/TestBasicScheme.java |  2 +-
 13 files changed, 63 insertions(+), 43 deletions(-)

diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java
index d994d4a73..41fc2c368 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/AsyncCachingExec.java
@@ -30,6 +30,7 @@ import java.io.IOException;
 import java.io.InterruptedIOException;
 import java.nio.ByteBuffer;
 import java.time.Instant;
+import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
@@ -1127,7 +1128,7 @@ class AsyncCachingExec extends CachingExecBase implements AsyncExecChainHandler
         }
         final HttpRequest conditionalRequest = conditionalRequestBuilder.buildConditionalRequestFromVariants(
                 BasicRequestBuilder.copy(request).build(),
-                variantMap.keySet());
+                new ArrayList<>(variantMap.keySet()));
 
         final Instant requestDate = getCurrentDate();
         chainProceed(conditionalRequest, entityProducer, scope, chain, new AsyncExecCallback() {
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheKeyGenerator.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheKeyGenerator.java
index 9e68de815..be346370e 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheKeyGenerator.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CacheKeyGenerator.java
@@ -143,7 +143,7 @@ public class CacheKeyGenerator implements Resolver<URI, String> {
             }
         }
         builder.setFragment(null);
-        return builder.normalizeSyntax().build();
+        return builder.optimize().build();
     }
 
     /**
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java
index 7a42731e1..c83ac89fd 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/CachingExec.java
@@ -29,6 +29,7 @@ package org.apache.hc.client5.http.impl.cache;
 import java.io.IOException;
 import java.io.InputStream;
 import java.time.Instant;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -583,7 +584,9 @@ class CachingExec extends CachingExecBase implements ExecChainHandler {
             }
         }
 
-        final ClassicHttpRequest conditionalRequest = conditionalRequestBuilder.buildConditionalRequestFromVariants(request, variantMap.keySet());
+        final ClassicHttpRequest conditionalRequest = conditionalRequestBuilder.buildConditionalRequestFromVariants(
+                request,
+                new ArrayList<>(variantMap.keySet()));
 
         final Instant requestDate = getCurrentDate();
         final ClassicHttpResponse backendResponse = chain.proceed(conditionalRequest, scope);
diff --git a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
index bccb12aa8..e476c7643 100644
--- a/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
+++ b/httpclient5-cache/src/main/java/org/apache/hc/client5/http/impl/cache/ConditionalRequestBuilder.java
@@ -26,7 +26,7 @@
  */
 package org.apache.hc.client5.http.impl.cache;
 
-import java.util.Set;
+import java.util.List;
 
 import org.apache.hc.client5.http.cache.HeaderConstants;
 import org.apache.hc.client5.http.cache.HttpCacheEntry;
@@ -84,9 +84,9 @@ class ConditionalRequestBuilder<T extends HttpRequest> {
      * @param variants
      * @return the wrapped request
      */
-    public T buildConditionalRequestFromVariants(final T request, final Set<String> variants) {
+    public T buildConditionalRequestFromVariants(final T request, final List<String> variants) {
         final T newRequest = messageCopier.create(request);
-        newRequest.setHeader(MessageSupport.format(HttpHeaders.IF_NONE_MATCH, variants));
+        newRequest.setHeader(MessageSupport.headerOfTokens(HttpHeaders.IF_NONE_MATCH, variants));
         return newRequest;
     }
 
diff --git a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestConditionalRequestBuilder.java b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestConditionalRequestBuilder.java
index 1aadcac96..56360bf96 100644
--- a/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestConditionalRequestBuilder.java
+++ b/httpclient5-cache/src/test/java/org/apache/hc/client5/http/impl/cache/TestConditionalRequestBuilder.java
@@ -28,8 +28,7 @@ package org.apache.hc.client5.http.impl.cache;
 
 import java.time.Instant;
 import java.util.Arrays;
-import java.util.HashSet;
-import java.util.Set;
+import java.util.List;
 
 import org.apache.hc.client5.http.cache.HttpCacheEntry;
 import org.apache.hc.client5.http.utils.DateUtils;
@@ -263,7 +262,7 @@ public class TestConditionalRequestBuilder {
         final String etag2 = "\"456\"";
         final String etag3 = "\"789\"";
 
-        final Set<String> variantEntries = new HashSet<>(Arrays.asList(etag1, etag2, etag3));
+        final List<String> variantEntries = Arrays.asList(etag1, etag2, etag3);
 
         final HttpRequest conditional = impl.buildConditionalRequestFromVariants(request, variantEntries);
 
diff --git a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/TestSSLSocketFactory.java b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/TestSSLSocketFactory.java
index cdcf7bf39..0a83b6ab5 100644
--- a/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/TestSSLSocketFactory.java
+++ b/httpclient5-testing/src/test/java/org/apache/hc/client5/testing/sync/TestSSLSocketFactory.java
@@ -46,8 +46,6 @@ import javax.net.ssl.SSLSocket;
 import org.apache.hc.client5.http.ssl.NoopHostnameVerifier;
 import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
 import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactoryBuilder;
-import org.apache.hc.client5.http.ssl.TrustAllStrategy;
-import org.apache.hc.client5.http.ssl.TrustSelfSignedStrategy;
 import org.apache.hc.client5.testing.SSLTestContexts;
 import org.apache.hc.core5.http.HttpHost;
 import org.apache.hc.core5.http.impl.bootstrap.HttpServer;
@@ -287,21 +285,11 @@ public class TestSSLSocketFactory {
     }
 
     @Test
-    public void testSSLTrustVerificationOverrideWithCustsom() throws Exception {
+    public void testSSLTrustVerificationOverrideWithCustom() throws Exception {
         final TrustStrategy trustStrategy = (chain, authType) -> chain.length == 1;
         testSSLTrustVerificationOverride(trustStrategy);
     }
 
-    @Test
-    public void testSSLTrustVerificationOverrideWithTrustSelfSignedStrategy() throws Exception {
-        testSSLTrustVerificationOverride(TrustSelfSignedStrategy.INSTANCE);
-    }
-
-    @Test
-    public void testSSLTrustVerificationOverrideWithTrustAllStrategy() throws Exception {
-        testSSLTrustVerificationOverride(TrustAllStrategy.INSTANCE);
-    }
-
     private void testSSLTrustVerificationOverride(final TrustStrategy trustStrategy)
             throws Exception, IOException, NoSuchAlgorithmException, KeyManagementException, KeyStoreException {
         // @formatter:off
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/RequestSupport.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/RequestSupport.java
index 50e879f38..5bec04cd3 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/RequestSupport.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/RequestSupport.java
@@ -49,7 +49,7 @@ public final class RequestSupport {
             final URIBuilder uriBuilder = new URIBuilder(path);
             uriBuilder.setFragment(null);
             uriBuilder.clearParameters();
-            uriBuilder.normalizeSyntax();
+            uriBuilder.optimize();
             final List<String> pathSegments = uriBuilder.getPathSegments();
 
             if (!pathSegments.isEmpty()) {
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ContentCompressionExec.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ContentCompressionExec.java
index 722e2eb8a..8bcdc3abe 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ContentCompressionExec.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/classic/ContentCompressionExec.java
@@ -28,6 +28,7 @@
 package org.apache.hc.client5.http.impl.classic;
 
 import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Locale;
 
@@ -88,15 +89,14 @@ public final class ContentCompressionExec implements ExecChainHandler {
             final boolean ignoreUnknown) {
 
         final boolean brotliSupported = BrotliDecompressingEntity.isAvailable();
-        final String[] encoding;
+        final List<String> encodings = new ArrayList<>(4);
+        encodings.add("gzip");
+        encodings.add("x-gzip");
+        encodings.add("deflate");
         if (brotliSupported) {
-            encoding = new String[] {"gzip", "x-gzip", "deflate", "br"};
-        } else {
-            encoding = new String[] {"gzip", "x-gzip", "deflate"};
+            encodings.add("br");
         }
-        this.acceptEncoding = MessageSupport.format(HttpHeaders.ACCEPT_ENCODING,
-                                                    acceptEncoding != null ? acceptEncoding.toArray(
-                                                        EMPTY_STRING_ARRAY) : encoding);
+        this.acceptEncoding = MessageSupport.headerOfTokens(HttpHeaders.ACCEPT_ENCODING, encodings);
 
         if (decoderRegistry != null) {
             this.decoderRegistry = decoderRegistry;
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpResponseParserFactory.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpResponseParserFactory.java
index 108b293bd..290b64064 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpResponseParserFactory.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/DefaultHttpResponseParserFactory.java
@@ -48,25 +48,53 @@ public class DefaultHttpResponseParserFactory implements HttpMessageParserFactor
 
     public static final DefaultHttpResponseParserFactory INSTANCE = new DefaultHttpResponseParserFactory();
 
+    private final Http1Config h1Config;
     private final LineParser lineParser;
     private final HttpResponseFactory<ClassicHttpResponse> responseFactory;
 
+    /**
+     * @since 5.4
+     */
     public DefaultHttpResponseParserFactory(
+            final Http1Config h1Config,
             final LineParser lineParser,
             final HttpResponseFactory<ClassicHttpResponse> responseFactory) {
         super();
+        this.h1Config = h1Config != null ? h1Config : Http1Config.DEFAULT;
         this.lineParser = lineParser != null ? lineParser : BasicLineParser.INSTANCE;
         this.responseFactory = responseFactory != null ? responseFactory : DefaultClassicHttpResponseFactory.INSTANCE;
     }
 
+    /**
+     * @since 5.4
+     */
+    public DefaultHttpResponseParserFactory(final Http1Config h1Config) {
+        this(h1Config, null, null);
+    }
+
+    public DefaultHttpResponseParserFactory(
+            final LineParser lineParser,
+            final HttpResponseFactory<ClassicHttpResponse> responseFactory) {
+        this(null, lineParser, responseFactory);
+    }
+
     public DefaultHttpResponseParserFactory(final HttpResponseFactory<ClassicHttpResponse> responseFactory) {
-        this(null, responseFactory);
+        this(null, null, responseFactory);
     }
 
     public DefaultHttpResponseParserFactory() {
-        this(null, null);
+        this(null, null, null);
+    }
+
+    @Override
+    public HttpMessageParser<ClassicHttpResponse> create() {
+        return new LenientHttpResponseParser(this.lineParser, this.responseFactory, h1Config);
     }
 
+    /**
+     * @deprecated Use {@link #create()}
+     */
+    @Deprecated
     @Override
     public HttpMessageParser<ClassicHttpResponse> create(final Http1Config h1Config) {
         return new LenientHttpResponseParser(this.lineParser, this.responseFactory, h1Config);
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/LenientHttpResponseParser.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/LenientHttpResponseParser.java
index 45da0c990..f2ba7c5f1 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/LenientHttpResponseParser.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/LenientHttpResponseParser.java
@@ -65,7 +65,7 @@ public class LenientHttpResponseParser extends DefaultHttpResponseParser {
             final LineParser lineParser,
             final HttpResponseFactory<ClassicHttpResponse> responseFactory,
             final Http1Config h1Config) {
-        super(lineParser, responseFactory, h1Config);
+        super(h1Config, lineParser, responseFactory);
     }
 
     /**
diff --git a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/ManagedHttpClientConnectionFactory.java b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/ManagedHttpClientConnectionFactory.java
index 503e34a93..0c520b253 100644
--- a/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/ManagedHttpClientConnectionFactory.java
+++ b/httpclient5/src/main/java/org/apache/hc/client5/http/impl/io/ManagedHttpClientConnectionFactory.java
@@ -81,9 +81,9 @@ public class ManagedHttpClientConnectionFactory implements HttpConnectionFactory
         this.h1Config = h1Config != null ? h1Config : Http1Config.DEFAULT;
         this.charCodingConfig = charCodingConfig != null ? charCodingConfig : CharCodingConfig.DEFAULT;
         this.requestWriterFactory = requestWriterFactory != null ? requestWriterFactory :
-                DefaultHttpRequestWriterFactory.INSTANCE;
+                new DefaultHttpRequestWriterFactory(this.h1Config);
         this.responseParserFactory = responseParserFactory != null ? responseParserFactory :
-                DefaultHttpResponseParserFactory.INSTANCE;
+                new DefaultHttpResponseParserFactory(this.h1Config);
         this.incomingContentStrategy = incomingContentStrategy != null ? incomingContentStrategy :
                 DefaultContentLengthStrategy.INSTANCE;
         this.outgoingContentStrategy = outgoingContentStrategy != null ? outgoingContentStrategy :
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/examples/ClientConfiguration.java b/httpclient5/src/test/java/org/apache/hc/client5/http/examples/ClientConfiguration.java
index 3cd7c47a4..bb2074766 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/examples/ClientConfiguration.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/examples/ClientConfiguration.java
@@ -95,12 +95,18 @@ public class ClientConfiguration {
 
     public final static void main(final String[] args) throws Exception {
 
+        // Create HTTP/1.1 protocol configuration
+        final Http1Config h1Config = Http1Config.custom()
+                .setMaxHeaderCount(200)
+                .setMaxLineLength(2000)
+                .build();
+
         // Use custom message parser / writer to customize the way HTTP
         // messages are parsed from and written out to the data stream.
         final HttpMessageParserFactory<ClassicHttpResponse> responseParserFactory = new DefaultHttpResponseParserFactory() {
 
             @Override
-            public HttpMessageParser<ClassicHttpResponse> create(final Http1Config h1Config) {
+            public HttpMessageParser<ClassicHttpResponse> create() {
                 final LineParser lineParser = new BasicLineParser() {
 
                     @Override
@@ -113,17 +119,12 @@ public class ClientConfiguration {
                     }
 
                 };
-                return new DefaultHttpResponseParser(lineParser, DefaultClassicHttpResponseFactory.INSTANCE, h1Config);
+                return new DefaultHttpResponseParser(h1Config, lineParser, DefaultClassicHttpResponseFactory.INSTANCE);
             }
 
         };
         final HttpMessageWriterFactory<ClassicHttpRequest> requestWriterFactory = new DefaultHttpRequestWriterFactory();
 
-        // Create HTTP/1.1 protocol configuration
-        final Http1Config h1Config = Http1Config.custom()
-                .setMaxHeaderCount(200)
-                .setMaxLineLength(2000)
-                .build();
         // Create connection configuration
         final CharCodingConfig connectionConfig = CharCodingConfig.custom()
                 .setMalformedInputAction(CodingErrorAction.IGNORE)
diff --git a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/auth/TestBasicScheme.java b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/auth/TestBasicScheme.java
index 22b1df6c8..b960045b7 100644
--- a/httpclient5/src/test/java/org/apache/hc/client5/http/impl/auth/TestBasicScheme.java
+++ b/httpclient5/src/test/java/org/apache/hc/client5/http/impl/auth/TestBasicScheme.java
@@ -118,7 +118,7 @@ public class TestBasicScheme {
     public void testBasicAuthenticationDefaultCharsetUTF8() throws Exception {
         final HttpHost host  = new HttpHost("somehost", 80);
         final UsernamePasswordCredentials creds = new UsernamePasswordCredentials("test", TEST_UTF8_PASSWORD.toCharArray());
-        final BasicScheme authscheme = new BasicScheme(StandardCharsets.UTF_8);
+        final BasicScheme authscheme = new BasicScheme();
         final HttpRequest request = new BasicHttpRequest("GET", "/");
         authscheme.initPreemptive(creds);
         final String authResponse = authscheme.generateAuthResponse(host, request, null);