diff options
6 files changed, 10 insertions, 6 deletions
diff --git a/vespa-feed-client-api/src/main/java/ai/vespa/feed/client/FeedClientBuilder.java b/vespa-feed-client-api/src/main/java/ai/vespa/feed/client/FeedClientBuilder.java index d48c3c31348..1217ad205c3 100644 --- a/vespa-feed-client-api/src/main/java/ai/vespa/feed/client/FeedClientBuilder.java +++ b/vespa-feed-client-api/src/main/java/ai/vespa/feed/client/FeedClientBuilder.java @@ -126,7 +126,7 @@ public interface FeedClientBuilder { /** What compression to use for request bodies; default {@code NONE}. */ FeedClientBuilder setCompression(Compression compression); - enum Compression { none, gzip } + enum Compression { auto, none, gzip } /** Constructs instance of {@link FeedClient} from builder configuration */ FeedClient build(); diff --git a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java index 045ff2aabd1..be6f3263ffc 100644 --- a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java +++ b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/impl/CliArguments.java @@ -371,7 +371,7 @@ class CliArguments { .addOption(Option.builder() .longOpt(COMPRESSION) .desc("Forced compression mode for feed requests; the default is to compress large requests. " + - "Valid arguments are: 'none', 'gzip'") + "Valid arguments are: 'auto' (default), 'none', 'gzip'") .hasArg() .type(Compression.class) .build()); diff --git a/vespa-feed-client-cli/src/test/resources/help.txt b/vespa-feed-client-cli/src/test/resources/help.txt index 8a966361a37..554c42af3dc 100644 --- a/vespa-feed-client-cli/src/test/resources/help.txt +++ b/vespa-feed-client-cli/src/test/resources/help.txt @@ -9,7 +9,8 @@ Vespa feed client --compression <arg> Forced compression mode for feed requests; the default is to compress large requests. Valid - arguments are: 'none', 'gzip' + arguments are: 'auto' (default), + 'none', 'gzip' --connections <arg> Number of concurrent HTTP/2 connections --disable-ssl-hostname-verification Disable SSL hostname diff --git a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/ApacheCluster.java b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/ApacheCluster.java index 639aebf7c46..19f3ccf7a83 100644 --- a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/ApacheCluster.java +++ b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/ApacheCluster.java @@ -36,6 +36,8 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.zip.GZIPOutputStream; +import static ai.vespa.feed.client.FeedClientBuilder.Compression.auto; +import static ai.vespa.feed.client.FeedClientBuilder.Compression.gzip; import static org.apache.hc.core5.http.ssl.TlsCiphers.excludeH2Blacklisted; import static org.apache.hc.core5.http.ssl.TlsCiphers.excludeWeak; @@ -89,7 +91,7 @@ class ApacheCluster implements Cluster { wrapped.headers().forEach((name, value) -> request.setHeader(name, value.get())); if (wrapped.body() != null) { byte[] body = wrapped.body(); - if (compression == Compression.gzip || compression == null && body.length > 512) { + if (compression == gzip || compression == auto && body.length > 512) { request.setHeader(gzipEncodingHeader); body = gzipped(body); } diff --git a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java index b364ba953eb..e5bfffbf24d 100644 --- a/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java +++ b/vespa-feed-client/src/main/java/ai/vespa/feed/client/impl/FeedClientBuilderImpl.java @@ -21,6 +21,7 @@ import java.util.List; import java.util.Map; import java.util.function.Supplier; +import static ai.vespa.feed.client.FeedClientBuilder.Compression.auto; import static ai.vespa.feed.client.FeedClientBuilder.Compression.none; import static java.util.Objects.requireNonNull; @@ -51,7 +52,7 @@ public class FeedClientBuilderImpl implements FeedClientBuilder { boolean benchmark = true; boolean dryrun = false; boolean speedTest = false; - Compression compression = null; + Compression compression = auto; URI proxy; diff --git a/vespa-feed-client/src/test/java/ai/vespa/feed/client/impl/ApacheClusterTest.java b/vespa-feed-client/src/test/java/ai/vespa/feed/client/impl/ApacheClusterTest.java index 33c043ea271..0c7d94c04ec 100644 --- a/vespa-feed-client/src/test/java/ai/vespa/feed/client/impl/ApacheClusterTest.java +++ b/vespa-feed-client/src/test/java/ai/vespa/feed/client/impl/ApacheClusterTest.java @@ -62,7 +62,7 @@ class ApacheClusterTest { .withHeader("Content-Type", equalTo("application/json; charset=UTF-8")) .withRequestBody(equalTo("content")); expected = switch (compression) { - case none -> expected.withoutHeader("Content-Encoding"); + case auto, none -> expected.withoutHeader("Content-Encoding"); case gzip -> expected.withHeader("Content-Encoding", equalTo("gzip")); }; server.verify(1, expected); |