diff --git a/pom.xml b/pom.xml index de42aac5f..51052f8b7 100644 --- a/pom.xml +++ b/pom.xml @@ -89,7 +89,7 @@ - 1.11.7-Hoxton.SR12 + 1.11.8-Hoxton.SR12 5.2.22.RELEASE diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml index 5cc0cff59..31743b0c3 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml @@ -109,12 +109,6 @@ test - - org.springframework.cloud - spring-cloud-starter-contract-stub-runner - test - - com.tencent.polaris polaris-test-common diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerFeignIntegrationTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerFeignIntegrationTest.java index fd85ef41f..ea24db16d 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerFeignIntegrationTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerFeignIntegrationTest.java @@ -55,6 +55,8 @@ import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import static com.tencent.polaris.test.common.Consts.NAMESPACE_TEST; +import static com.tencent.polaris.test.common.Consts.SERVICE_CIRCUIT_BREAKER; import static com.tencent.polaris.test.common.TestUtils.SERVER_ADDRESS_ENV; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -69,8 +71,8 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen properties = { "spring.cloud.gateway.enabled=false", "feign.circuitbreaker.enabled=true", - "spring.cloud.polaris.namespace=default", - "spring.cloud.polaris.service=Test", + "spring.cloud.polaris.namespace=" + NAMESPACE_TEST, + "spring.cloud.polaris.service=" + SERVICE_CIRCUIT_BREAKER, "spring.cloud.polaris.address=grpc://127.0.0.1:10081" }) @DirtiesContext @@ -180,7 +182,7 @@ public class PolarisCircuitBreakerFeignIntegrationTest { catch (IOException e) { } - ServiceKey serviceKey = new ServiceKey("default", TEST_SERVICE_NAME); + ServiceKey serviceKey = new ServiceKey(NAMESPACE_TEST, TEST_SERVICE_NAME); CircuitBreakerProto.CircuitBreakerRule.Builder circuitBreakerRuleBuilder = CircuitBreakerProto.CircuitBreakerRule.newBuilder(); InputStream inputStream = PolarisCircuitBreakerMockServerTest.class.getClassLoader() diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerGatewayIntegrationTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerGatewayIntegrationTest.java index af254508f..cdb818447 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerGatewayIntegrationTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerGatewayIntegrationTest.java @@ -47,7 +47,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock; import org.springframework.cloud.gateway.filter.factory.SpringCloudCircuitBreakerFilterFactory; import org.springframework.cloud.gateway.route.RouteLocator; import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder; @@ -60,6 +59,8 @@ import org.springframework.test.web.reactive.server.WebTestClient; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import static com.tencent.polaris.test.common.Consts.NAMESPACE_TEST; +import static com.tencent.polaris.test.common.Consts.SERVICE_CIRCUIT_BREAKER; import static com.tencent.polaris.test.common.TestUtils.SERVER_ADDRESS_ENV; import static org.assertj.core.api.Assertions.assertThat; @@ -72,15 +73,13 @@ import static org.assertj.core.api.Assertions.assertThat; webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, properties = { "spring.cloud.gateway.enabled=true", - "spring.cloud.polaris.namespace=default", - "spring.cloud.polaris.service=Test", + "spring.cloud.polaris.namespace=" + NAMESPACE_TEST, + "spring.cloud.polaris.service=" + SERVICE_CIRCUIT_BREAKER, "spring.main.web-application-type=reactive", - "httpbin=http://localhost:${wiremock.server.port}", "spring.cloud.polaris.address=grpc://127.0.0.1:10081" }, classes = PolarisCircuitBreakerGatewayIntegrationTest.TestApplication.class ) -@AutoConfigureWireMock(port = 0) @ActiveProfiles("test-gateway") @AutoConfigureWebTestClient(timeout = "1000000") public class PolarisCircuitBreakerGatewayIntegrationTest { @@ -169,7 +168,7 @@ public class PolarisCircuitBreakerGatewayIntegrationTest { catch (IOException e) { } - ServiceKey serviceKey = new ServiceKey("default", TEST_SERVICE_NAME); + ServiceKey serviceKey = new ServiceKey(NAMESPACE_TEST, TEST_SERVICE_NAME); CircuitBreakerProto.CircuitBreakerRule.Builder circuitBreakerRuleBuilder = CircuitBreakerProto.CircuitBreakerRule.newBuilder(); InputStream inputStream = PolarisCircuitBreakerMockServerTest.class.getClassLoader() diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerIntegrationTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerIntegrationTest.java index 97b82f086..ff90b5377 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerIntegrationTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerIntegrationTest.java @@ -67,6 +67,8 @@ import org.springframework.web.bind.annotation.RestController; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.DefaultUriBuilderFactory; +import static com.tencent.polaris.test.common.Consts.NAMESPACE_TEST; +import static com.tencent.polaris.test.common.Consts.SERVICE_CIRCUIT_BREAKER; import static com.tencent.polaris.test.common.TestUtils.SERVER_ADDRESS_ENV; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; @@ -84,8 +86,8 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat properties = { "spring.cloud.gateway.enabled=false", "feign.circuitbreaker.enabled=true", - "spring.cloud.polaris.namespace=default", - "spring.cloud.polaris.service=test", + "spring.cloud.polaris.namespace=" + NAMESPACE_TEST, + "spring.cloud.polaris.service=" + SERVICE_CIRCUIT_BREAKER, "spring.cloud.polaris.address=grpc://127.0.0.1:10081" }) @DirtiesContext @@ -147,7 +149,8 @@ public class PolarisCircuitBreakerIntegrationTest { Utils.sleepUninterrupted(2000); assertThat(restTemplateFallbackFromCode2.getForObject("/example/service/b/info", String.class)).isEqualTo("\"this is a fallback class\""); Utils.sleepUninterrupted(2000); - assertThat(restTemplateFallbackFromCode3.getForEntity("/example/service/b/info", String.class).getStatusCode()).isEqualTo(HttpStatus.OK); + assertThat(restTemplateFallbackFromCode3.getForEntity("/example/service/b/info", String.class) + .getStatusCode()).isEqualTo(HttpStatus.OK); Utils.sleepUninterrupted(2000); assertThat(restTemplateFallbackFromCode4.getForObject("/example/service/b/info", String.class)).isEqualTo("fallback"); Utils.sleepUninterrupted(2000); @@ -244,7 +247,7 @@ public class PolarisCircuitBreakerIntegrationTest { catch (IOException e) { } - ServiceKey serviceKey = new ServiceKey("default", TEST_SERVICE_NAME); + ServiceKey serviceKey = new ServiceKey(NAMESPACE_TEST, TEST_SERVICE_NAME); CircuitBreakerProto.CircuitBreakerRule.Builder circuitBreakerRuleBuilder = CircuitBreakerProto.CircuitBreakerRule.newBuilder(); InputStream inputStream = PolarisCircuitBreakerMockServerTest.class.getClassLoader() diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerMockServerTest.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerMockServerTest.java index 5058a8a22..daf977f15 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerMockServerTest.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/PolarisCircuitBreakerMockServerTest.java @@ -86,12 +86,15 @@ public class PolarisCircuitBreakerMockServerTest { } ServiceKey serviceKey = new ServiceKey(NAMESPACE_TEST, SERVICE_CIRCUIT_BREAKER); - CircuitBreakerProto.CircuitBreakerRule.Builder circuitBreakerRuleBuilder = CircuitBreakerProto.CircuitBreakerRule.newBuilder(); - InputStream inputStream = PolarisCircuitBreakerMockServerTest.class.getClassLoader().getResourceAsStream("circuitBreakerRule.json"); - String json = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)).lines().collect(Collectors.joining("")); + CircuitBreakerProto.CircuitBreakerRule.Builder circuitBreakerRuleBuilder = CircuitBreakerProto.CircuitBreakerRule.newBuilder(); + InputStream inputStream = PolarisCircuitBreakerMockServerTest.class.getClassLoader() + .getResourceAsStream("circuitBreakerRule.json"); + String json = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)).lines() + .collect(Collectors.joining("")); JsonFormat.parser().ignoringUnknownFields().merge(json, circuitBreakerRuleBuilder); CircuitBreakerProto.CircuitBreakerRule circuitBreakerRule = circuitBreakerRuleBuilder.build(); - CircuitBreakerProto.CircuitBreaker circuitBreaker = CircuitBreakerProto.CircuitBreaker.newBuilder().addRules(circuitBreakerRule).build(); + CircuitBreakerProto.CircuitBreaker circuitBreaker = CircuitBreakerProto.CircuitBreaker.newBuilder() + .addRules(circuitBreakerRule).build(); namingServer.getNamingService().setCircuitBreaker(serviceKey, circuitBreaker); } @@ -100,6 +103,7 @@ public class PolarisCircuitBreakerMockServerTest { if (null != namingServer) { namingServer.terminate(); } + mockedApplicationContextAwareUtils.close(); } @Test @@ -138,7 +142,8 @@ public class PolarisCircuitBreakerMockServerTest { assertThat(Mono.error(new RuntimeException("boom")).transform(it -> rcb.run(it, t -> Mono.just("fallback"))) .block()).isEqualTo("fallback"); - assertThat(Flux.just("foobar", "hello world").transform(it -> rcb.run(it, t -> Flux.just("fallback", "fallback"))) + assertThat(Flux.just("foobar", "hello world") + .transform(it -> rcb.run(it, t -> Flux.just("fallback", "fallback"))) .collectList().block()) .isEqualTo(Arrays.asList("fallback", "fallback")); @@ -146,7 +151,6 @@ public class PolarisCircuitBreakerMockServerTest { .collectList().block()) .isEqualTo(Collections.singletonList("fallback")); - } } diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/resources/application-test-gateway.yml b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/resources/application-test-gateway.yml index 6094b46e5..06481f254 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/resources/application-test-gateway.yml +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/resources/application-test-gateway.yml @@ -13,7 +13,7 @@ spring: feature-env: enabled: true polaris: - address: grpc://127.0.0.1:8091 + address: grpc://127.0.0.1:10081 namespace: default enabled: true gateway: diff --git a/spring-cloud-tencent-dependencies/pom.xml b/spring-cloud-tencent-dependencies/pom.xml index 63f617789..25bc43416 100644 --- a/spring-cloud-tencent-dependencies/pom.xml +++ b/spring-cloud-tencent-dependencies/pom.xml @@ -70,10 +70,10 @@ - 1.11.7-Hoxton.SR12 + 1.11.8-Hoxton.SR12 - 1.12.9 + 1.12.11 31.0.1-jre 1.2.11 4.5.1 @@ -269,6 +269,7 @@ ${system-stubs-jupiter.version} test + diff --git a/spring-cloud-tencent-examples/polaris-ratelimit-example/ratelimit-callee-service/src/main/resources/polaris.yml b/spring-cloud-tencent-examples/polaris-ratelimit-example/ratelimit-callee-service/src/main/resources/polaris.yml new file mode 100644 index 000000000..489ff609f --- /dev/null +++ b/spring-cloud-tencent-examples/polaris-ratelimit-example/ratelimit-callee-service/src/main/resources/polaris.yml @@ -0,0 +1,3 @@ +provider: + rateLimit: + reportMetrics: true