Skip to content

Commit 40b2fa0

Browse files
committed
add documentation about setting a specific HTTP protocol version
1 parent 7b557f3 commit 40b2fa0

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

commercetools/internal-docs/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ dependencies {
55
implementation project(":commercetools:commercetools-http-client")
66
implementation project(":commercetools:commercetools-okhttp-client4")
77
implementation project(":commercetools:commercetools-apachehttp-client")
8+
implementation project(":commercetools:commercetools-reactornetty-client")
89
implementation project(":commercetools:commercetools-sdk-compat-v1")
910
implementation project(":commercetools:commercetools-graphql-api")
1011
implementation project(":commercetools:commercetools-monitoring-newrelic")
1112
implementation project(":commercetools:commercetools-monitoring-datadog")
1213

1314
testImplementation ctsdkv1.client version ctsdkv1.version
1415
implementation ctsdkv1.models version ctsdkv1.version
16+
testImplementation project(":commercetools:commercetools-javanet-client")
1517

1618
testImplementation commons.io version commons.io_version
1719

commercetools/internal-docs/src/main/java/com/commercetools/docs/meta/ClientTuning.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@
6565
* <p>The third option is to use the timeout functionality of the futures</p>
6666
*
6767
* {@include.example example.ExamplesTest#timeoutFuture()}
68+
*
69+
* <h3 id=http-version>HTTP protocol version</h3>
70+
*
71+
* <p>In case it's needed so specify a specific HTTP protocol version this can be done through the HTTP client package itself.</p>
72+
*
73+
* {@include.example example.ExamplesTest#httpVersion()}
74+
*
75+
* <p>The AsyncHttpClient and OkHttp packages use HTTP1.1 by default.</p>
6876
*/
6977
public class ClientTuning {
7078
}

commercetools/internal-docs/src/test/java/example/ExamplesTest.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import java.net.InetSocketAddress;
1010
import java.net.Proxy;
11+
import java.net.http.HttpClient;
1112
import java.time.Duration;
1213
import java.util.Arrays;
1314
import java.util.Collections;
@@ -35,6 +36,8 @@
3536
import com.commercetools.api.models.project.Project;
3637
import com.commercetools.api.models.tax_category.TaxCategoryPagedQueryResponse;
3738
import com.commercetools.http.apachehttp.CtApacheHttpClient;
39+
import com.commercetools.http.javanet.CtJavaNetHttpClient;
40+
import com.commercetools.http.netty.CtNettyHttpClient;
3841
import com.commercetools.http.okhttp4.CtOkHttp4Client;
3942

4043
import io.vrap.rmf.base.client.*;
@@ -43,13 +46,15 @@
4346

4447
import org.apache.commons.lang3.tuple.Pair;
4548
import org.apache.hc.client5.http.config.RequestConfig;
49+
import org.apache.hc.core5.http2.HttpVersionPolicy;
4650
import org.apache.hc.core5.util.Timeout;
4751
import org.assertj.core.api.Assertions;
4852
import org.junit.jupiter.api.Test;
4953
import org.slf4j.event.Level;
5054

5155
import dev.failsafe.Failsafe;
5256
import dev.failsafe.FailsafeExecutor;
57+
import reactor.netty.http.HttpProtocol;
5358

5459
public class ExamplesTest {
5560

@@ -623,4 +628,10 @@ public void mdcProjectApiRoot() {
623628
ProjectApiRoot globalRoot = ProjectApiRoot.of("test");
624629
ProjectApiRoot apiRoot = ProjectApiRoot.withContext(globalRoot, new MDCContext());
625630
}
631+
632+
public void httpVersion() {
633+
CtApacheHttpClient apacheHttpClient = new CtApacheHttpClient(HttpVersionPolicy.FORCE_HTTP_1);
634+
CtNettyHttpClient nettyHttpClient = new CtNettyHttpClient(HttpProtocol.HTTP11);
635+
CtJavaNetHttpClient javaNetHttpClient = new CtJavaNetHttpClient(HttpClient.Version.HTTP_1_1);
636+
}
626637
}

0 commit comments

Comments
 (0)