From 8931db363f88face964cf4fd5947daa3bbe85565 Mon Sep 17 00:00:00 2001 From: Haotian Zhang <928016560@qq.com> Date: Thu, 11 May 2023 15:36:42 +0800 Subject: [PATCH] feat:refactor SDKContext as static. --- .../registry/PolarisServiceRegistry.java | 9 ++- .../FeatureEnvAutoConfigurationTest.java | 59 +++++++++++++++++++ .../context/PolarisSDKContextManager.java | 2 +- .../config/PolarisContextProperties.java | 4 +- 4 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 spring-cloud-tencent-plugin-starters/spring-cloud-tencent-featureenv-plugin/src/test/java/com/tencent/cloud/plugin/featureenv/FeatureEnvAutoConfigurationTest.java 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 5b16a5866..557b10735 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 @@ -34,6 +34,7 @@ import com.tencent.polaris.api.config.global.StatReporterConfig; import com.tencent.polaris.api.core.ProviderAPI; import com.tencent.polaris.api.exception.PolarisException; import com.tencent.polaris.api.plugin.common.PluginTypes; +import com.tencent.polaris.api.plugin.stat.ReporterMetaInfo; import com.tencent.polaris.api.plugin.stat.StatReporter; import com.tencent.polaris.api.pojo.Instance; import com.tencent.polaris.api.rpc.InstanceDeregisterRequest; @@ -140,7 +141,13 @@ public class PolarisServiceRegistry implements ServiceRegistry { + assertThat(context).hasSingleBean(FeatureEnvProperties.class); + assertThat(context).hasSingleBean(FeatureEnvRouterRequestInterceptor.class); + }); + } + + @Test + public void testDisabled() { + this.disabledApplicationContextRunner.withConfiguration(AutoConfigurations.of(FeatureEnvAutoConfiguration.class)) + .withPropertyValues("spring.cloud.tencent.plugin.router.feature-env.enabled=false") + .run(context -> { + assertThat(context).doesNotHaveBean(FeatureEnvProperties.class); + assertThat(context).doesNotHaveBean(FeatureEnvRouterRequestInterceptor.class); + }); + } +} diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisSDKContextManager.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisSDKContextManager.java index 2f17db828..7ce3feabf 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisSDKContextManager.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/PolarisSDKContextManager.java @@ -127,7 +127,7 @@ public class PolarisSDKContextManager { // init SDKContext sdkContext = SDKContext.initContextByConfig(properties.configuration(modifierList, () -> environment.getProperty("spring.cloud.client.ip-address"), - () -> environment.getProperty("spring.cloud.polaris.local-port", Integer.class, 0))); + () -> environment.getProperty("server.port", Integer.class, 0))); sdkContext.init(); // init ProviderAPI diff --git a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextProperties.java b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextProperties.java index 948a3800a..57cf2190d 100644 --- a/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextProperties.java +++ b/spring-cloud-tencent-polaris-context/src/main/java/com/tencent/cloud/polaris/context/config/PolarisContextProperties.java @@ -83,8 +83,10 @@ public class PolarisContextProperties { defaultHost = ipAddressSupplier.get(); this.localIpAddress = defaultHost; } + Integer defaultPort = this.localPort; if (this.localPort == null || this.localPort <= 0) { - this.localPort = portSupplier.get(); + defaultPort = portSupplier.get(); + this.localPort = defaultPort; } configuration.getGlobal().getAPI().setBindIP(defaultHost);