diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java index 972629ad..90f6c4db 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2022 the original author or authors. + * Copyright 2013-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -24,6 +24,7 @@ import java.time.Duration; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; import javax.net.ssl.HostnameVerifier; import javax.net.ssl.SSLContext; @@ -261,7 +262,8 @@ public class FeignAutoConfiguration { int connectTimeout = httpClientProperties.getConnectionTimeout(); boolean disableSslValidation = httpClientProperties.isDisableSslValidation(); Duration readTimeout = httpClientProperties.getOkHttp().getReadTimeout(); - List protocols = httpClientProperties.getOkHttp().getProtocols(); + List protocols = httpClientProperties.getOkHttp().getProtocols().stream().map(Protocol::valueOf) + .collect(Collectors.toList()); if (disableSslValidation) { disableSsl(builder); } diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.java index 63c9b9aa..0e26cde1 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2013-2022 the original author or authors. + * Copyright 2013-2023 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -340,8 +340,9 @@ public class FeignHttpClientProperties { /** * Configure the protocols used by this client to communicate with remote servers. + * Uses {@link String} values of {@link Protocol}. */ - private List protocols = List.of(Protocol.HTTP_2, Protocol.HTTP_1_1); + private List protocols = List.of("HTTP_2", "HTTP_1_1"); public Duration getReadTimeout() { return readTimeout; @@ -351,11 +352,11 @@ public class FeignHttpClientProperties { this.readTimeout = readTimeout; } - public List getProtocols() { + public List getProtocols() { return protocols; } - public void setProtocols(List protocols) { + public void setProtocols(List protocols) { this.protocols = protocols; } diff --git a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/protocol/FeignOkProtocolsTests.java b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/protocol/FeignOkHttpProtocolsTests.java similarity index 95% rename from spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/protocol/FeignOkProtocolsTests.java rename to spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/protocol/FeignOkHttpProtocolsTests.java index 951fd062..5e0393c8 100644 --- a/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/protocol/FeignOkProtocolsTests.java +++ b/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/protocol/FeignOkHttpProtocolsTests.java @@ -40,13 +40,13 @@ import static org.assertj.core.api.Assertions.assertThat; /** * @author changjin wei(魏昌进) */ -@SpringBootTest(classes = FeignOkProtocolsTests.Application.class, webEnvironment = WebEnvironment.RANDOM_PORT, +@SpringBootTest(classes = FeignOkHttpProtocolsTests.Application.class, webEnvironment = WebEnvironment.RANDOM_PORT, value = { "spring.application.name=feignclienttest", "spring.cloud.openfeign.circuitbreaker.enabled=false", "spring.cloud.openfeign.httpclient.hc5.enabled=false", "spring.cloud.openfeign.okhttp.enabled=true", "spring.cloud.httpclientfactories.ok.enabled=true", "spring.cloud.loadbalancer.retry.enabled=false", "server.http2.enabled=true", "spring.cloud.openfeign.httpclient.okhttp.protocols=H2_PRIOR_KNOWLEDGE" }) @DirtiesContext -class FeignOkProtocolsTests { +class FeignOkHttpProtocolsTests { @Autowired private Client feignClient;