This is an automated email from the ASF dual-hosted git repository. albumenj pushed a commit to branch 3.0-multi-instances in repository https://gitbox.apache.org/repos/asf/dubbo.git
commit 99e238ad0cd58cb0acaa94aa532d6bc83b1dd1fb Author: Albumen Kevin <[email protected]> AuthorDate: Wed Sep 1 01:00:35 2021 +0800 Fix ut --- .../dubbo/config/AbstractInterfaceConfig.java | 29 +++ .../org/apache/dubbo/config/ApplicationConfig.java | 10 +- .../apache/dubbo/config/ReferenceConfigBase.java | 9 + .../org/apache/dubbo/config/ServiceConfigBase.java | 9 + .../apache/dubbo/rpc/model/ApplicationModel.java | 4 + dubbo-config/dubbo-config-api/pom.xml | 5 + .../org/apache/dubbo/config/ReferenceConfig.java | 1 - .../dubbo/config/bootstrap/DubboBootstrap.java | 2 +- .../apache/dubbo/config/ReferenceConfigTest.java | 206 +++++++-------------- .../bootstrap/DubboBootstrapMultiInstanceTest.java | 20 +- .../dubbo/config/bootstrap/DubboBootstrapTest.java | 3 +- ...egistryCenterExportProviderIntegrationTest.java | 10 +- ...egistryCenterExportProviderIntegrationTest.java | 10 +- .../spring/issues/issue7003/Issue7003Test.java | 2 +- .../consumer/PropertyConfigurerTest.java | 2 +- .../consumer2/PropertySourcesConfigurerTest.java | 2 +- .../consumer3/PropertySourcesInJavaConfigTest.java | 7 +- .../javaconfig/JavaConfigReferenceBeanTest.java | 3 - .../apache/dubbo/metadata/ServiceNameMapping.java | 5 + .../registry/client/DefaultServiceInstance.java | 1 - .../registry/client/ServiceDiscoveryRegistry.java | 2 +- .../ServiceInstanceMetadataCustomizer.java | 2 - .../registry/integration/RegistryProtocol.java | 10 +- .../registry/support/AbstractRegistryFactory.java | 2 +- .../support/CacheableFailbackRegistry.java | 3 + .../client/DefaultServiceInstanceTest.java | 2 +- .../registry/client/InstanceAddressURLTest.java | 3 +- .../client/ServiceDiscoveryRegistryTest.java | 3 +- .../metadata/MetadataServiceNameMappingTest.java | 4 +- .../ProtocolPortsMetadataCustomizerTest.java | 4 +- .../ServiceInstanceMetadataCustomizerTest.java | 4 +- .../client/migration/model/MigrationRuleTest.java | 42 +++-- .../zookeeper/util/CuratorFrameworkUtils.java | 2 +- 33 files changed, 213 insertions(+), 210 deletions(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java index 3607df4..6acdfa7 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractInterfaceConfig.java @@ -28,6 +28,7 @@ import org.apache.dubbo.common.utils.ConfigUtils; import org.apache.dubbo.common.utils.ReflectUtils; import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.config.support.Parameter; +import org.apache.dubbo.rpc.model.ScopeModel; import org.apache.dubbo.rpc.model.ServiceMetadata; import java.lang.reflect.Method; @@ -196,6 +197,34 @@ public abstract class AbstractInterfaceConfig extends AbstractMethodConfig { return urls; } + @Override + public void setScopeModel(ScopeModel scopeModel) { + super.setScopeModel(scopeModel); +// ApplicationModel applicationModel = ScopeModelUtil.getApplicationModel(scopeModel); +// if (this.configCenter != null && this.configCenter.getScopeModel() != applicationModel) { +// this.configCenter.setScopeModel(applicationModel); +// } +// if (this.metadataReportConfig != null && this.metadataReportConfig.getScopeModel() != applicationModel) { +// this.metadataReportConfig.setScopeModel(applicationModel); +// } +// if (this.metrics != null && this.metrics.getScopeModel() != applicationModel) { +// this.metrics.setScopeModel(applicationModel); +// } +// if (this.monitor != null && this.monitor.getScopeModel() != applicationModel) { +// this.monitor.setScopeModel(applicationModel); +// } +// if (this.metadataReportConfig != null && this.metadataReportConfig.getScopeModel() != applicationModel) { +// this.metadataReportConfig.setScopeModel(applicationModel); +// } +// if (CollectionUtils.isNotEmpty(this.registries)) { +// this.registries.forEach(registryConfig -> { +// if (registryConfig.getScopeModel() != applicationModel) { +// registryConfig.setScopeModel(applicationModel); +// } +// }); +// } + } + /** * Check whether the registry config is exists, and then conversion it to {@link RegistryConfig} */ diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/ApplicationConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/ApplicationConfig.java index c5aebc6..d990ddb 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/config/ApplicationConfig.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ApplicationConfig.java @@ -33,17 +33,17 @@ import java.util.Map; import java.util.Set; import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_PROTOCOL_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_VERSION_KEY; import static org.apache.dubbo.common.constants.CommonConstants.DUBBO; import static org.apache.dubbo.common.constants.CommonConstants.DUMP_DIRECTORY; import static org.apache.dubbo.common.constants.CommonConstants.HOST_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.LIVENESS_PROBE_KEY; import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_LOCAL_FILE_CACHE_ENABLED; -import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_VERSION_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_PROTOCOL_KEY; import static org.apache.dubbo.common.constants.CommonConstants.METADATA_SERVICE_PORT_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.LIVENESS_PROBE_KEY; import static org.apache.dubbo.common.constants.CommonConstants.READINESS_PROBE_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_LOCAL_FILE_CACHE_ENABLED; +import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY; import static org.apache.dubbo.common.constants.CommonConstants.STARTUP_PROBE; import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP; import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE; diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/ReferenceConfigBase.java b/dubbo-common/src/main/java/org/apache/dubbo/config/ReferenceConfigBase.java index 09abf83..525ccbc 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/config/ReferenceConfigBase.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ReferenceConfigBase.java @@ -22,6 +22,7 @@ import org.apache.dubbo.common.utils.RegexProperties; import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.config.annotation.Reference; import org.apache.dubbo.config.support.Parameter; +import org.apache.dubbo.rpc.model.ScopeModel; import org.apache.dubbo.rpc.model.ServiceMetadata; import org.apache.dubbo.rpc.service.GenericService; import org.apache.dubbo.rpc.support.ProtocolUtils; @@ -200,6 +201,14 @@ public abstract class ReferenceConfigBase<T> extends AbstractReferenceConfig { } @Override + public void setScopeModel(ScopeModel scopeModel) { + super.setScopeModel(scopeModel); + if (this.consumer != null && this.consumer.getScopeModel() != scopeModel) { + this.consumer.setScopeModel(scopeModel); + } + } + + @Override public String getInterface() { return interfaceName; } diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/ServiceConfigBase.java b/dubbo-common/src/main/java/org/apache/dubbo/config/ServiceConfigBase.java index 8e99615..6d61914 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/config/ServiceConfigBase.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/config/ServiceConfigBase.java @@ -21,6 +21,7 @@ import org.apache.dubbo.common.utils.CollectionUtils; import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.config.annotation.Service; import org.apache.dubbo.config.support.Parameter; +import org.apache.dubbo.rpc.model.ScopeModel; import org.apache.dubbo.rpc.model.ServiceMetadata; import org.apache.dubbo.rpc.service.GenericService; import org.apache.dubbo.rpc.support.ProtocolUtils; @@ -104,6 +105,14 @@ public abstract class ServiceConfigBase<T> extends AbstractServiceConfig { return protocols; } + @Override + public void setScopeModel(ScopeModel scopeModel) { + super.setScopeModel(scopeModel); + if (this.provider != null && this.provider.getScopeModel() != scopeModel) { + this.provider.setScopeModel(scopeModel); + } + } + @Deprecated private static List<ProviderConfig> convertProtocolToProvider(List<ProtocolConfig> protocols) { if (CollectionUtils.isEmpty(protocols)) { diff --git a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java index da9591e..cd814ea 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java @@ -101,6 +101,10 @@ public class ApplicationModel extends ScopeModel { // TODO destroy application resources } + public boolean isInit() { + return initFlag.get(); + } + public FrameworkModel getFrameworkModel() { return frameworkModel; } diff --git a/dubbo-config/dubbo-config-api/pom.xml b/dubbo-config/dubbo-config-api/pom.xml index ad4220b..b8ea09d 100644 --- a/dubbo-config/dubbo-config-api/pom.xml +++ b/dubbo-config/dubbo-config-api/pom.xml @@ -52,6 +52,11 @@ </dependency> <dependency> <groupId>org.apache.dubbo</groupId> + <artifactId>dubbo-rpc-api</artifactId> + <version>${project.parent.version}</version> + </dependency> + <dependency> + <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-rpc-injvm</artifactId> <version>${project.parent.version}</version> </dependency> diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java index 2f2e4cc..fa022a0 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java @@ -44,7 +44,6 @@ import org.apache.dubbo.rpc.model.AsyncMethodInfo; import org.apache.dubbo.rpc.model.ConsumerModel; import org.apache.dubbo.rpc.model.ServiceDescriptor; import org.apache.dubbo.rpc.model.ServiceRepository; -import org.apache.dubbo.rpc.model.ApplicationModel; import org.apache.dubbo.rpc.protocol.injvm.InjvmProtocol; import org.apache.dubbo.rpc.service.GenericService; import org.apache.dubbo.rpc.support.ProtocolUtils; diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java index ec51a07..47b8029 100644 --- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java +++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java @@ -72,6 +72,7 @@ import org.apache.dubbo.registry.client.DefaultServiceInstance; import org.apache.dubbo.registry.client.ServiceInstance; import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils; import org.apache.dubbo.registry.client.metadata.store.InMemoryWritableMetadataService; +import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl; import org.apache.dubbo.registry.support.AbstractRegistryFactory; import org.apache.dubbo.rpc.Protocol; import org.apache.dubbo.rpc.model.ApplicationModel; @@ -114,7 +115,6 @@ import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty; import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_METADATA_PUBLISH_DELAY; import static org.apache.dubbo.metadata.MetadataConstants.METADATA_PUBLISH_DELAY_KEY; import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.calInstanceRevision; -import static org.apache.dubbo.metadata.WritableMetadataService.getDefaultExtension; import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.setMetadataStorageType; import static org.apache.dubbo.registry.support.AbstractRegistryFactory.getServiceDiscoveries; import static org.apache.dubbo.remoting.Constants.CLIENT_KEY; diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java index 84a9807..f8214ef 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java @@ -18,9 +18,6 @@ package org.apache.dubbo.config; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.Version; -import org.apache.dubbo.common.config.CompositeConfiguration; -import org.apache.dubbo.common.config.Configuration; -import org.apache.dubbo.common.config.Environment; import org.apache.dubbo.common.extension.ExtensionLoader; import org.apache.dubbo.common.utils.ConfigUtils; import org.apache.dubbo.common.utils.NetUtils; @@ -30,87 +27,76 @@ import org.apache.dubbo.config.annotation.Method; import org.apache.dubbo.config.annotation.Reference; import org.apache.dubbo.config.api.DemoService; import org.apache.dubbo.config.bootstrap.DubboBootstrap; -import org.apache.dubbo.config.context.ConfigManager; import org.apache.dubbo.config.provider.impl.DemoServiceImpl; - -import org.apache.dubbo.metadata.report.MetadataReport; -import org.apache.dubbo.metadata.report.MetadataReportInstance; import org.apache.dubbo.rpc.Exporter; import org.apache.dubbo.rpc.ProxyFactory; import org.apache.dubbo.rpc.listener.ListenerInvokerWrapper; import org.apache.dubbo.rpc.model.ApplicationModel; - -import org.apache.curator.test.TestingServer; -import org.apache.dubbo.rpc.model.ConsumerModel; +import org.apache.dubbo.rpc.model.FrameworkModel; import org.apache.dubbo.rpc.model.ServiceMetadata; -import org.apache.dubbo.rpc.model.ServiceRepository; import org.apache.dubbo.rpc.protocol.injvm.InjvmInvoker; import org.apache.dubbo.rpc.protocol.injvm.InjvmProtocol; + +import org.apache.curator.test.TestingServer; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; -import org.mockito.MockedStatic; import org.mockito.Mockito; import java.io.IOException; import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.HashMap; -import java.util.Collections; -import java.util.Optional; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; - -import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_VERSION_KEY; import static org.apache.dubbo.common.constants.CommonConstants.BROADCAST_CLUSTER; import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY; import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE; -import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY; import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE; -import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY; import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.RELEASE_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PROTOCOL; -import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PORT; -import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_VERSION_KEY; import static org.apache.dubbo.common.constants.CommonConstants.DUMP_DIRECTORY; -import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_LOCAL_FILE_CACHE_ENABLED; -import static org.apache.dubbo.common.constants.CommonConstants.METADATA_SERVICE_PORT_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY; import static org.apache.dubbo.common.constants.CommonConstants.LIVENESS_PROBE_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.METADATA_SERVICE_PORT_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PORT; +import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PROTOCOL; +import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY; import static org.apache.dubbo.common.constants.CommonConstants.READINESS_PROBE_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.STARTUP_PROBE; -import static org.apache.dubbo.common.constants.CommonConstants.URL_MERGE_PROCESSOR_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.REFER_THREAD_NUM_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.REFER_BACKGROUND_KEY; import static org.apache.dubbo.common.constants.CommonConstants.REFER_ASYNC_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.REFER_BACKGROUND_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.REFER_THREAD_NUM_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_LOCAL_FILE_CACHE_ENABLED; +import static org.apache.dubbo.common.constants.CommonConstants.RELEASE_KEY; import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.STARTUP_PROBE; +import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY; +import static org.apache.dubbo.common.constants.CommonConstants.URL_MERGE_PROCESSOR_KEY; +import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP; import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE; import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST; import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT; -import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP; import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PUBLISH_INSTANCE_KEY; import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PUBLISH_INTERFACE_KEY; -import static org.apache.dubbo.registry.Constants.ENABLE_CONFIGURATION_LISTEN; import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY; -import static org.apache.dubbo.rpc.Constants.SCOPE_REMOTE; -import static org.apache.dubbo.rpc.Constants.LOCAL_PROTOCOL; import static org.apache.dubbo.rpc.Constants.DEFAULT_STUB_EVENT; import static org.apache.dubbo.rpc.Constants.LOCAL_KEY; +import static org.apache.dubbo.rpc.Constants.LOCAL_PROTOCOL; import static org.apache.dubbo.rpc.Constants.SCOPE_KEY; import static org.apache.dubbo.rpc.Constants.SCOPE_LOCAL; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import static org.apache.dubbo.rpc.Constants.SCOPE_REMOTE; public class ReferenceConfigTest { private TestingServer zkServer; @@ -144,24 +130,6 @@ public class ReferenceConfigTest { @Test public void testAppendConfig() { - ReferenceConfig<DemoService> referenceConfig = new ReferenceConfig<>(); - referenceConfig.setClient("netty"); - referenceConfig.setGeneric(Boolean.FALSE.toString()); - referenceConfig.setProtocol("dubbo"); - referenceConfig.setInit(true); - referenceConfig.setLazy(false); - referenceConfig.setInjvm(false); - referenceConfig.setReconnect("reconnect"); - referenceConfig.setSticky(false); - referenceConfig.setStub(DEFAULT_STUB_EVENT); - referenceConfig.setRouter("default"); - referenceConfig.setReferAsync(true); - - DubboBootstrap.getInstance() - .application("application1") - .initialize(); - referenceConfig.setBootstrap(DubboBootstrap.getInstance()); - ApplicationConfig applicationConfig = new ApplicationConfig(); applicationConfig.setName("application1"); applicationConfig.setVersion("v1"); @@ -193,6 +161,19 @@ public class ReferenceConfigTest { applicationConfig.setReadinessProbe("readinessProb"); applicationConfig.setStartupProbe("startupProbe"); + ReferenceConfig<DemoService> referenceConfig = new ReferenceConfig<>(); + referenceConfig.setClient("netty"); + referenceConfig.setGeneric(Boolean.FALSE.toString()); + referenceConfig.setProtocol("dubbo"); + referenceConfig.setInit(true); + referenceConfig.setLazy(false); + referenceConfig.setInjvm(false); + referenceConfig.setReconnect("reconnect"); + referenceConfig.setSticky(false); + referenceConfig.setStub(DEFAULT_STUB_EVENT); + referenceConfig.setRouter("default"); + referenceConfig.setReferAsync(true); + MonitorConfig monitorConfig = new MonitorConfig(); applicationConfig.setMonitor(monitorConfig); @@ -220,7 +201,7 @@ public class ReferenceConfigTest { referenceConfig.setConsumer(consumerConfig); MethodConfig methodConfig = new MethodConfig(); - methodConfig.setName("method1"); + methodConfig.setName("sayName"); methodConfig.setStat(1); methodConfig.setRetries(0); methodConfig.setExecutes(10); @@ -231,41 +212,8 @@ public class ReferenceConfigTest { methodConfig.setServiceId(DemoService.class.getName()); methodConfig.setParentPrefix("demo"); - referenceConfig.setMethods(Collections.singletonList(methodConfig)); - ConfigManager configManager = mock(ConfigManager.class); - Environment environment = mock(Environment.class); - CompositeConfiguration compositeConfiguration = mock(CompositeConfiguration.class); - Configuration dynamicGlobalConfiguration = mock(Configuration.class); - ServiceRepository serviceRepository = mock(ServiceRepository.class); - ConsumerModel consumerModel = mock(ConsumerModel.class); - - when(configManager.getApplicationOrElseThrow()).thenReturn(applicationConfig); - when(configManager.getMetrics()).thenReturn(Optional.of(metricsConfig)); - when(configManager.getModule()).thenReturn(Optional.of(moduleConfig)); - - MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class); - applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager); - applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment); - applicationModelMockedStatic.when(ApplicationModel::getServiceRepository).thenReturn(serviceRepository); - when(environment.getConfiguration()).thenReturn(compositeConfiguration); - when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration); - when(compositeConfiguration.convert(Boolean.class, ENABLE_CONFIGURATION_LISTEN, true)) - .thenReturn(true); - - MockedStatic<MetadataReportInstance> metadataReportInstanceMockedStatic = - Mockito.mockStatic(MetadataReportInstance.class); - - MetadataReport metadataReport = mock(MetadataReport.class); - metadataReportInstanceMockedStatic.when(() -> MetadataReportInstance.getMetadataReport("default")) - .thenReturn(metadataReport); - - - when(serviceRepository.lookupReferredService("org.apache.dubbo.config.api.DemoService")) - .thenReturn(consumerModel); - - referenceConfig.refreshed.set(true); referenceConfig.setInterface(DemoService.class); referenceConfig.getInterfaceClass(); referenceConfig.setCheck(false); @@ -277,6 +225,14 @@ public class ReferenceConfigTest { referenceConfig.setRegistry(registry); + DubboBootstrap dubboBootstrap = DubboBootstrap.newInstance(FrameworkModel.defaultModel()); + dubboBootstrap.application(applicationConfig) + .reference(referenceConfig) + .registry(registry) + .metrics(metricsConfig) + .module(moduleConfig) + .initialize(); + referenceConfig.init(); ServiceMetadata serviceMetadata = referenceConfig.getServiceMetadata(); @@ -400,20 +356,20 @@ public class ReferenceConfigTest { // verify additional method config Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("name")); Assertions.assertEquals(methodConfig.getStat().toString(), - serviceMetadata.getAttachments().get("method1.stat")); + serviceMetadata.getAttachments().get("sayName.stat")); Assertions.assertEquals(methodConfig.getRetries().toString(), - serviceMetadata.getAttachments().get("method1.retries")); - Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("method1.reliable")); + serviceMetadata.getAttachments().get("sayName.retries")); + Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("sayName.reliable")); Assertions.assertEquals(methodConfig.getExecutes().toString(), - serviceMetadata.getAttachments().get("method1.executes")); + serviceMetadata.getAttachments().get("sayName.executes")); Assertions.assertEquals(methodConfig.getDeprecated().toString(), - serviceMetadata.getAttachments().get("method1.deprecated")); - Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("method1.stick")); + serviceMetadata.getAttachments().get("sayName.deprecated")); + Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("sayName.stick")); Assertions.assertEquals(methodConfig.isReturn().toString(), - serviceMetadata.getAttachments().get("method1.return")); - Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("method1.service")); - Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("method1.service.id")); - Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("method1.parent.prefix")); + serviceMetadata.getAttachments().get("sayName.return")); + Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("sayName.service")); + Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("sayName.service.id")); + Assertions.assertFalse(serviceMetadata.getAttachments().containsKey("sayName.parent.prefix")); // verify additional revision and methods parameter Assertions.assertEquals(Version.getVersion(referenceConfig.getInterfaceClass(), referenceConfig.getVersion()), @@ -422,8 +378,7 @@ public class ReferenceConfigTest { Assertions.assertEquals(DemoService.class.getMethods().length, StringUtils.split((String) serviceMetadata.getAttachments().get(METHODS_KEY), ',').length); - applicationModelMockedStatic.closeOnDemand(); - metadataReportInstanceMockedStatic.closeOnDemand(); + dubboBootstrap.stop(); } @Test @@ -494,11 +449,6 @@ public class ReferenceConfigTest { ReferenceConfig<DemoService> referenceConfig = new ReferenceConfig<>(); referenceConfig.setScope(LOCAL_KEY); - DubboBootstrap.getInstance() - .application("application1") - .initialize(); - referenceConfig.setBootstrap(DubboBootstrap.getInstance()); - ApplicationConfig applicationConfig = new ApplicationConfig(); applicationConfig.setName("application1"); Map<String, String> parameters = new HashMap<>(); @@ -506,40 +456,15 @@ public class ReferenceConfigTest { parameters.put("key2", "value2"); applicationConfig.setParameters(parameters); - ConfigManager configManager = mock(ConfigManager.class); - Environment environment = mock(Environment.class); - CompositeConfiguration compositeConfiguration = mock(CompositeConfiguration.class); - Configuration dynamicGlobalConfiguration = mock(Configuration.class); - ServiceRepository serviceRepository = mock(ServiceRepository.class); - ConsumerModel consumerModel = mock(ConsumerModel.class); - - when(configManager.getApplicationOrElseThrow()).thenReturn(applicationConfig); - - MockedStatic<ApplicationModel> applicationModelMockedStatic = Mockito.mockStatic(ApplicationModel.class); - applicationModelMockedStatic.when(ApplicationModel::getConfigManager).thenReturn(configManager); - applicationModelMockedStatic.when(ApplicationModel::getEnvironment).thenReturn(environment); - applicationModelMockedStatic.when(ApplicationModel::getServiceRepository).thenReturn(serviceRepository); - when(environment.getConfiguration()).thenReturn(compositeConfiguration); - when(environment.getDynamicGlobalConfiguration()).thenReturn(dynamicGlobalConfiguration); - when(compositeConfiguration.convert(Boolean.class, ENABLE_CONFIGURATION_LISTEN, true)) - .thenReturn(true); - - MockedStatic<MetadataReportInstance> metadataReportInstanceMockedStatic = - Mockito.mockStatic(MetadataReportInstance.class); - - MetadataReport metadataReport = mock(MetadataReport.class); - metadataReportInstanceMockedStatic.when(() -> MetadataReportInstance.getMetadataReport("default")) - .thenReturn(metadataReport); - - - when(serviceRepository.lookupReferredService("org.apache.dubbo.config.api.DemoService")) - .thenReturn(consumerModel); - - referenceConfig.refreshed.set(true); referenceConfig.setInterface(DemoService.class); referenceConfig.getInterfaceClass(); referenceConfig.setCheck(false); + DubboBootstrap dubboBootstrap = DubboBootstrap.newInstance(FrameworkModel.defaultModel()); + dubboBootstrap.application(applicationConfig) + .reference(referenceConfig) + .initialize(); + referenceConfig.init(); Assertions.assertTrue(referenceConfig.getInvoker() instanceof ListenerInvokerWrapper); Assertions.assertTrue(((ListenerInvokerWrapper<?>) referenceConfig.getInvoker()).getInvoker() instanceof InjvmInvoker); @@ -548,8 +473,7 @@ public class ReferenceConfigTest { Assertions.assertEquals("value1", url.getParameter("key1")); Assertions.assertEquals("value2", url.getParameter("key2")); - applicationModelMockedStatic.closeOnDemand(); - metadataReportInstanceMockedStatic.closeOnDemand(); + dubboBootstrap.stop(); } @Test diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapMultiInstanceTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapMultiInstanceTest.java index e7fb4fe..19fe85f 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapMultiInstanceTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapMultiInstanceTest.java @@ -20,11 +20,13 @@ import org.apache.dubbo.common.utils.NetUtils; import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.config.ProtocolConfig; import org.apache.dubbo.config.ReferenceConfig; +import org.apache.dubbo.config.RegistryConfig; import org.apache.dubbo.config.ServiceConfig; import org.apache.dubbo.config.SysProps; import org.apache.dubbo.config.api.DemoService; import org.apache.dubbo.config.provider.impl.DemoServiceImpl; -import org.apache.dubbo.registrycenter.DefaultSingleRegistryCenter; +import org.apache.dubbo.registrycenter.RegistryCenter; +import org.apache.dubbo.registrycenter.ZookeeperSingleRegistryCenter; import org.apache.dubbo.rpc.model.ApplicationModel; import org.apache.dubbo.rpc.model.FrameworkModel; @@ -36,12 +38,20 @@ import org.junit.jupiter.api.Test; public class DubboBootstrapMultiInstanceTest { - private static DefaultSingleRegistryCenter registryCenter; + private static ZookeeperSingleRegistryCenter registryCenter; + + private static RegistryConfig registryConfig; @BeforeAll public static void setup() { - registryCenter = new DefaultSingleRegistryCenter(NetUtils.getAvailablePort()); + registryCenter = new ZookeeperSingleRegistryCenter(NetUtils.getAvailablePort()); registryCenter.startup(); + RegistryCenter.Instance instance = registryCenter.getRegistryCenterInstance().get(0); + registryConfig = new RegistryConfig(String.format("%s://%s:%s", + instance.getType(), + instance.getHostname(), + instance.getPort())); + } @AfterAll @@ -126,7 +136,7 @@ public class DubboBootstrapMultiInstanceTest { if (!dubboBootstrap.getConfigManager().getApplication().isPresent()) { dubboBootstrap.application("consumer-app"); } - dubboBootstrap.registry(registryCenter.getRegistryConfig()) + dubboBootstrap.registry(registryConfig) .reference(referenceConfig); return dubboBootstrap; } @@ -150,7 +160,7 @@ public class DubboBootstrapMultiInstanceTest { if (!dubboBootstrap.getConfigManager().getApplication().isPresent()) { dubboBootstrap.application("provider-app"); } - dubboBootstrap.registry(registryCenter.getRegistryConfig()) + dubboBootstrap.registry(registryConfig) .protocol(protocol1) .service(serviceConfig); return dubboBootstrap; diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java index f873f41..68c92f3 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java @@ -37,7 +37,6 @@ import org.apache.dubbo.metadata.MetadataService; import org.apache.dubbo.metadata.WritableMetadataService; import org.apache.dubbo.monitor.MonitorService; import org.apache.dubbo.registry.RegistryService; -import org.apache.dubbo.registry.client.metadata.MetadataUtils; import org.apache.dubbo.rpc.Exporter; import org.apache.dubbo.rpc.model.ApplicationModel; import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol; @@ -343,7 +342,7 @@ public class DubboBootstrapTest { serviceConfig.setVersion(MetadataService.VERSION); assertThat(exporters, hasEntry(is(serviceConfig.getUniqueServiceName() + ":" + availablePort), anything())); - WritableMetadataService metadataService = MetadataUtils.getLocalMetadataService(); + WritableMetadataService metadataService = WritableMetadataService.getDefaultExtension(ApplicationModel.defaultModel()); MetadataInfo metadataInfo = metadataService.getDefaultMetadataInfo(); Assertions.assertNotNull(metadataInfo); if (shouldReport) { diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java index 9eb749c..322d6da 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java @@ -19,11 +19,11 @@ package org.apache.dubbo.integration.multiple.exportprovider; import org.apache.dubbo.common.config.configcenter.ConfigItem; import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.extension.ExtensionLoader; -import org.apache.dubbo.config.RegistryConfig; -import org.apache.dubbo.config.ServiceConfig; -import org.apache.dubbo.config.ReferenceConfig; import org.apache.dubbo.config.ApplicationConfig; import org.apache.dubbo.config.ProtocolConfig; +import org.apache.dubbo.config.ReferenceConfig; +import org.apache.dubbo.config.RegistryConfig; +import org.apache.dubbo.config.ServiceConfig; import org.apache.dubbo.config.ServiceListener; import org.apache.dubbo.config.bootstrap.DubboBootstrap; import org.apache.dubbo.integration.IntegrationTest; @@ -34,6 +34,8 @@ import org.apache.dubbo.registrycenter.RegistryCenter; import org.apache.dubbo.registrycenter.ZookeeperMultipleRegistryCenter; import org.apache.dubbo.rpc.ExporterListener; import org.apache.dubbo.rpc.Filter; +import org.apache.dubbo.rpc.model.ApplicationModel; + import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; @@ -218,7 +220,7 @@ public class MultipleRegistryCenterExportProviderIntegrationTest implements Inte // registryKey: the registryKey is the default cluster, CommonConstants.DEFAULT_KEY // key: The exported interface's name // group: the group is "mapping", ServiceNameMapping.DEFAULT_MAPPING_GROUP - ConfigItem configItem = MetadataReportInstance.getMetadataReport(CommonConstants.DEFAULT_KEY) + ConfigItem configItem = ApplicationModel.defaultModel().getBeanFactory().getBean(MetadataReportInstance.class).getMetadataReport(CommonConstants.DEFAULT_KEY) .getConfigItem(serviceConfig.getInterface() , ServiceNameMapping.DEFAULT_MAPPING_GROUP); // Check if the exported service (provider) is registered diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java index 05378e7..ec806b9 100644 --- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java +++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java @@ -19,11 +19,11 @@ package org.apache.dubbo.integration.single.exportprovider; import org.apache.dubbo.common.config.configcenter.ConfigItem; import org.apache.dubbo.common.constants.CommonConstants; import org.apache.dubbo.common.extension.ExtensionLoader; -import org.apache.dubbo.config.RegistryConfig; -import org.apache.dubbo.config.ServiceConfig; -import org.apache.dubbo.config.ReferenceConfig; import org.apache.dubbo.config.ApplicationConfig; import org.apache.dubbo.config.ProtocolConfig; +import org.apache.dubbo.config.ReferenceConfig; +import org.apache.dubbo.config.RegistryConfig; +import org.apache.dubbo.config.ServiceConfig; import org.apache.dubbo.config.ServiceListener; import org.apache.dubbo.config.bootstrap.DubboBootstrap; import org.apache.dubbo.integration.IntegrationTest; @@ -34,6 +34,8 @@ import org.apache.dubbo.registrycenter.RegistryCenter; import org.apache.dubbo.registrycenter.ZookeeperMultipleRegistryCenter; import org.apache.dubbo.rpc.ExporterListener; import org.apache.dubbo.rpc.Filter; +import org.apache.dubbo.rpc.model.ApplicationModel; + import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; @@ -216,7 +218,7 @@ public class SingleRegistryCenterExportProviderIntegrationTest implements Integr // registryKey: the registryKey is the default cluster, CommonConstants.DEFAULT_KEY // key: The exported interface's name // group: the group is "mapping", ServiceNameMapping.DEFAULT_MAPPING_GROUP - ConfigItem configItem = MetadataReportInstance.getMetadataReport(CommonConstants.DEFAULT_KEY) + ConfigItem configItem = ApplicationModel.defaultModel().getBeanFactory().getBean(MetadataReportInstance.class).getMetadataReport(CommonConstants.DEFAULT_KEY) .getConfigItem(serviceConfig.getInterface() , ServiceNameMapping.DEFAULT_MAPPING_GROUP); // Check if the exported service (provider) is registered diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/issues/issue7003/Issue7003Test.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/issues/issue7003/Issue7003Test.java index e5714d4..75d6b7a 100644 --- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/issues/issue7003/Issue7003Test.java +++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/issues/issue7003/Issue7003Test.java @@ -22,8 +22,8 @@ import org.apache.dubbo.config.bootstrap.DubboBootstrap; import org.apache.dubbo.config.spring.ReferenceBean; import org.apache.dubbo.config.spring.api.HelloService; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; -import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter; import org.apache.dubbo.config.spring.registrycenter.RegistryCenter; +import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter; import org.apache.dubbo.rpc.model.ApplicationModel; import org.junit.jupiter.api.AfterAll; diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer/PropertyConfigurerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer/PropertyConfigurerTest.java index 79d9ab5..099f8a7 100644 --- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer/PropertyConfigurerTest.java +++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer/PropertyConfigurerTest.java @@ -20,8 +20,8 @@ import org.apache.dubbo.common.URL; import org.apache.dubbo.config.bootstrap.DubboBootstrap; import org.apache.dubbo.config.spring.api.HelloService; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; -import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter; import org.apache.dubbo.config.spring.registrycenter.RegistryCenter; +import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter; import org.apache.dubbo.rpc.model.ApplicationModel; import org.junit.jupiter.api.AfterAll; diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer2/PropertySourcesConfigurerTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer2/PropertySourcesConfigurerTest.java index e3939e4..2cb92ff 100644 --- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer2/PropertySourcesConfigurerTest.java +++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer2/PropertySourcesConfigurerTest.java @@ -21,8 +21,8 @@ import org.apache.dubbo.config.bootstrap.DubboBootstrap; import org.apache.dubbo.config.spring.api.HelloService; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.apache.dubbo.config.spring.propertyconfigurer.consumer.DemoBeanFactoryPostProcessor; -import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter; import org.apache.dubbo.config.spring.registrycenter.RegistryCenter; +import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter; import org.apache.dubbo.rpc.model.ApplicationModel; import org.junit.jupiter.api.AfterAll; diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer3/PropertySourcesInJavaConfigTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer3/PropertySourcesInJavaConfigTest.java index be83282..b5b1a2d 100644 --- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer3/PropertySourcesInJavaConfigTest.java +++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/propertyconfigurer/consumer3/PropertySourcesInJavaConfigTest.java @@ -21,11 +21,14 @@ import org.apache.dubbo.config.bootstrap.DubboBootstrap; import org.apache.dubbo.config.spring.api.HelloService; import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.apache.dubbo.config.spring.propertyconfigurer.consumer.DemoBeanFactoryPostProcessor; -import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter; import org.apache.dubbo.config.spring.registrycenter.RegistryCenter; +import org.apache.dubbo.config.spring.registrycenter.ZookeeperSingleRegistryCenter; import org.apache.dubbo.rpc.model.ApplicationModel; -import org.junit.jupiter.api.*; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/javaconfig/JavaConfigReferenceBeanTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/javaconfig/JavaConfigReferenceBeanTest.java index 73ca355..cd65bb4 100644 --- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/javaconfig/JavaConfigReferenceBeanTest.java +++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/reference/javaconfig/JavaConfigReferenceBeanTest.java @@ -27,16 +27,13 @@ import org.apache.dubbo.config.spring.context.annotation.EnableDubbo; import org.apache.dubbo.config.spring.extension.SpringExtensionInjector; import org.apache.dubbo.config.spring.impl.HelloServiceImpl; import org.apache.dubbo.config.spring.reference.ReferenceBeanBuilder; -import org.apache.dubbo.config.spring.registrycenter.ZooKeeperServer; import org.apache.dubbo.config.spring.registrycenter.RegistryCenter; import org.apache.dubbo.config.spring.registrycenter.ZookeeperMultipleRegistryCenter; import org.apache.dubbo.rpc.service.GenericException; import org.apache.dubbo.rpc.service.GenericService; -import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.context.annotation.AnnotationConfigApplicationContext; diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java index 6ecca68..fe5a933 100644 --- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java +++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java @@ -19,6 +19,7 @@ package org.apache.dubbo.metadata; import org.apache.dubbo.common.URL; import org.apache.dubbo.common.extension.SPI; import org.apache.dubbo.common.utils.StringUtils; +import org.apache.dubbo.rpc.model.ScopeModel; import java.util.Arrays; import java.util.HashSet; @@ -54,6 +55,10 @@ public interface ServiceNameMapping { return getExtensionLoader(ServiceNameMapping.class).getDefaultExtension(); } + static ServiceNameMapping getDefaultExtension(ScopeModel scopeModel) { + return scopeModel.getDefaultExtension(ServiceNameMapping.class); + } + static String buildMappingKey(URL url) { return buildGroup(url.getServiceInterface()); } diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultServiceInstance.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultServiceInstance.java index bfdc191..483c862 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultServiceInstance.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/DefaultServiceInstance.java @@ -29,7 +29,6 @@ import java.util.Objects; import java.util.SortedMap; import java.util.TreeMap; -import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY; import static org.apache.dubbo.common.constants.CommonConstants.SCOPE_MODEL; import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.ENDPOINTS; import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.EXPORTED_SERVICES_REVISION_PROPERTY_NAME; diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java index 1eaa2dd..996962f 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java @@ -210,7 +210,7 @@ public class ServiceDiscoveryRegistry implements Registry { Set<String> subscribedServices = Collections.emptySet(); try { - ServiceNameMapping serviceNameMapping = ServiceNameMapping.getDefaultExtension(); + ServiceNameMapping serviceNameMapping = ServiceNameMapping.getDefaultExtension(registryURL.getScopeModel()); subscribedServices = serviceNameMapping.getAndListenServices(registryURL, url, new DefaultMappingListener(url, subscribedServices, listener)); } catch (Exception e) { logger.warn("Cannot find app mapping for service " + url.getServiceInterface() + ", will not migrate.", e); diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizer.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizer.java index ea0723c..e238ea7 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizer.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizer.java @@ -31,7 +31,6 @@ import org.apache.dubbo.rpc.model.ApplicationModel; import java.util.Collections; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.Set; @@ -76,7 +75,6 @@ public class ServiceInstanceMetadataCustomizer implements ServiceInstanceCustomi } MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServices().values().iterator().next(); URL url = serviceInfo.getUrl(); - List<MetadataParamsFilter> paramsFilters = loader.getActivateExtension(url, "params-filter"); Map<String, String> allParams = new HashMap<>(url.getParameters()); // load instance params users want to load. diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java index 25543bc..e687ff7 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java @@ -598,10 +598,12 @@ public class RegistryProtocol implements Protocol, ScopeModelAware { } for (ApplicationModel applicationModel : frameworkModel.getApplicationModels()) { - if (applicationModel.getApplicationEnvironment().getConfiguration().convert(Boolean.class, org.apache.dubbo.registry.Constants.ENABLE_CONFIGURATION_LISTEN, true)) { - applicationModel.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension() - .removeListener(applicationModel.getApplicationName() + CONFIGURATORS_SUFFIX, - getProviderConfigurationListener(applicationModel)); + if (applicationModel.isInit()) { + if (applicationModel.getApplicationEnvironment().getConfiguration().convert(Boolean.class, org.apache.dubbo.registry.Constants.ENABLE_CONFIGURATION_LISTEN, true)) { + applicationModel.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension() + .removeListener(applicationModel.getApplicationName() + CONFIGURATORS_SUFFIX, + getProviderConfigurationListener(applicationModel)); + } } } diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistryFactory.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistryFactory.java index 169b51e..89710e1 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistryFactory.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/AbstractRegistryFactory.java @@ -37,9 +37,9 @@ import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.locks.ReentrantLock; import java.util.stream.Collectors; +import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY; import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY; import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY; -import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY; import static org.apache.dubbo.rpc.cluster.Constants.EXPORT_KEY; import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY; diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/CacheableFailbackRegistry.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/CacheableFailbackRegistry.java index e13d29d..c356cea 100644 --- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/CacheableFailbackRegistry.java +++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/CacheableFailbackRegistry.java @@ -32,6 +32,9 @@ import org.apache.dubbo.common.utils.CollectionUtils; import org.apache.dubbo.common.utils.StringUtils; import org.apache.dubbo.common.utils.UrlUtils; import org.apache.dubbo.registry.NotifyListener; +import org.apache.dubbo.registry.ProviderFirstParams; +import org.apache.dubbo.rpc.model.ScopeModel; +import org.apache.dubbo.rpc.model.ScopeModelUtil; import java.util.ArrayList; import java.util.Collection; diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/DefaultServiceInstanceTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/DefaultServiceInstanceTest.java index 13fde8e..8f073b4 100644 --- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/DefaultServiceInstanceTest.java +++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/DefaultServiceInstanceTest.java @@ -94,7 +94,7 @@ public class DefaultServiceInstanceTest { assertEquals("value", allParams2.get("key")); // test equals - DefaultServiceInstance instance2 = new DefaultServiceInstance("A", "127.0.0.1", 20880); + DefaultServiceInstance instance2 = new DefaultServiceInstance("A", "127.0.0.1", 20880, ApplicationModel.defaultModel()); instance2.setMetadata(new HashMap<>(instance.getMetadata())); instance2.getMetadata().put(EXPORTED_SERVICES_REVISION_PROPERTY_NAME, "222"); // assert instances with different revision and extend params are equal diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/InstanceAddressURLTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/InstanceAddressURLTest.java index 9ce1f03..6b3a0da 100644 --- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/InstanceAddressURLTest.java +++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/InstanceAddressURLTest.java @@ -22,6 +22,7 @@ import org.apache.dubbo.common.utils.CollectionUtils; import org.apache.dubbo.metadata.MetadataInfo; import org.apache.dubbo.registry.ProviderFirstParams; import org.apache.dubbo.rpc.RpcServiceContext; +import org.apache.dubbo.rpc.model.ApplicationModel; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -64,7 +65,7 @@ public class InstanceAddressURLTest { "&version=1.0.0&timeout=9000&a.timeout=8888&dubbo.tag=consumer&protocol=dubbo"); private DefaultServiceInstance createInstance() { - DefaultServiceInstance instance = new DefaultServiceInstance("demo-provider", "127.0.0.1", 8080); + DefaultServiceInstance instance = new DefaultServiceInstance("demo-provider", "127.0.0.1", 8080, ApplicationModel.defaultModel()); Map<String, String> metadata = instance.getMetadata(); metadata.put("key1", "value1"); metadata.put("key2", "value2"); diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryTest.java index 2f5e047..31e7b37 100644 --- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryTest.java +++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistryTest.java @@ -22,6 +22,7 @@ import org.apache.dubbo.metadata.WritableMetadataService; import org.apache.dubbo.registry.NotifyListener; import org.apache.dubbo.registry.client.event.listener.MockServiceInstancesChangedListener; import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener; +import org.apache.dubbo.rpc.model.ApplicationModel; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; @@ -97,7 +98,7 @@ public class ServiceDiscoveryRegistryTest { when(serviceDiscovery.createListener(any())).thenReturn(instanceListener); when(serviceDiscovery.getInstances(any())).thenReturn(Collections.emptyList()); - spiedMetadataService = spy(WritableMetadataService.getDefaultExtension()); + spiedMetadataService = spy(WritableMetadataService.getDefaultExtension(ApplicationModel.defaultModel())); serviceDiscoveryRegistry = new ServiceDiscoveryRegistry(registryURL, serviceDiscovery, spiedMetadataService); } diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMappingTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMappingTest.java index 41b96e9..f710e56 100644 --- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMappingTest.java +++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/MetadataServiceNameMappingTest.java @@ -71,7 +71,7 @@ public class MetadataServiceNameMappingTest { try (MockedStatic<MetadataReportInstance> mockedMetadataHolder = Mockito.mockStatic(MetadataReportInstance.class)) { when(configManager.getMetadataConfigs()).thenReturn(Arrays.asList(new MetadataReportConfig())); - mockedMetadataHolder.when(() -> MetadataReportInstance.getMetadataReport(any())).thenReturn(metadataReport); + mockedMetadataHolder.when(() -> ApplicationModel.defaultModel().getBeanFactory().getBean(MetadataReportInstance.class).getMetadataReport(any())).thenReturn(metadataReport); when(metadataReport.registerServiceAppMapping(any(), any(), any())).thenReturn(true); // metadata report directly @@ -116,7 +116,7 @@ public class MetadataServiceNameMappingTest { Set<String> set = new HashSet<>(); set.add("app1"); try (MockedStatic<MetadataReportInstance> mockedMetadataHolder = Mockito.mockStatic(MetadataReportInstance.class)) { - mockedMetadataHolder.when(() -> MetadataReportInstance.getMetadataReport(any())).thenReturn(metadataReport); + mockedMetadataHolder.when(() -> ApplicationModel.defaultModel().getBeanFactory().getBean(MetadataReportInstance.class).getMetadataReport(any())).thenReturn(metadataReport); when(metadataReport.getServiceAppMapping(any(), any())).thenReturn(set); Set<String> result = mapping.get(url); diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/ProtocolPortsMetadataCustomizerTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/ProtocolPortsMetadataCustomizerTest.java index 1346a46..a402b96 100644 --- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/ProtocolPortsMetadataCustomizerTest.java +++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/ProtocolPortsMetadataCustomizerTest.java @@ -53,7 +53,7 @@ public class ProtocolPortsMetadataCustomizerTest { private InMemoryWritableMetadataService metadataService; public static DefaultServiceInstance createInstance() { - return new DefaultServiceInstance("A", "127.0.0.1", 20880); + return new DefaultServiceInstance("A", "127.0.0.1", 20880, ApplicationModel.defaultModel()); } @BeforeAll @@ -86,7 +86,7 @@ public class ProtocolPortsMetadataCustomizerTest { public void test() { ProtocolPortsMetadataCustomizer customizer = new ProtocolPortsMetadataCustomizer(); try (MockedStatic<WritableMetadataService> mockMetadataService = Mockito.mockStatic(WritableMetadataService.class)) { - mockMetadataService.when(() -> WritableMetadataService.getDefaultExtension()).thenReturn(metadataService); + mockMetadataService.when(() -> WritableMetadataService.getDefaultExtension(ApplicationModel.defaultModel())).thenReturn(metadataService); customizer.customize(instance); String endpoints = instance.getMetadata().get(ENDPOINTS); assertNotNull(endpoints); diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizerTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizerTest.java index 8094a59..08e7c72 100644 --- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizerTest.java +++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizerTest.java @@ -48,7 +48,7 @@ public class ServiceInstanceMetadataCustomizerTest { private InMemoryWritableMetadataService metadataService; public static DefaultServiceInstance createInstance() { - return new DefaultServiceInstance("A", "127.0.0.1", 20880); + return new DefaultServiceInstance("A", "127.0.0.1", 20880, ApplicationModel.defaultModel()); } @BeforeAll @@ -81,7 +81,7 @@ public class ServiceInstanceMetadataCustomizerTest { ServiceInstanceMetadataCustomizer customizer = new ServiceInstanceMetadataCustomizer(); try (MockedStatic<ConfigurationUtils> mockedUtils = Mockito.mockStatic(ConfigurationUtils.class)) { try (MockedStatic<WritableMetadataService> mockMetadataService = Mockito.mockStatic(WritableMetadataService.class)) { - mockMetadataService.when(() -> WritableMetadataService.getDefaultExtension()).thenReturn(metadataService); + mockMetadataService.when(() -> WritableMetadataService.getDefaultExtension(ApplicationModel.defaultModel())).thenReturn(metadataService); mockedUtils.when(() -> ConfigurationUtils.getProperty(DUBBO_LABELS)).thenReturn("k1=v1;k2=v2"); // mockedUtils.when(() -> ConfigurationUtils.getProperty(DUBBO_ENV_KEYS)).thenReturn("ENV_KEY1;ENV_KEY1"); // mockedUtils.when(() -> ConfigurationUtils.getProperty(ENV_KEY1)).thenReturn(""); diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/migration/model/MigrationRuleTest.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/migration/model/MigrationRuleTest.java index c89ebee..2ea3be6 100644 --- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/migration/model/MigrationRuleTest.java +++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/migration/model/MigrationRuleTest.java @@ -18,9 +18,10 @@ package org.apache.dubbo.registry.client.migration.model; import org.apache.dubbo.common.URL; import org.apache.dubbo.metadata.ServiceNameMapping; - +import org.apache.dubbo.metadata.WritableMetadataService; import org.apache.dubbo.rpc.model.ApplicationModel; import org.apache.dubbo.rpc.model.ModuleModel; + import org.junit.jupiter.api.Test; import org.mockito.ArgumentMatchers; import org.mockito.MockedStatic; @@ -79,12 +80,12 @@ public class MigrationRuleTest { assertEquals(60, migrationRule.getDelay()); assertEquals(false, migrationRule.getForce()); - URL url = Mockito.mock(URL.class); - ModuleModel defaultModule = ApplicationModel.defaultModel().getDefaultModule(); - url.setScopeModel(defaultModule); - Mockito.when(url.getDisplayServiceKey()).thenReturn("DemoService:1.0.0"); - Mockito.when(url.getParameter(ArgumentMatchers.eq(REGISTRY_CLUSTER_TYPE_KEY), anyString())).thenReturn("default"); - Mockito.when(url.getParameter(ArgumentMatchers.eq(REGISTRY_CLUSTER_TYPE_KEY), anyString())).thenReturn("default"); + URL url = Mockito.mock(URL.class); + ModuleModel defaultModule = ApplicationModel.defaultModel().getDefaultModule(); + url.setScopeModel(defaultModule); + Mockito.when(url.getDisplayServiceKey()).thenReturn("DemoService:1.0.0"); + Mockito.when(url.getParameter(ArgumentMatchers.eq(REGISTRY_CLUSTER_TYPE_KEY), anyString())).thenReturn("default"); + Mockito.when(url.getParameter(ArgumentMatchers.eq(REGISTRY_CLUSTER_TYPE_KEY), anyString())).thenReturn("default"); assertEquals(migrationRule.getInterfaces().size(), 2); @@ -101,19 +102,20 @@ public class MigrationRuleTest { assertEquals(false, migrationRule.getForce(url)); assertEquals(MigrationStep.FORCE_APPLICATION, migrationRule.getStep(url)); - Mockito.when(url.getDisplayServiceKey()).thenReturn("GreetingService:1.0.1"); - Mockito.when(url.getServiceInterface()).thenReturn("GreetingService"); - WritableMetadataService metadataService = WritableMetadataService.getDefaultExtension(defaultModule); - metadataService.putCachedMapping(ServiceNameMapping.buildMappingKey(url), Collections.singleton("TestApplication")); + Mockito.when(url.getDisplayServiceKey()).thenReturn("GreetingService:1.0.1"); + Mockito.when(url.getServiceInterface()).thenReturn("GreetingService"); + WritableMetadataService metadataService = WritableMetadataService.getDefaultExtension(defaultModule); + metadataService.putCachedMapping(ServiceNameMapping.buildMappingKey(url), Collections.singleton("TestApplication")); - Set<String> services = new HashSet<>(); - services.add("TestApplication"); - when(mapping.getServices(any())).thenReturn(services); - assertEquals(0.3f, migrationRule.getThreshold(url)); - assertEquals(20, migrationRule.getProportion(url)); - assertEquals(10, migrationRule.getDelay(url)); - assertEquals(false, migrationRule.getForce(url)); - assertEquals(MigrationStep.FORCE_INTERFACE, migrationRule.getStep(url)); - metadataService.removeCachedMapping("GreetingService"); + Set<String> services = new HashSet<>(); + services.add("TestApplication"); + when(mapping.getServices(any())).thenReturn(services); + assertEquals(0.3f, migrationRule.getThreshold(url)); + assertEquals(20, migrationRule.getProportion(url)); + assertEquals(10, migrationRule.getDelay(url)); + assertEquals(false, migrationRule.getForce(url)); + assertEquals(MigrationStep.FORCE_INTERFACE, migrationRule.getStep(url)); + metadataService.removeCachedMapping("GreetingService"); + } } } diff --git a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java index d7fd458..97e471f 100644 --- a/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java +++ b/dubbo-registry/dubbo-registry-zookeeper/src/main/java/org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java @@ -16,7 +16,6 @@ */ package org.apache.dubbo.registry.zookeeper.util; -import org.apache.curator.framework.imps.CuratorFrameworkState; import org.apache.dubbo.common.URL; import org.apache.dubbo.registry.client.DefaultServiceInstance; import org.apache.dubbo.registry.client.ServiceInstance; @@ -26,6 +25,7 @@ import org.apache.dubbo.rpc.model.ScopeModelUtil; import org.apache.curator.RetryPolicy; import org.apache.curator.framework.CuratorFramework; import org.apache.curator.framework.CuratorFrameworkFactory; +import org.apache.curator.framework.imps.CuratorFrameworkState; import org.apache.curator.retry.ExponentialBackoffRetry; import org.apache.curator.x.discovery.ServiceDiscovery; import org.apache.curator.x.discovery.ServiceDiscoveryBuilder;
