From e843ab116c59235809edaad445e2fd1351b94929 Mon Sep 17 00:00:00 2001 From: misselvexu Date: Tue, 19 Jul 2022 15:50:04 +0800 Subject: [PATCH] rebuild optimize feign & rest-template circuit-breaker logic . --- .../pom.xml | 1 + ...olarisCircuitBreakerAutoConfiguration.java | 2 -- .../src/main/resources/bootstrap.yml | 6 ++++ .../AbstractPolarisReporterAdapter.java | 20 +++++------ .../RpcEnhancementAutoConfiguration.java | 9 +++-- .../config/RpcEnhancementProperties.java | 31 ++++++++-------- .../reporter/SuccessPolarisReporter.java | 11 ++++-- .../EnhancedRestTemplateReporter.java | 10 +++--- .../AbstractPolarisReporterAdapterTest.java | 35 +++++++++---------- .../reporter/SuccessPolarisReporterTest.java | 2 +- .../EnhancedRestTemplateReporterTest.java | 4 ++- 11 files changed, 75 insertions(+), 56 deletions(-) rename spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/AbstractPolarisCircuitBreakAdapter.java => spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/AbstractPolarisReporterAdapter.java (76%) rename spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerProperties.java => spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementProperties.java (85%) rename spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/AbstractPolarisCircuitBreakAdapterTest.java => spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/AbstractPolarisReporterAdapterTest.java (68%) diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml index f1c42d41c..20bf4bdf2 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/pom.xml @@ -18,6 +18,7 @@ com.tencent.cloud spring-cloud-tencent-polaris-loadbalancer + com.tencent.cloud spring-cloud-tencent-rpc-enhancement diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerAutoConfiguration.java b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerAutoConfiguration.java index 3d3da4ef3..cd3f5373f 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerAutoConfiguration.java +++ b/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerAutoConfiguration.java @@ -25,7 +25,6 @@ import com.tencent.polaris.factory.config.ConfigurationImpl; import com.tencent.polaris.plugins.router.healthy.RecoverRouterConfig; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -37,7 +36,6 @@ import org.springframework.context.annotation.Configuration; @Configuration(proxyBeanMethods = false) @ConditionalOnPolarisEnabled @ConditionalOnProperty(value = "spring.cloud.polaris.circuitbreaker.enabled", havingValue = "true", matchIfMissing = true) -@EnableConfigurationProperties(PolarisCircuitBreakerProperties.class) public class PolarisCircuitBreakerAutoConfiguration { @Bean diff --git a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-b2/src/main/resources/bootstrap.yml b/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-b2/src/main/resources/bootstrap.yml index 5ef89145c..228de59a9 100644 --- a/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-b2/src/main/resources/bootstrap.yml +++ b/spring-cloud-tencent-examples/polaris-circuitbreaker-example/polaris-circuitbreaker-example-b2/src/main/resources/bootstrap.yml @@ -11,3 +11,9 @@ spring: stat: enabled: true port: 28083 +# tencent: +# rpc-enhancement: +# enabled: true +# ignore-internal-server-error: true +# series: server_error +# statuses: gateway_timeout, bad_gateway, service_unavailable \ No newline at end of file diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/AbstractPolarisCircuitBreakAdapter.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/AbstractPolarisReporterAdapter.java similarity index 76% rename from spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/AbstractPolarisCircuitBreakAdapter.java rename to spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/AbstractPolarisReporterAdapter.java index 42137fe62..d6d7bd282 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/AbstractPolarisCircuitBreakAdapter.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/AbstractPolarisReporterAdapter.java @@ -15,12 +15,12 @@ * specific language governing permissions and limitations under the License. */ -package com.tencent.cloud.polaris.circuitbreaker; +package com.tencent.cloud.rpc.enhancement; import java.util.List; import java.util.Objects; -import com.tencent.cloud.polaris.circuitbreaker.config.PolarisCircuitBreakerProperties; +import com.tencent.cloud.rpc.enhancement.config.RpcEnhancementProperties; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -30,22 +30,22 @@ import org.springframework.lang.Nullable; import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR; /** - * Abstract Polaris Circuit-Break Adapter . + * Abstract Polaris Reporter Adapter . * * @author Elve.Xu 2022-07-11 */ -public abstract class AbstractPolarisCircuitBreakAdapter { +public abstract class AbstractPolarisReporterAdapter { - private static final Logger LOG = LoggerFactory.getLogger(AbstractPolarisCircuitBreakAdapter.class); + private static final Logger LOG = LoggerFactory.getLogger(AbstractPolarisReporterAdapter.class); - protected final PolarisCircuitBreakerProperties properties; + protected final RpcEnhancementProperties properties; /** - * Constructor With {@link PolarisCircuitBreakerProperties} . + * Constructor With {@link RpcEnhancementProperties} . * - * @param properties instance of {@link PolarisCircuitBreakerProperties}. + * @param properties instance of {@link RpcEnhancementProperties}. */ - protected AbstractPolarisCircuitBreakAdapter(PolarisCircuitBreakerProperties properties) { + protected AbstractPolarisReporterAdapter(RpcEnhancementProperties properties) { this.properties = properties; } @@ -66,7 +66,7 @@ public abstract class AbstractPolarisCircuitBreakAdapter { if (status.isEmpty()) { List series = properties.getSeries(); // Check INTERNAL_SERVER_ERROR (500) status. - if (properties.getIgnoreInternalServerError() && Objects.equals(httpStatus, INTERNAL_SERVER_ERROR)) { + if (properties.isIgnoreInternalServerError() && Objects.equals(httpStatus, INTERNAL_SERVER_ERROR)) { return false; } if (series.isEmpty()) { diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfiguration.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfiguration.java index 220d7691d..9f25709c6 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfiguration.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfiguration.java @@ -33,6 +33,7 @@ import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; @@ -48,6 +49,7 @@ import static org.springframework.core.Ordered.HIGHEST_PRECEDENCE; */ @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.cloud.tencent.rpc-enhancement.enabled", havingValue = "true", matchIfMissing = true) +@EnableConfigurationProperties(RpcEnhancementProperties.class) @AutoConfigureAfter(PolarisContextAutoConfiguration.class) public class RpcEnhancementAutoConfiguration { @@ -73,8 +75,8 @@ public class RpcEnhancementAutoConfiguration { static class PolarisReporterConfig { @Bean - public SuccessPolarisReporter successPolarisReporter() { - return new SuccessPolarisReporter(); + public SuccessPolarisReporter successPolarisReporter(RpcEnhancementProperties properties) { + return new SuccessPolarisReporter(properties); } @Bean @@ -96,8 +98,9 @@ public class RpcEnhancementAutoConfiguration { @Bean public EnhancedRestTemplateReporter polarisRestTemplateResponseErrorHandler( + RpcEnhancementProperties properties, ConsumerAPI consumerAPI) { - return new EnhancedRestTemplateReporter(consumerAPI); + return new EnhancedRestTemplateReporter(properties, consumerAPI); } @Bean diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerProperties.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementProperties.java similarity index 85% rename from spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerProperties.java rename to spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementProperties.java index a47ad20a7..4ad107bb7 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/main/java/com/tencent/cloud/polaris/circuitbreaker/config/PolarisCircuitBreakerProperties.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementProperties.java @@ -15,7 +15,7 @@ * specific language governing permissions and limitations under the License. */ -package com.tencent.cloud.polaris.circuitbreaker.config; +package com.tencent.cloud.rpc.enhancement.config; import java.util.ArrayList; import java.util.Arrays; @@ -41,13 +41,13 @@ import static org.springframework.http.HttpStatus.VARIANT_ALSO_NEGOTIATES; * * @author Elve.Xu 2022-07-08 */ -@ConfigurationProperties("spring.cloud.polaris.circuitbreaker") -public class PolarisCircuitBreakerProperties { +@ConfigurationProperties("spring.cloud.tencent.rpc-enhancement") +public class RpcEnhancementProperties { /** * If circuit-breaker enabled. */ - private Boolean enabled = true; + private boolean enabled = true; /** * Specify the Http status code(s) that needs to be fused. @@ -63,9 +63,9 @@ public class PolarisCircuitBreakerProperties { /** * Ignore Internal Server Error Http Status Code, - * Only takes effect if the attribute {@link PolarisCircuitBreakerProperties#series} is not empty. + * Only takes effect if the attribute {@link RpcEnhancementProperties#series} is not empty. */ - private Boolean ignoreInternalServerError = true; + private boolean ignoreInternalServerError = true; /** * Convert items to List. @@ -79,13 +79,6 @@ public class PolarisCircuitBreakerProperties { return new ArrayList<>(Arrays.asList(items)); } - public Boolean getEnabled() { - return enabled; - } - - public void setEnabled(Boolean enabled) { - this.enabled = enabled; - } public List getStatuses() { return statuses; @@ -103,11 +96,19 @@ public class PolarisCircuitBreakerProperties { this.series = series; } - public Boolean getIgnoreInternalServerError() { + public boolean isEnabled() { + return enabled; + } + + public void setEnabled(boolean enabled) { + this.enabled = enabled; + } + + public boolean isIgnoreInternalServerError() { return ignoreInternalServerError; } - public void setIgnoreInternalServerError(Boolean ignoreInternalServerError) { + public void setIgnoreInternalServerError(boolean ignoreInternalServerError) { this.ignoreInternalServerError = ignoreInternalServerError; } } diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/plugin/reporter/SuccessPolarisReporter.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/plugin/reporter/SuccessPolarisReporter.java index 332711eab..e2bb22b32 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/plugin/reporter/SuccessPolarisReporter.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/plugin/reporter/SuccessPolarisReporter.java @@ -17,6 +17,8 @@ package com.tencent.cloud.rpc.enhancement.feign.plugin.reporter; +import com.tencent.cloud.rpc.enhancement.AbstractPolarisReporterAdapter; +import com.tencent.cloud.rpc.enhancement.config.RpcEnhancementProperties; import com.tencent.cloud.rpc.enhancement.feign.plugin.EnhancedFeignContext; import com.tencent.cloud.rpc.enhancement.feign.plugin.EnhancedFeignPlugin; import com.tencent.cloud.rpc.enhancement.feign.plugin.EnhancedFeignPluginType; @@ -30,16 +32,21 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.core.Ordered; +import org.springframework.http.HttpStatus; /** * Polaris reporter when feign call is successful. * * @author Haotian Zhang */ -public class SuccessPolarisReporter implements EnhancedFeignPlugin { +public class SuccessPolarisReporter extends AbstractPolarisReporterAdapter implements EnhancedFeignPlugin { private static final Logger LOG = LoggerFactory.getLogger(SuccessPolarisReporter.class); + public SuccessPolarisReporter(RpcEnhancementProperties properties) { + super(properties); + } + @Autowired(required = false) private ConsumerAPI consumerAPI; @@ -59,7 +66,7 @@ public class SuccessPolarisReporter implements EnhancedFeignPlugin { Request request = context.getRequest(); Response response = context.getResponse(); RetStatus retStatus = RetStatus.RetSuccess; - if (response.status() > 500) { + if (apply(HttpStatus.resolve(response.status()))) { retStatus = RetStatus.RetFail; } LOG.debug("Will report result of {}. Request=[{}]. Response=[{}].", retStatus.name(), request, response); diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporter.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporter.java index 0113ff498..a6d2ea234 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporter.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporter.java @@ -24,6 +24,8 @@ import java.net.URL; import com.tencent.cloud.common.metadata.MetadataContext; import com.tencent.cloud.common.util.ReflectionUtils; +import com.tencent.cloud.rpc.enhancement.AbstractPolarisReporterAdapter; +import com.tencent.cloud.rpc.enhancement.config.RpcEnhancementProperties; import com.tencent.polaris.api.core.ConsumerAPI; import com.tencent.polaris.api.pojo.RetStatus; import com.tencent.polaris.api.pojo.ServiceKey; @@ -42,7 +44,7 @@ import org.springframework.web.client.ResponseErrorHandler; * * @author wh 2022/6/21 */ -public class EnhancedRestTemplateReporter implements ResponseErrorHandler { +public class EnhancedRestTemplateReporter extends AbstractPolarisReporterAdapter implements ResponseErrorHandler { private static final Logger LOG = LoggerFactory.getLogger(EnhancedRestTemplateReporter.class); @@ -50,7 +52,8 @@ public class EnhancedRestTemplateReporter implements ResponseErrorHandler { private final ConsumerAPI consumerAPI; - public EnhancedRestTemplateReporter(ConsumerAPI consumerAPI) { + public EnhancedRestTemplateReporter(RpcEnhancementProperties properties, ConsumerAPI consumerAPI) { + super(properties); this.consumerAPI = consumerAPI; } @@ -61,7 +64,6 @@ public class EnhancedRestTemplateReporter implements ResponseErrorHandler { @Override public void handleError(@NonNull ClientHttpResponse response) { - } @Override @@ -76,7 +78,7 @@ public class EnhancedRestTemplateReporter implements ResponseErrorHandler { resultRequest.setPort(realURL.getPort()); } - if (response.getStatusCode().value() > 500) { + if (apply(response.getStatusCode())) { resultRequest.setRetStatus(RetStatus.RetFail); } } diff --git a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/AbstractPolarisCircuitBreakAdapterTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/AbstractPolarisReporterAdapterTest.java similarity index 68% rename from spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/AbstractPolarisCircuitBreakAdapterTest.java rename to spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/AbstractPolarisReporterAdapterTest.java index 0775c8313..ddcbb73cb 100644 --- a/spring-cloud-starter-tencent-polaris-circuitbreaker/src/test/java/com/tencent/cloud/polaris/circuitbreaker/AbstractPolarisCircuitBreakAdapterTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/AbstractPolarisReporterAdapterTest.java @@ -15,27 +15,26 @@ * specific language governing permissions and limitations under the License. */ -package com.tencent.cloud.polaris.circuitbreaker; +package com.tencent.cloud.rpc.enhancement; -import com.tencent.cloud.polaris.circuitbreaker.config.PolarisCircuitBreakerProperties; +import com.tencent.cloud.rpc.enhancement.config.RpcEnhancementProperties; import org.assertj.core.api.Assertions; import org.junit.Test; import org.springframework.http.HttpStatus; /** - * Test For {@link AbstractPolarisCircuitBreakAdapter}. + * Test For {@link AbstractPolarisReporterAdapter}. * - * @author Elve.Xu - * @version ${project.version} - 2022/7/11 + * @author Elve.Xu 2022/7/11 */ -public class AbstractPolarisCircuitBreakAdapterTest { +public class AbstractPolarisReporterAdapterTest { @Test public void testApplyWithDefaultConfig() { - PolarisCircuitBreakerProperties properties = new PolarisCircuitBreakerProperties(); + RpcEnhancementProperties properties = new RpcEnhancementProperties(); // Mock Condition - SimplePolarisCircuitBreakAdapter adapter = new SimplePolarisCircuitBreakAdapter(properties); + SimplePolarisReporterAdapter adapter = new SimplePolarisReporterAdapter(properties); // Assert Assertions.assertThat(adapter.apply(HttpStatus.OK)).isEqualTo(false); @@ -45,12 +44,12 @@ public class AbstractPolarisCircuitBreakAdapterTest { @Test public void testApplyWithoutIgnoreInternalServerError() { - PolarisCircuitBreakerProperties properties = new PolarisCircuitBreakerProperties(); + RpcEnhancementProperties properties = new RpcEnhancementProperties(); // Mock Condition properties.getStatuses().clear(); properties.setIgnoreInternalServerError(false); - SimplePolarisCircuitBreakAdapter adapter = new SimplePolarisCircuitBreakAdapter(properties); + SimplePolarisReporterAdapter adapter = new SimplePolarisReporterAdapter(properties); // Assert Assertions.assertThat(adapter.apply(HttpStatus.OK)).isEqualTo(false); @@ -60,12 +59,12 @@ public class AbstractPolarisCircuitBreakAdapterTest { @Test public void testApplyWithIgnoreInternalServerError() { - PolarisCircuitBreakerProperties properties = new PolarisCircuitBreakerProperties(); + RpcEnhancementProperties properties = new RpcEnhancementProperties(); // Mock Condition properties.getStatuses().clear(); properties.setIgnoreInternalServerError(true); - SimplePolarisCircuitBreakAdapter adapter = new SimplePolarisCircuitBreakAdapter(properties); + SimplePolarisReporterAdapter adapter = new SimplePolarisReporterAdapter(properties); // Assert Assertions.assertThat(adapter.apply(HttpStatus.OK)).isEqualTo(false); @@ -75,12 +74,12 @@ public class AbstractPolarisCircuitBreakAdapterTest { @Test public void testApplyWithoutSeries() { - PolarisCircuitBreakerProperties properties = new PolarisCircuitBreakerProperties(); + RpcEnhancementProperties properties = new RpcEnhancementProperties(); // Mock Condition properties.getStatuses().clear(); properties.getSeries().clear(); - SimplePolarisCircuitBreakAdapter adapter = new SimplePolarisCircuitBreakAdapter(properties); + SimplePolarisReporterAdapter adapter = new SimplePolarisReporterAdapter(properties); // Assert Assertions.assertThat(adapter.apply(HttpStatus.OK)).isEqualTo(false); @@ -90,13 +89,13 @@ public class AbstractPolarisCircuitBreakAdapterTest { @Test public void testApplyWithSeries() { - PolarisCircuitBreakerProperties properties = new PolarisCircuitBreakerProperties(); + RpcEnhancementProperties properties = new RpcEnhancementProperties(); // Mock Condition properties.getStatuses().clear(); properties.getSeries().clear(); properties.getSeries().add(HttpStatus.Series.CLIENT_ERROR); - SimplePolarisCircuitBreakAdapter adapter = new SimplePolarisCircuitBreakAdapter(properties); + SimplePolarisReporterAdapter adapter = new SimplePolarisReporterAdapter(properties); // Assert Assertions.assertThat(adapter.apply(HttpStatus.OK)).isEqualTo(false); @@ -108,9 +107,9 @@ public class AbstractPolarisCircuitBreakAdapterTest { /** * Simple Polaris CircuitBreak Adapter Implements . */ - public static class SimplePolarisCircuitBreakAdapter extends AbstractPolarisCircuitBreakAdapter { + public static class SimplePolarisReporterAdapter extends AbstractPolarisReporterAdapter { - public SimplePolarisCircuitBreakAdapter(PolarisCircuitBreakerProperties properties) { + public SimplePolarisReporterAdapter(RpcEnhancementProperties properties) { super(properties); } } diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/plugin/reporter/SuccessPolarisReporterTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/plugin/reporter/SuccessPolarisReporterTest.java index cdcc594f2..b3e28a5ca 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/plugin/reporter/SuccessPolarisReporterTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/plugin/reporter/SuccessPolarisReporterTest.java @@ -43,7 +43,7 @@ import static org.mockito.Mockito.mock; * * @author Haotian Zhang */ -@RunWith(MockitoJUnitRunner.class) +@RunWith(MockitoJUnitRunner.Silent.class) public class SuccessPolarisReporterTest { private static MockedStatic mockedReporterUtils; diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporterTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporterTest.java index dc8a96c8f..20d7eebc2 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporterTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/resttemplate/EnhancedRestTemplateReporterTest.java @@ -22,6 +22,7 @@ import java.net.HttpURLConnection; import java.net.URI; import java.net.URL; +import com.tencent.cloud.rpc.enhancement.config.RpcEnhancementProperties; import com.tencent.polaris.api.core.ConsumerAPI; import org.junit.Test; import org.junit.runner.RunWith; @@ -47,7 +48,8 @@ public class EnhancedRestTemplateReporterTest { @Test public void handleError() throws Exception { ConsumerAPI consumerAPI = mock(ConsumerAPI.class); - EnhancedRestTemplateReporter enhancedRestTemplateReporter = new EnhancedRestTemplateReporter(consumerAPI); + EnhancedRestTemplateReporter enhancedRestTemplateReporter = + new EnhancedRestTemplateReporter(mock(RpcEnhancementProperties.class), consumerAPI); URI uri = mock(URI.class); when(uri.getPath()).thenReturn("/test"); when(uri.getHost()).thenReturn("host");