Skip to content

Commit 21a29dc

Browse files
authored
Add a new enable-http2 flag to the service configuration (#443)
Add a new `enable-http2` flag to the service configuration
1 parent 8cdeb4b commit 21a29dc

File tree

8 files changed

+51
-10
lines changed

8 files changed

+51
-10
lines changed

.palantir/revapi.yml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,21 @@ versionOverrides:
33
com.palantir.conjure.java.api:ssl-config:2.8.0: "2.7.0"
44
com.palantir.conjure.java.api:errors:2.8.0: "2.7.0"
55
com.palantir.conjure.java.api:service-config:2.8.0: "2.7.0"
6-
acceptedBreaks: {}
6+
acceptedBreaks:
7+
"2.10.0":
8+
com.palantir.conjure.java.api:service-config:
9+
- code: "java.method.addedToInterface"
10+
old: null
11+
new: "method java.util.Optional<java.lang.Boolean> com.palantir.conjure.java.api.config.service.ServiceConfiguration::enableHttp2()"
12+
justification: "Added a new field to ServiceConfiguration, @Immutables annotated\
13+
\ types are not meant for extension"
14+
- code: "java.method.addedToInterface"
15+
old: null
16+
new: "method java.util.Optional<java.lang.Boolean> com.palantir.conjure.java.api.config.service.PartialServiceConfiguration::enableHttp2()"
17+
justification: "Added a new field to ServiceConfiguration, @Immutables annotated\
18+
\ types are not meant for extension"
19+
- code: "java.method.abstractMethodAdded"
20+
old: null
21+
new: "method java.util.Optional<java.lang.Boolean> com.palantir.conjure.java.api.config.service.ServicesConfigBlock::defaultEnableHttp2()"
22+
justification: "Added a new field to ServiceConfiguration, @Immutables annotated\
23+
\ types are not meant for extension"
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
type: improvement
2+
improvement:
3+
description: Add a new `enable-http2` flag to the service configuration
4+
links:
5+
- https://github.com/palantir/conjure-java-runtime-api/pull/443

service-config/src/main/java/com/palantir/conjure/java/api/config/service/PartialServiceConfiguration.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,13 @@ public interface PartialServiceConfiguration {
7070
@JsonAlias("enable-gcm-cipher-suites")
7171
Optional<Boolean> enableGcmCipherSuites();
7272

73+
/**
74+
* Whether or not to allow the http/2 protocol. A default value is not guaranteed, and may differ between
75+
* client implementations.
76+
*/
77+
@JsonAlias("enable-http2")
78+
Optional<Boolean> enableHttp2();
79+
7380
/**
7481
* Enables fallback to common name verification, defaults to false.
7582
*

service-config/src/main/java/com/palantir/conjure/java/api/config/service/ServiceConfiguration.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,8 @@ public interface ServiceConfiguration {
4949

5050
Optional<Boolean> enableGcmCipherSuites();
5151

52+
Optional<Boolean> enableHttp2();
53+
5254
Optional<Boolean> fallbackToCommonNameVerification();
5355

5456
Optional<ProxyConfiguration> proxy();

service-config/src/main/java/com/palantir/conjure/java/api/config/service/ServiceConfigurationFactory.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ private ServiceConfiguration propagateDefaults(String serviceName, PartialServic
8686
.map(t -> Duration.ofMillis(t.toMilliseconds())))
8787
.proxy(orElse(partial.proxyConfiguration(), services.defaultProxyConfiguration()))
8888
.enableGcmCipherSuites(orElse(partial.enableGcmCipherSuites(), services.defaultEnableGcmCipherSuites()))
89+
.enableHttp2(orElse(partial.enableHttp2(), services.defaultEnableHttp2()))
8990
.fallbackToCommonNameVerification(orElse(
9091
partial.fallbackToCommonNameVerification(), services.defaultFallbackToCommonNameVerification()))
9192
.build();

service-config/src/main/java/com/palantir/conjure/java/api/config/service/ServicesConfigBlock.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,11 @@ public abstract class ServicesConfigBlock {
8888
@JsonAlias("enable-gcm-cipher-suites")
8989
public abstract Optional<Boolean> defaultEnableGcmCipherSuites();
9090

91+
/** Default enablement of http/2.. */
92+
@JsonProperty("enableHttp2")
93+
@JsonAlias("enable-http2")
94+
public abstract Optional<Boolean> defaultEnableHttp2();
95+
9196
/**
9297
* Default fallback to common name verification, defaults to false.
9398
*

service-config/src/test/java/com/palantir/conjure/java/api/config/service/PartialServiceConfigurationTest.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void serDe() throws Exception {
4848
+ "\"keyStorePassword\":null,\"keyStoreType\":\"JKS\",\"keyStoreKeyAlias\":null},\"uris\":[\"uri1\"],"
4949
+ "\"connectTimeout\":\"1 day\",\"readTimeout\":\"1 day\",\"writeTimeout\":\"1 day\","
5050
+ "\"maxNumRetries\":5,\"backoffSlotSize\":\"1 day\","
51-
+ "\"enableGcmCipherSuites\":null,\"fallbackToCommonNameVerification\":null,"
51+
+ "\"enableGcmCipherSuites\":null,\"enableHttp2\":null,\"fallbackToCommonNameVerification\":null,"
5252
+ "\"proxyConfiguration\":{\"hostAndPort\":\"host:80\",\"credentials\":null,"
5353
+ "\"type\":\"HTTP\"}}";
5454
String kebabCase = "{\"api-token\":\"bearerToken\",\"security\":"
@@ -57,7 +57,8 @@ public void serDe() throws Exception {
5757
+ "\"connect-timeout\":\"1 day\",\"read-timeout\":\"1 day\",\"write-timeout\":\"1 day\","
5858
+ "\"max-num-retries\":5,\"backoff-slot-size\":\"1 day\","
5959
+ "\"uris\":[\"uri1\"],\"proxy-configuration\":{\"host-and-port\":\"host:80\",\"credentials\":null},"
60-
+ "\"enable-gcm-cipher-suites\":null,\"fallback-to-common-name-verification\":null}";
60+
+ "\"enable-gcm-cipher-suites\":null,\"enable-http2\":null,"
61+
+ "\"fallback-to-common-name-verification\":null}";
6162

6263
assertThat(mapper.writeValueAsString(serialized)).isEqualTo(camelCase);
6364
assertThat(mapper.readValue(camelCase, PartialServiceConfiguration.class))
@@ -72,11 +73,12 @@ public void serDe_optional() throws Exception {
7273
PartialServiceConfiguration.builder().build();
7374
String camelCase = "{\"apiToken\":null,\"security\":null,\"uris\":[],\"connectTimeout\":null,"
7475
+ "\"readTimeout\":null,\"writeTimeout\":null,\"maxNumRetries\":null,\"backoffSlotSize\":null,"
75-
+ "\"enableGcmCipherSuites\":null,\"fallbackToCommonNameVerification\":null,"
76+
+ "\"enableGcmCipherSuites\":null,\"enableHttp2\":null,\"fallbackToCommonNameVerification\":null,"
7677
+ "\"proxyConfiguration\":null}";
7778
String kebabCase = "{\"api-token\":null,\"security\":null,\"connect-timeout\":null,"
7879
+ "\"read-timeout\":null,\"write-timeout\":null,\"max-num-retries\":null,\"backoff-slot-size\":null,"
79-
+ "\"enable-gcm-cipher-suites\":null,\"fallback-to-common-name-verification\":null,"
80+
+ "\"enable-gcm-cipher-suites\":null,\"enable-http2\":null,"
81+
+ "\"fallback-to-common-name-verification\":null,"
8082
+ "\"uris\":[],\"proxy-configuration\":null}";
8183

8284
assertThat(ObjectMappers.newClientObjectMapper().writeValueAsString(serialized))

service-config/src/test/java/com/palantir/conjure/java/api/config/service/ServiceConfigurationFactoryTests.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -192,17 +192,18 @@ public void serDe() throws Exception {
192192
+ "\"keyStorePassword\":null,\"keyStoreType\":\"JKS\",\"keyStoreKeyAlias\":null},\"services\":"
193193
+ "{\"service\":{\"apiToken\":null,\"security\":null,\"uris\":[\"uri\"],\"connectTimeout\":null,"
194194
+ "\"readTimeout\":null,\"writeTimeout\":null,\"maxNumRetries\":null,\"backoffSlotSize\":null,"
195-
+ "\"enableGcmCipherSuites\":null,\"fallbackToCommonNameVerification\":null,"
195+
+ "\"enableGcmCipherSuites\":null,\"enableHttp2\":null,\"fallbackToCommonNameVerification\":null,"
196196
+ "\"proxyConfiguration\":null}},\"proxyConfiguration\":"
197197
+ "{\"hostAndPort\":\"host:80\",\"credentials\":null,\"type\":\"HTTP\"},\"connectTimeout\":\"1 day\","
198198
+ "\"readTimeout\":\"1 day\",\"writeTimeout\":\"1 day\",\"backoffSlotSize\":\"1 day\","
199-
+ "\"enableGcmCipherSuites\":null,\"fallbackToCommonNameVerification\":null}";
199+
+ "\"enableGcmCipherSuites\":null,\"enableHttp2\":null,\"fallbackToCommonNameVerification\":null}";
200200
String kebabCase = "{\"api-token\":\"bearerToken\",\"security\":"
201201
+ "{\"trust-store-path\":\"truststore.jks\",\"trust-store-type\":\"JKS\",\"key-store-path\":null,"
202202
+ "\"key-store-password\":null,\"key-store-type\":\"JKS\",\"key-store-key-alias\":null},\"services\":"
203203
+ "{\"service\":{\"apiToken\":null,\"security\":null,\"connect-timeout\":null,\"read-timeout\":null,"
204204
+ "\"write-timeout\":null,\"max-num-retries\":null,\"backoffSlotSize\":null,\"uris\":[\"uri\"],"
205-
+ "\"enable-gcm-cipher-suites\":null,\"fallback-to-common-name-verification\":null,"
205+
+ "\"enable-gcm-cipher-suites\":null,\"enable-http2\":null,"
206+
+ "\"fallback-to-common-name-verification\":null,"
206207
+ "\"proxy-configuration\":null}},\"proxy-configuration\":"
207208
+ "{\"host-and-port\":\"host:80\",\"credentials\":null},\"connect-timeout\":\"1 day\","
208209
+ "\"read-timeout\":\"1 day\",\"write-timeout\":\"1 day\",\"backoff-slot-size\":\"1 day\"}";
@@ -220,10 +221,11 @@ public void serDe_optional() throws Exception {
220221
ServicesConfigBlock deserialized = ServicesConfigBlock.builder().build();
221222
String serializedCamelCase = "{\"apiToken\":null,\"security\":null,\"services\":{},"
222223
+ "\"proxyConfiguration\":null,\"connectTimeout\":null,\"readTimeout\":null,\"writeTimeout\":null,"
223-
+ "\"backoffSlotSize\":null,\"enableGcmCipherSuites\":null,\"fallbackToCommonNameVerification\":null}";
224+
+ "\"backoffSlotSize\":null,\"enableGcmCipherSuites\":null,\"enableHttp2\":null,"
225+
+ "\"fallbackToCommonNameVerification\":null}";
224226
String serializedKebabCase = "{\"api-token\":null,\"security\":null,\"services\":{},"
225227
+ "\"proxy-configuration\":null,\"connect-timeout\":null,\"read-timeout\":null,\"write-timeout\":null,"
226-
+ "\"backoff-slot-size\":null,\"enable-gcm-cipher-suites\":null,"
228+
+ "\"backoff-slot-size\":null,\"enable-gcm-cipher-suites\":null,\"enable-http2\":null,"
227229
+ "\"fallback-to-common-name-verification\":null}";
228230

229231
assertThat(ObjectMappers.newClientObjectMapper().writeValueAsString(deserialized))

0 commit comments

Comments
 (0)