feat:refactor SDKContext as static.

pull/995/head
Haotian Zhang 2 years ago
parent a3becace77
commit 8931db363f

@ -34,6 +34,7 @@ import com.tencent.polaris.api.config.global.StatReporterConfig;
import com.tencent.polaris.api.core.ProviderAPI; import com.tencent.polaris.api.core.ProviderAPI;
import com.tencent.polaris.api.exception.PolarisException; import com.tencent.polaris.api.exception.PolarisException;
import com.tencent.polaris.api.plugin.common.PluginTypes; 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.plugin.stat.StatReporter;
import com.tencent.polaris.api.pojo.Instance; import com.tencent.polaris.api.pojo.Instance;
import com.tencent.polaris.api.rpc.InstanceDeregisterRequest; import com.tencent.polaris.api.rpc.InstanceDeregisterRequest;
@ -140,7 +141,13 @@ public class PolarisServiceRegistry implements ServiceRegistry<PolarisRegistrati
StatReporter statReporter = (StatReporter) polarisSDKContextManager.getSDKContext().getPlugins() StatReporter statReporter = (StatReporter) polarisSDKContextManager.getSDKContext().getPlugins()
.getPlugin(PluginTypes.STAT_REPORTER.getBaseType(), StatReporterConfig.DEFAULT_REPORTER_PROMETHEUS); .getPlugin(PluginTypes.STAT_REPORTER.getBaseType(), StatReporterConfig.DEFAULT_REPORTER_PROMETHEUS);
if (Objects.nonNull(statReporter)) { if (Objects.nonNull(statReporter)) {
LOGGER.info("Stat server started on port: " + statReporter.metaInfo().getPort() + " (http)"); ReporterMetaInfo reporterMetaInfo = statReporter.metaInfo();
if (reporterMetaInfo.getPort() != null) {
LOGGER.info("Stat server started on port: " + reporterMetaInfo.getPort() + " (http)");
}
else {
LOGGER.info("Stat server is set to type of Push gateway");
}
} }
else { else {
LOGGER.warn("Plugin StatReporter not found"); LOGGER.warn("Plugin StatReporter not found");

@ -0,0 +1,59 @@
/*
* Tencent is pleased to support the open source community by making Spring Cloud Tencent available.
*
* Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved.
*
* Licensed under the BSD 3-Clause License (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://opensource.org/licenses/BSD-3-Clause
*
* Unless required by applicable law or agreed to in writing, software distributed
* under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
*
*/
package com.tencent.cloud.plugin.featureenv;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import static org.assertj.core.api.Assertions.assertThat;
/**
* Test for {@link FeatureEnvAutoConfiguration}.
*
* @author Hoatian Zhang
*/
@ExtendWith(MockitoExtension.class)
public class FeatureEnvAutoConfigurationTest {
private final ApplicationContextRunner enabledApplicationContextRunner = new ApplicationContextRunner();
private final ApplicationContextRunner disabledApplicationContextRunner = new ApplicationContextRunner();
@Test
public void testEnabled() {
this.enabledApplicationContextRunner.withConfiguration(AutoConfigurations.of(FeatureEnvAutoConfiguration.class))
.run(context -> {
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);
});
}
}

@ -127,7 +127,7 @@ public class PolarisSDKContextManager {
// init SDKContext // init SDKContext
sdkContext = SDKContext.initContextByConfig(properties.configuration(modifierList, sdkContext = SDKContext.initContextByConfig(properties.configuration(modifierList,
() -> environment.getProperty("spring.cloud.client.ip-address"), () -> 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(); sdkContext.init();
// init ProviderAPI // init ProviderAPI

@ -83,8 +83,10 @@ public class PolarisContextProperties {
defaultHost = ipAddressSupplier.get(); defaultHost = ipAddressSupplier.get();
this.localIpAddress = defaultHost; this.localIpAddress = defaultHost;
} }
Integer defaultPort = this.localPort;
if (this.localPort == null || this.localPort <= 0) { if (this.localPort == null || this.localPort <= 0) {
this.localPort = portSupplier.get(); defaultPort = portSupplier.get();
this.localPort = defaultPort;
} }
configuration.getGlobal().getAPI().setBindIP(defaultHost); configuration.getGlobal().getAPI().setBindIP(defaultHost);

Loading…
Cancel
Save