diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index b89266620..7d9d0022d 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -13,16 +13,20 @@ Other... Please describe: ## Adding the issue link (#xxx) if possible. + + ## Note ## Checklist -- [ ] Add copyright holder at the beginning of .class file if it is new. -- [ ] Add information of this PR to CHANGELOG.md in root of project. +- [ ] Coverage from `Codecov Report` should not decrease (which means adding junit tests for adding or updating code). - [ ] All junit tests passing. -- [ ] Coverage from `Codecov Report` should not decrease. +- [ ] Add copyright holder at the beginning of .java file if it is new. +- [ ] Add information of this PR to CHANGELOG.md in root of project. ## Checklist (Optional) - [ ] Will Pull Request to branch of 2020.0 and hoxton. -- [ ] Add documentation in javadoc in code or comment below the PR if necessary. +- [ ] Add documentation in javadoc or comment below the PR if necessary. diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml new file mode 100644 index 000000000..721286f3d --- /dev/null +++ b/.github/workflows/codecov.yml @@ -0,0 +1,34 @@ +name: Codecov + +on: + push: + branches: + - hoxton + - 2021.0 + - 2020.0 + - greenwich + pull_request: + branches: + - hoxton + - 2021.0 + - 2020.0 + - greenwich + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout codes + uses: actions/checkout@v3 + - name: Set up JDK 8 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: 8 + - name: Test with Maven + run: mvn -B test --file pom.xml + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + file: ${{ github.workspace }}/target/site/jacoco/jacoco.xml diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c817ac07..80e984266 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,3 +3,5 @@ - [Optimize:optimize SpringValueProcessor.](https://github.com/Tencent/spring-cloud-tencent/pull/655) - [Optimize/optimize annotation.](https://github.com/Tencent/spring-cloud-tencent/pull/672) +- [Optimize: Register the service with the ProviderAPI#registerInstance method.](https://github.com/Tencent/spring-cloud-tencent/pull/686) +- [docs:update PR template.](https://github.com/Tencent/spring-cloud-tencent/pull/690) diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java index 731676858..cf1b9dfff 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/PolarisDiscoveryProperties.java @@ -84,12 +84,6 @@ public class PolarisDiscoveryProperties { @Value("${spring.cloud.polaris.discovery.register:#{true}}") private Boolean registerEnabled; - /** - * If heartbeat enabled. - */ - @Value("${spring.cloud.polaris.discovery.heartbeat.enabled:#{true}}") - private Boolean heartbeatEnabled = true; - /** * Heartbeat interval ( 0 < interval <= 60). * Time unit: second. Default: 5. @@ -108,15 +102,6 @@ public class PolarisDiscoveryProperties { */ private Long serviceListRefreshInterval = 60000L; - - public boolean isHeartbeatEnabled() { - return heartbeatEnabled; - } - - public void setHeartbeatEnabled(Boolean heartbeatEnabled) { - this.heartbeatEnabled = heartbeatEnabled; - } - public String getNamespace() { return namespace; } @@ -206,7 +191,7 @@ public class PolarisDiscoveryProperties { } public Integer getHeartbeatInterval() { - if (this.heartbeatEnabled && (this.heartbeatInterval <= 0 || this.heartbeatInterval > 60)) { + if (this.heartbeatInterval <= 0 || this.heartbeatInterval > 60) { heartbeatInterval = DEFAULT_REGISTRY_HEARTBEAT_TIME_INTERVAL; } return heartbeatInterval; @@ -228,10 +213,6 @@ public class PolarisDiscoveryProperties { this.registerEnabled = registerEnabled; } - public Boolean getHeartbeatEnabled() { - return heartbeatEnabled; - } - @Override public String toString() { return "PolarisDiscoveryProperties{" + @@ -244,7 +225,6 @@ public class PolarisDiscoveryProperties { ", port=" + port + ", enabled=" + enabled + ", registerEnabled=" + registerEnabled + - ", heartbeatEnabled=" + heartbeatEnabled + ", heartbeatInterval=" + heartbeatInterval + ", healthCheckUrl='" + healthCheckUrl + '\'' + ", serviceListRefreshInterval=" + serviceListRefreshInterval + diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java index e27bb27b2..4a2afd880 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/main/java/com/tencent/cloud/polaris/registry/PolarisServiceRegistry.java @@ -68,7 +68,7 @@ public class PolarisServiceRegistry implements ServiceRegistry { try { String healthCheckEndpoint = polarisDiscoveryProperties.getHealthCheckUrl(); - // First determine whether health-check-url is configured. - // If configured, the service instance health check needs to be executed - // first. // If the health check passes, the heartbeat will be reported. // If it does not pass, the heartbeat will not be reported. - if (StringUtils.isNotBlank(healthCheckEndpoint)) { - if (!healthCheckEndpoint.startsWith("/")) { - healthCheckEndpoint = "/" + healthCheckEndpoint; - } - - String healthCheckUrl = String.format("http://%s:%s%s", heartbeatRequest.getHost(), - heartbeatRequest.getPort(), healthCheckEndpoint); - - if (!OkHttpUtil.get(healthCheckUrl, null)) { - LOGGER.error("backend service health check failed. health check endpoint = {}", - healthCheckEndpoint); - return; - } + if (!healthCheckEndpoint.startsWith("/")) { + healthCheckEndpoint = "/" + healthCheckEndpoint; + } + + String healthCheckUrl = String.format("http://%s:%s%s", heartbeatRequest.getHost(), + heartbeatRequest.getPort(), healthCheckEndpoint); + + if (!OkHttpUtil.get(healthCheckUrl, null)) { + LOGGER.error("backend service health check failed. health check endpoint = {}", + healthCheckEndpoint); + return; } polarisDiscoveryHandler.getProviderAPI().heartbeat(heartbeatRequest); diff --git a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/PolarisDiscoveryPropertiesTest.java b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/PolarisDiscoveryPropertiesTest.java index 52a264868..6b7ed6e47 100644 --- a/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/PolarisDiscoveryPropertiesTest.java +++ b/spring-cloud-starter-tencent-polaris-discovery/src/test/java/com/tencent/cloud/polaris/PolarisDiscoveryPropertiesTest.java @@ -37,10 +37,6 @@ public class PolarisDiscoveryPropertiesTest { public void testGetAndSet() { PolarisDiscoveryProperties polarisDiscoveryProperties = new PolarisDiscoveryProperties(); - // HeartbeatEnabled - polarisDiscoveryProperties.setHeartbeatEnabled(true); - assertThat(polarisDiscoveryProperties.isHeartbeatEnabled()).isTrue(); - // HeartbeatEnabled polarisDiscoveryProperties.setHeartbeatInterval(200); assertThat(polarisDiscoveryProperties.getHeartbeatInterval()).isEqualTo(5); @@ -103,7 +99,6 @@ public class PolarisDiscoveryPropertiesTest { + ", port=9091" + ", enabled=true" + ", registerEnabled=true" - + ", heartbeatEnabled=true" + ", heartbeatInterval=20" + ", healthCheckUrl='/health'" + ", serviceListRefreshInterval=1000}"); diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/RateLimitRuleLabelResolverTest.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/RateLimitRuleLabelResolverTest.java index 96b73cea9..c9abe032d 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/RateLimitRuleLabelResolverTest.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/RateLimitRuleLabelResolverTest.java @@ -61,7 +61,7 @@ public class RateLimitRuleLabelResolverTest { } else { ModelProto.MatchString matchString = ModelProto.MatchString.newBuilder() - .setType(ModelProto.MatchString.MatchStringType.EXACT) + .setType(ModelProto.Operation.EXACT) .setValue(StringValue.of("value")) .setValueType(ModelProto.MatchString.ValueType.TEXT).build(); RateLimitProto.Rule rule = RateLimitProto.Rule.newBuilder() diff --git a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/endpoint/PolarisRateLimitRuleEndpointTests.java b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/endpoint/PolarisRateLimitRuleEndpointTests.java index 33edd0b36..d157c1e0a 100644 --- a/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/endpoint/PolarisRateLimitRuleEndpointTests.java +++ b/spring-cloud-starter-tencent-polaris-ratelimit/src/test/java/com/tencent/cloud/polaris/ratelimit/endpoint/PolarisRateLimitRuleEndpointTests.java @@ -83,7 +83,7 @@ public class PolarisRateLimitRuleEndpointTests { } else { ModelProto.MatchString matchString = ModelProto.MatchString.newBuilder() - .setType(ModelProto.MatchString.MatchStringType.EXACT) + .setType(ModelProto.Operation.EXACT) .setValue(StringValue.of("value")) .setValueType(ModelProto.MatchString.ValueType.TEXT).build(); RateLimitProto.Rule rule = RateLimitProto.Rule.newBuilder()