From f020f3e3d19f40ba35c1544145cf804470c813f2 Mon Sep 17 00:00:00 2001
From: namelessssssssssss
<100946116+namelessssssssssss@users.noreply.github.com>
Date: Tue, 3 Oct 2023 22:40:12 +0800
Subject: [PATCH] Remaining works of config-api refactor (#13045)
* * Move Configurator & Factory to common
* * Move ServiceNameMapping & MappingListener & MappingChangedEvent to common
* Add ServiceNameMappingUtils
* * Move ClusterUtils to common
* * Add ClusterInvokerFactory
* * Move InterfaceConfigValidator & MethodConfigValidator to cluster
* Move ConfigCenterConfigValidator to configcenter-api
* * Move DefaultMetricsServiceExporter to metrics-default
* * Move Lifecycles
* * Fix a part cyclic dependencies problem
* * Move ApplicationPostOfflineLifecycle to dubbo-registry
* * Fix a part cycle dependencies problem
* * Fix ut about MetadataReportInstance & Move Prometheus ut to metrics
* Move ClusterInvokerFactory to rpc-api
* * Update config-api pom
* * Add license
* * Fix module version of metadata-api
* * Move some MetadataService API to registry-api
* Add interface ApplicationMetadataUpdater to reduce the depedencies of dubbo-metadata on dubbo-registry
* Temporary remove some tests that caused cyclic reference
* Temporary remove some tests that caused cyclic reference
* Add license
* Add test-config module for test
* Add license
* Fix pom
* Tests fix
* Pom fix
* Fix a bean registry problem
* Move config-test to dubbo-config
* Fix pom
* Add removed test
* Add removed test
* Remove application.yaml
* Fix version
* Fix codestyle
* Fix spi file
* Fix dependencies of dubbo-demo-native
* Fix dependencies of dubbo-demo-native
* Fix dependencies of dubbo-demo-native
* Fix dependencies of dubbo-demo-native
* Fix dependencies of dubbo-demo-native
* Fix dependencies of dubbo-demo-native
* Fix dependencies of dubbo-rpc
* Fix dependencies of dubbo-rpc-rest
* Fix dependencies of dubbo-rpc-rest
* Fix dependencies of dubbo-rpc-rest
* Fix dependencies of dubbo-rpc-rest
* Fix spi file of ApplicationDeployListener
* Fix test about exporter count
* Fix test about exporter count
* Update pom
* Add test msg
* Change MetadataUpdater init process
* Change MetadataUpdater init process
* Change MetadataUpdater init process
* Change MetadataUpdater init process
* Fix dependencies of dubbo-rpc-rest
* Using lifecycle instead of ApplicationDeployListener
* Update doc
* Update log
* Fix pom of dubbo-config-spring & dubbo-plugin-security & dubbo-rpc-rest
* Add scope for ApplicationLifecycle
* Fix pom of dubbo-config-spring
* Fix ut of rpc-rest(PR#13087)
* Fix bug of DefaultClusterInvokerFactory
* Fix bug of DefaultClusterInvokerFactory
* Fix bug of DefaultClusterInvokerFactory
* Fix bug of ServiceInstanceCustomizer
* Add dubbo-config-test to ignore list
* Code style & bug fix
* Remove unused import
* Add zookeeper-curator for test
* Test zookeeper version
* Test zookeeper version
* Test fix zookeeper
* Remove unnecessary modification
* Add test props
* Remove unused dependencies
* Code style fix
* Remove unnecessary dependencies & Code style fix
* Fix dependencies
* Update pom.xml
* Add dubbo-config-test as ignored
* Refactor ClusterInvokerFactory
* Refactor ClusterInvokerFactory
* Refactor ClusterInvokerFactory
---
.artifacts | 1 +
.../validator/InterfaceConfigValidator.java | 0
.../validator/MethodConfigValidator.java | 0
.../org/apache/dubbo/rpc/cluster/Cluster.java | 8 +-
.../cluster/ClusterScopeModelInitializer.java | 5 +
.../factory/DefaultClusterInvokerFactory.java | 56 ++++
.../cluster/factory/DirectoryStrategy.java | 27 ++
.../factory/StaticDirectoryStrategy.java | 34 +++
.../support/registry/ZoneAwareCluster.java | 2 -
.../support/wrapper/ScopeClusterInvoker.java | 3 +-
...pache.dubbo.config.context.ConfigValidator | 2 +
.../deploy/context/ApplicationContext.java | 0
.../config/deploy/lifecycle/Lifecycle.java | 0
.../application/ApplicationLifecycle.java | 5 +-
.../manager/ApplicationLifecycleManager.java | 2 +-
.../dubbo/metadata/MappingChangedEvent.java | 0
.../dubbo/metadata/MappingListener.java | 0
.../dubbo/metadata/ServiceNameMapping.java | 47 ---
.../registry/ApplicationMetadataUpdater.java | 30 ++
.../dubbo/rpc/cluster/Configurator.java | 0
.../rpc/cluster/ConfiguratorFactory.java | 0
.../apache/dubbo/rpc/cluster/Constants.java | 4 +
.../cluster/ProviderURLMergeProcessor.java | 0
.../rpc/cluster/support/ClusterUtils.java | 0
dubbo-config/dubbo-config-api/pom.xml | 119 +-------
.../apache/dubbo/config/ReferenceConfig.java | 23 +-
.../apache/dubbo/config/ServiceConfig.java | 1 +
.../deploy/DefaultMetricsServiceExporter.java | 1 +
...bo.common.deploy.ApplicationDeployListener | 1 -
...pache.dubbo.config.context.ConfigValidator | 2 -
...lifecycle.application.ApplicationLifecycle | 1 -
....registry.client.ServiceInstanceCustomizer | 1 -
.../config/ConfigValidatorExistTest.java | 18 +-
dubbo-config/dubbo-config-spring/pom.xml | 9 +-
dubbo-config/dubbo-config-spring6/pom.xml | 6 +
dubbo-config/dubbo-config-test/pom.xml | 279 ++++++++++++++++++
.../java/demo/MultiClassLoaderService.java | 0
.../demo/MultiClassLoaderServiceImpl.java | 0
.../demo/MultiClassLoaderServiceRequest.java | 0
.../demo/MultiClassLoaderServiceResult.java | 0
.../dubbo/config/AbstractConfigTest.java | 0
.../dubbo/config/ApplicationConfigTest.java | 0
.../dubbo/config/ConfigCenterConfigTest.java | 0
.../dubbo/config/ConsumerConfigTest.java | 0
.../dubbo/config/DubboShutdownHookTest.java | 0
.../apache/dubbo/config/MethodConfigTest.java | 0
.../dubbo/config/ProtocolConfigTest.java | 0
.../dubbo/config/ReferenceConfigTest.java | 1 -
.../dubbo/config/RegistryConfigTest.java | 0
.../dubbo/config/ServiceConfigTest.java | 0
.../org/apache/dubbo/config/SysProps.java | 0
.../java/org/apache/dubbo/config/api/Box.java | 0
.../dubbo/config/api/DemoException.java | 0
.../apache/dubbo/config/api/DemoService.java | 0
.../org/apache/dubbo/config/api/Greeting.java | 0
.../org/apache/dubbo/config/api/User.java | 0
.../ConsulDubboServiceConsumerBootstrap.java | 0
.../ConsulDubboServiceProviderBootstrap.java | 0
.../config/bootstrap/DubboBootstrapTest.java | 17 +-
.../DubboServiceConsumerBootstrap.java | 0
.../DubboServiceProviderBootstrap.java | 0
.../DubboServiceProviderMinimumBootstrap.java | 0
.../dubbo/config/bootstrap/EchoService.java | 0
.../config/bootstrap/EchoServiceImpl.java | 0
.../EtcdDubboServiceConsumerBootstrap.java | 0
.../EtcdDubboServiceProviderBootstrap.java | 0
.../config/bootstrap/MultiInstanceTest.java | 0
.../NacosDubboServiceConsumerBootstrap.java | 0
.../NacosDubboServiceProviderBootstrap.java | 0
...ookeeperDubboServiceConsumerBootstrap.java | 0
...ookeeperDubboServiceProviderBootstrap.java | 0
.../builders/AbstractBuilderTest.java | 0
.../AbstractInterfaceBuilderTest.java | 0
.../builders/AbstractMethodBuilderTest.java | 0
.../AbstractReferenceBuilderTest.java | 0
.../builders/AbstractServiceBuilderTest.java | 0
.../builders/ApplicationBuilderTest.java | 0
.../builders/ArgumentBuilderTest.java | 0
.../builders/ConfigCenterBuilderTest.java | 0
.../builders/ConsumerBuilderTest.java | 0
.../builders/MetadataReportBuilderTest.java | 0
.../bootstrap/builders/MethodBuilderTest.java | 0
.../bootstrap/builders/ModuleBuilderTest.java | 0
.../builders/MonitorBuilderTest.java | 0
.../builders/ProtocolBuilderTest.java | 0
.../builders/ProviderBuilderTest.java | 0
.../builders/ReferenceBuilderTest.java | 0
.../builders/RegistryBuilderTest.java | 0
.../builders/ServiceBuilderTest.java | 1 -
.../DubboInterfaceConsumerBootstrap.java | 0
.../dubbo/config/bootstrap/rest/User.java | 0
.../config/bootstrap/rest/UserService.java | 0
.../bootstrap/rest/UserServiceImpl.java | 0
...bstractRegistryCenterExporterListener.java | 0
...AbstractRegistryCenterServiceListener.java | 0
.../dubbo/config/integration/Constants.java | 0
.../config/integration/IntegrationTest.java | 0
.../integration/multiple/AbstractStorage.java | 0
.../config/integration/multiple/Storage.java | 0
...yCenterExportMetadataExporterListener.java | 0
...ryCenterExportMetadataIntegrationTest.java | 0
...leRegistryCenterExportMetadataService.java | 0
...gistryCenterExportMetadataServiceImpl.java | 0
...ryCenterExportMetadataServiceListener.java | 0
...yCenterExportProviderExporterListener.java | 0
...pleRegistryCenterExportProviderFilter.java | 0
...ryCenterExportProviderIntegrationTest.java | 0
...xportProviderRegistryProtocolListener.java | 0
...leRegistryCenterExportProviderService.java | 0
...gistryCenterExportProviderServiceImpl.java | 0
...ryCenterExportProviderServiceListener.java | 0
...leRegistryCenterInjvmExporterListener.java | 0
.../MultipleRegistryCenterInjvmFilter.java | 0
...pleRegistryCenterInjvmIntegrationTest.java | 4 +-
.../MultipleRegistryCenterInjvmService.java | 0
...ultipleRegistryCenterInjvmServiceImpl.java | 0
...pleRegistryCenterInjvmServiceListener.java | 0
.../integration/multiple/package-info.java | 0
...rviceDiscoveryRegistryIntegrationTest.java | 0
...coveryRegistryRegistryServiceListener.java | 0
...CenterServiceDiscoveryRegistryService.java | 0
...erServiceDiscoveryRegistryServiceImpl.java | 0
.../ServiceDiscoveryRegistryInfoWrapper.java | 0
.../ServiceDiscoveryRegistryStorage.java | 0
...tryCenterDubboProtocolIntegrationTest.java | 0
...RegistryCenterExportedServiceListener.java | 0
...ingleRegistryCenterIntegrationService.java | 0
...eRegistryCenterIntegrationServiceImpl.java | 0
...yCenterExportMetadataExporterListener.java | 0
...ryCenterExportMetadataIntegrationTest.java | 0
...leRegistryCenterExportMetadataService.java | 0
...gistryCenterExportMetadataServiceImpl.java | 0
...ryCenterExportMetadataServiceListener.java | 0
...yCenterExportProviderExporterListener.java | 0
...gleRegistryCenterExportProviderFilter.java | 0
...ryCenterExportProviderIntegrationTest.java | 0
...xportProviderRegistryProtocolListener.java | 0
...leRegistryCenterExportProviderService.java | 0
...gistryCenterExportProviderServiceImpl.java | 0
...ryCenterExportProviderServiceListener.java | 0
...leRegistryCenterInjvmExporterListener.java | 0
.../SingleRegistryCenterInjvmFilter.java | 0
...gleRegistryCenterInjvmIntegrationTest.java | 4 +-
.../SingleRegistryCenterInjvmService.java | 0
.../SingleRegistryCenterInjvmServiceImpl.java | 0
...gleRegistryCenterInjvmServiceListener.java | 0
.../integration/single/package-info.java | 0
.../DelegateProviderMetaDataInvokerTest.java | 0
...erviceURLParamsMetadataCustomizerTest.java | 1 +
.../dubbo/config/mock/GreetingLocal1.java | 0
.../dubbo/config/mock/GreetingLocal2.java | 0
.../dubbo/config/mock/GreetingLocal3.java | 0
.../apache/dubbo/config/mock/MockCluster.java | 0
.../apache/dubbo/config/mock/MockCodec.java | 0
.../dubbo/config/mock/MockDispatcher.java | 0
.../dubbo/config/mock/MockExchanger.java | 0
.../config/mock/MockExporterListener.java | 0
.../apache/dubbo/config/mock/MockFilter.java | 0
.../config/mock/MockInvokerListener.java | 0
.../dubbo/config/mock/MockLoadBalance.java | 0
.../dubbo/config/mock/MockProtocol.java | 0
.../dubbo/config/mock/MockProtocol2.java | 0
.../dubbo/config/mock/MockProxyFactory.java | 0
.../dubbo/config/mock/MockRegistry.java | 0
.../config/mock/MockRegistryFactory.java | 0
.../config/mock/MockRegistryFactory2.java | 0
.../config/mock/MockServiceDiscovery.java | 0
.../config/mock/MockServiceListener.java | 0
.../dubbo/config/mock/MockStatusChecker.java | 0
.../dubbo/config/mock/MockTelnetHandler.java | 0
.../dubbo/config/mock/MockThreadPool.java | 0
.../dubbo/config/mock/MockTransporter.java | 0
.../dubbo/config/mock/TestProxyFactory.java | 0
.../config/provider/impl/DemoServiceImpl.java | 0
.../config/url/ExporterSideConfigUrlTest.java | 4 +-
.../config/url/InvokerSideConfigUrlTest.java | 0
.../config/url/RpcConfigGetSetProxy.java | 0
.../apache/dubbo/config/url/UrlTestBase.java | 0
.../utils/ConfigValidationUtilsTest.java | 27 --
.../config/utils/MockReferenceConfig.java | 0
.../config/utils/ReferenceCacheTest.java | 0
.../config/utils/XxxMockReferenceConfig.java | 0
.../config/utils/service/FooService.java | 0
.../config/utils/service/FooServiceImpl.java | 0
.../config/utils/service/XxxService.java | 0
.../config/utils/service/XxxServiceImpl.java | 0
.../metadata/MetadataServiceExporterTest.java | 0
...g.apache.dubbo.common.status.StatusChecker | 0
....apache.dubbo.common.threadpool.ThreadPool | 0
.../org.apache.dubbo.config.ServiceListener | 0
.../org.apache.dubbo.registry.RegistryFactory | 0
...che.dubbo.registry.RegistryServiceListener | 0
...istry.integration.RegistryProtocolListener | 0
.../services/org.apache.dubbo.remoting.Codec | 0
.../org.apache.dubbo.remoting.Dispatcher | 0
.../org.apache.dubbo.remoting.Transporter | 0
...g.apache.dubbo.remoting.exchange.Exchanger | 0
...apache.dubbo.remoting.telnet.TelnetHandler | 0
.../org.apache.dubbo.rpc.ExporterListener | 0
.../services/org.apache.dubbo.rpc.Filter | 0
.../org.apache.dubbo.rpc.InvokerListener | 0
.../services/org.apache.dubbo.rpc.Protocol | 0
.../org.apache.dubbo.rpc.ProxyFactory | 0
.../org.apache.dubbo.rpc.cluster.Cluster | 0
.../org.apache.dubbo.rpc.cluster.LoadBalance | 0
.../src/test/resources/dubbo.properties | 3 +
.../src/test/resources/log4j.xml | 28 ++
.../resources/security/serialize.allowlist | 19 ++
dubbo-config/pom.xml | 7 +-
.../dubbo-configcenter-api/pom.xml | 5 +
.../ConfigCenterApplicationLifecycle.java | 0
.../ConfigCenterConfigValidator.java | 1 -
dubbo-demo/dubbo-demo-native/pom.xml | 169 +++++++++++
.../MetadataApplicationLifecycle.java | 8 +-
.../MetadataDestroyApplicationLifecycle.java | 0
.../MetadataInitializeLifecycle.java | 0
.../MetadataRefreshApplicationLifecycle.java | 8 +-
...MetadataRegistryApplicationLifecycle.java} | 30 +-
.../metadata/AbstractServiceNameMapping.java | 12 +-
.../metadata/ServiceNameMappingUtils.java | 72 +++++
.../report/DefaultMetadataPublisher.java | 2 +-
...bo.common.deploy.ApplicationDeployListener | 1 -
...lifecycle.application.ApplicationLifecycle | 1 +
.../utils/MetadataConfigValidatorTest.java | 51 ++++
.../AbstractServiceNameMappingTest.java | 4 +-
.../store/nacos/NacosMetadataReport.java | 8 +-
.../zookeeper/ZookeeperMetadataReport.java | 2 +-
.../MetricsCollectorStartLifecycle.java | 0
.../MetricsDisableApplicationLifecycle.java | 3 +-
.../MetricsExportApplicationLifecycle.java | 0
.../MetricsInitializeLifecycle.java | 0
...oduleStartedEventApplicationLifecycle.java | 0
...bbo.metrics.service.MetricsServiceExporter | 0
.../DefaultApplicationDeployerTest.java | 2 +-
...servationRegistryApplicationLifecycle.java | 0
dubbo-plugin/dubbo-security/pom.xml | 6 +
dubbo-registry/dubbo-registry-api/pom.xml | 2 +-
.../ApplicationPostOfflineLifecycle.java | 0
.../ApplicationPreOfflineLifecycle.java | 0
.../DeregisterApplicationLifecycle.java | 0
.../application/ModuleOfflineLifecycle.java | 0
.../RegisterApplicationLifecycle.java | 0
.../RegisterBeanInitLifecycle.java | 36 +++
.../ConfigurableMetadataServiceExporter.java | 2 +-
.../deploy}/ExporterDeployListener.java | 2 +-
...ataServiceURLParamsMetadataCustomizer.java | 2 +-
.../registry/DefaultMetadataUpdater.java | 31 ++
.../client/ServiceDiscoveryRegistry.java | 13 +-
...bo.common.deploy.ApplicationDeployListener | 1 +
...pache.dubbo.config.context.ConfigValidator | 1 +
...lifecycle.application.ApplicationLifecycle | 2 +
....registry.client.ServiceInstanceCustomizer | 1 +
.../client/ServiceDiscoveryRegistryTest.java | 2 +-
.../rpc/cluster/ClusterInvokerFactory.java | 123 ++++++++
.../rest/NoAnnotationRestProtocolTest.java | 6 +
dubbo-test/dubbo-dependencies-all/pom.xml | 5 +
.../org/apache/dubbo/dependency/FileTest.java | 3 +
257 files changed, 1115 insertions(+), 305 deletions(-)
rename {dubbo-config/dubbo-config-api => dubbo-cluster}/src/main/java/org/apache/dubbo/config/validator/InterfaceConfigValidator.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-cluster}/src/main/java/org/apache/dubbo/config/validator/MethodConfigValidator.java (100%)
create mode 100644 dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/DefaultClusterInvokerFactory.java
create mode 100644 dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/DirectoryStrategy.java
create mode 100644 dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/StaticDirectoryStrategy.java
create mode 100644 dubbo-cluster/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator
rename {dubbo-config/dubbo-config-api => dubbo-common}/src/main/java/org/apache/dubbo/config/deploy/context/ApplicationContext.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-common}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/Lifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-common}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationLifecycle.java (93%)
rename {dubbo-config/dubbo-config-api => dubbo-common}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/manager/ApplicationLifecycleManager.java (99%)
rename {dubbo-metadata/dubbo-metadata-api => dubbo-common}/src/main/java/org/apache/dubbo/metadata/MappingChangedEvent.java (100%)
rename {dubbo-metadata/dubbo-metadata-api => dubbo-common}/src/main/java/org/apache/dubbo/metadata/MappingListener.java (100%)
rename {dubbo-metadata/dubbo-metadata-api => dubbo-common}/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java (62%)
create mode 100644 dubbo-common/src/main/java/org/apache/dubbo/registry/ApplicationMetadataUpdater.java
rename {dubbo-cluster => dubbo-common}/src/main/java/org/apache/dubbo/rpc/cluster/Configurator.java (100%)
rename {dubbo-cluster => dubbo-common}/src/main/java/org/apache/dubbo/rpc/cluster/ConfiguratorFactory.java (100%)
rename {dubbo-cluster => dubbo-common}/src/main/java/org/apache/dubbo/rpc/cluster/ProviderURLMergeProcessor.java (100%)
rename {dubbo-cluster => dubbo-common}/src/main/java/org/apache/dubbo/rpc/cluster/support/ClusterUtils.java (100%)
delete mode 100644 dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener
delete mode 100644 dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer
create mode 100644 dubbo-config/dubbo-config-test/pom.xml
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/demo/MultiClassLoaderService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/demo/MultiClassLoaderServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/demo/MultiClassLoaderServiceRequest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/demo/MultiClassLoaderServiceResult.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/ApplicationConfigTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/ConfigCenterConfigTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/ConsumerConfigTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/DubboShutdownHookTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/MethodConfigTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/ProtocolConfigTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java (99%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/RegistryConfigTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/SysProps.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/api/Box.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/api/DemoException.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/api/DemoService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/api/Greeting.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/api/User.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceConsumerBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceProviderBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java (97%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceConsumerBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderMinimumBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/EchoService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/EchoServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceConsumerBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceProviderBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/MultiInstanceTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceConsumerBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceProviderBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceConsumerBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceProviderBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/ApplicationBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/ArgumentBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConsumerBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/MethodBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/ModuleBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/MonitorBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProtocolBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProviderBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/ReferenceBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/RegistryBuilderTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java (99%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/compatible/DubboInterfaceConsumerBootstrap.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/rest/User.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterExporterListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/Constants.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/IntegrationTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/AbstractStorage.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/Storage.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataExporterListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataIntegrationTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderExporterListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderFilter.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderRegistryProtocolListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmExporterListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmFilter.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java (98%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/package-info.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryRegistryServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryInfoWrapper.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryStorage.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterDubboProtocolIntegrationTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterExportedServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataExporterListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataIntegrationTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderExporterListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderFilter.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderRegistryProtocolListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmExporterListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmFilter.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java (98%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/integration/single/package-info.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvokerTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizerTest.java (98%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/GreetingLocal1.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/GreetingLocal2.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/GreetingLocal3.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockCluster.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockCodec.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockDispatcher.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockExchanger.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockExporterListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockFilter.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockInvokerListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockLoadBalance.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockProtocol.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockProtocol2.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockProxyFactory.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockRegistry.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory2.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockServiceDiscovery.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockServiceListener.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockStatusChecker.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockTelnetHandler.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockThreadPool.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/MockTransporter.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/mock/TestProxyFactory.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/provider/impl/DemoServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java (97%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/url/InvokerSideConfigUrlTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/url/RpcConfigGetSetProxy.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/url/UrlTestBase.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/utils/ConfigValidationUtilsTest.java (84%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/utils/MockReferenceConfig.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/utils/ReferenceCacheTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/utils/XxxMockReferenceConfig.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/utils/service/FooService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/utils/service/FooServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/utils/service/XxxService.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/config/utils/service/XxxServiceImpl.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/java/org/apache/dubbo/metadata/MetadataServiceExporterTest.java (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.common.status.StatusChecker (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.common.threadpool.ThreadPool (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.config.ServiceListener (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryFactory (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryServiceListener (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.registry.integration.RegistryProtocolListener (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Codec (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Dispatcher (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Transporter (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.remoting.exchange.Exchanger (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.remoting.telnet.TelnetHandler (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ExporterListener (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Filter (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.rpc.InvokerListener (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Protocol (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ProxyFactory (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.Cluster (100%)
rename dubbo-config/{dubbo-config-api => dubbo-config-test}/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance (100%)
create mode 100644 dubbo-config/dubbo-config-test/src/test/resources/dubbo.properties
create mode 100644 dubbo-config/dubbo-config-test/src/test/resources/log4j.xml
create mode 100644 dubbo-config/dubbo-config-test/src/test/resources/security/serialize.allowlist
rename {dubbo-config/dubbo-config-api => dubbo-configcenter/dubbo-configcenter-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ConfigCenterApplicationLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-configcenter/dubbo-configcenter-api}/src/main/java/org/apache/dubbo/config/validator/ConfigCenterConfigValidator.java (98%)
rename {dubbo-config/dubbo-config-api => dubbo-metadata/dubbo-metadata-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataApplicationLifecycle.java (79%)
rename {dubbo-config/dubbo-config-api => dubbo-metadata/dubbo-metadata-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataDestroyApplicationLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-metadata/dubbo-metadata-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataInitializeLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-metadata/dubbo-metadata-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRefreshApplicationLifecycle.java (83%)
rename dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/{metadata/MetadataPublisherRegister.java => config/deploy/lifecycle/application/MetadataRegistryApplicationLifecycle.java} (54%)
create mode 100644 dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMappingUtils.java
delete mode 100644 dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener
create mode 100644 dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/config/utils/MetadataConfigValidatorTest.java
rename {dubbo-config/dubbo-config-api => dubbo-metrics/dubbo-metrics-default}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsCollectorStartLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-metrics/dubbo-metrics-default}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsDisableApplicationLifecycle.java (92%)
rename {dubbo-config/dubbo-config-api => dubbo-metrics/dubbo-metrics-default}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsExportApplicationLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-metrics/dubbo-metrics-default}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsInitializeLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-metrics/dubbo-metrics-default}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleStartedEventApplicationLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-metrics/dubbo-metrics-default}/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metrics.service.MetricsServiceExporter (100%)
rename {dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy => dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus}/DefaultApplicationDeployerTest.java (96%)
rename {dubbo-config/dubbo-config-api => dubbo-metrics/dubbo-tracing}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ObservationRegistryApplicationLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-registry/dubbo-registry-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPostOfflineLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-registry/dubbo-registry-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPreOfflineLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-registry/dubbo-registry-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/DeregisterApplicationLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-registry/dubbo-registry-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleOfflineLifecycle.java (100%)
rename {dubbo-config/dubbo-config-api => dubbo-registry/dubbo-registry-api}/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/RegisterApplicationLifecycle.java (100%)
create mode 100644 dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/RegisterBeanInitLifecycle.java
rename {dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata => dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy}/ConfigurableMetadataServiceExporter.java (99%)
rename {dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata => dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy}/ExporterDeployListener.java (99%)
rename {dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata => dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy}/MetadataServiceURLParamsMetadataCustomizer.java (98%)
create mode 100644 dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/DefaultMetadataUpdater.java
create mode 100644 dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener
create mode 100644 dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator
create mode 100644 dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/cluster/ClusterInvokerFactory.java
diff --git a/.artifacts b/.artifacts
index fb0d51aaa3..2225e68376 100644
--- a/.artifacts
+++ b/.artifacts
@@ -30,6 +30,7 @@ dubbo-config
dubbo-config-api
dubbo-config-spring
dubbo-config-spring6
+dubbo-config-test
dubbo-configcenter
dubbo-configcenter-api
dubbo-configcenter-file
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/validator/InterfaceConfigValidator.java b/dubbo-cluster/src/main/java/org/apache/dubbo/config/validator/InterfaceConfigValidator.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/validator/InterfaceConfigValidator.java
rename to dubbo-cluster/src/main/java/org/apache/dubbo/config/validator/InterfaceConfigValidator.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/validator/MethodConfigValidator.java b/dubbo-cluster/src/main/java/org/apache/dubbo/config/validator/MethodConfigValidator.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/validator/MethodConfigValidator.java
rename to dubbo-cluster/src/main/java/org/apache/dubbo/config/validator/MethodConfigValidator.java
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Cluster.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Cluster.java
index 909693cb90..039177751d 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Cluster.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Cluster.java
@@ -24,6 +24,8 @@ import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.rpc.model.ScopeModel;
import org.apache.dubbo.rpc.model.ScopeModelUtil;
+import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER;
+
/**
* Cluster. (SPI, Singleton, ThreadSafe)
*
@@ -31,11 +33,9 @@ import org.apache.dubbo.rpc.model.ScopeModelUtil;
* Fault-Tolerant
*
*/
-@SPI(Cluster.DEFAULT)
+@SPI(DEFAULT_CLUSTER)
public interface Cluster {
- String DEFAULT = "failover";
-
/**
* Merge the directory invokers to a virtual invoker.
*
@@ -53,7 +53,7 @@ public interface Cluster {
static Cluster getCluster(ScopeModel scopeModel, String name, boolean wrap) {
if (StringUtils.isEmpty(name)) {
- name = Cluster.DEFAULT;
+ name = DEFAULT_CLUSTER;
}
return ScopeModelUtil.getApplicationModel(scopeModel).getExtensionLoader(Cluster.class).getExtension(name, wrap);
}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/ClusterScopeModelInitializer.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/ClusterScopeModelInitializer.java
index ede8f85f03..c42af47839 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/ClusterScopeModelInitializer.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/ClusterScopeModelInitializer.java
@@ -17,6 +17,8 @@
package org.apache.dubbo.rpc.cluster;
import org.apache.dubbo.common.beans.factory.ScopeBeanFactory;
+import org.apache.dubbo.rpc.cluster.factory.DefaultClusterInvokerFactory;
+import org.apache.dubbo.rpc.cluster.factory.StaticDirectoryStrategy;
import org.apache.dubbo.rpc.cluster.router.RouterSnapshotSwitcher;
import org.apache.dubbo.rpc.cluster.support.ClusterUtils;
import org.apache.dubbo.rpc.model.ApplicationModel;
@@ -25,10 +27,13 @@ import org.apache.dubbo.rpc.model.ModuleModel;
import org.apache.dubbo.rpc.model.ScopeModelInitializer;
public class ClusterScopeModelInitializer implements ScopeModelInitializer {
+
@Override
public void initializeFrameworkModel(FrameworkModel frameworkModel) {
ScopeBeanFactory beanFactory = frameworkModel.getBeanFactory();
beanFactory.registerBean(RouterSnapshotSwitcher.class);
+ beanFactory.registerBean(StaticDirectoryStrategy.class);
+ beanFactory.registerBean(DefaultClusterInvokerFactory.class);
}
@Override
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/DefaultClusterInvokerFactory.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/DefaultClusterInvokerFactory.java
new file mode 100644
index 0000000000..1adaa8753c
--- /dev/null
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/DefaultClusterInvokerFactory.java
@@ -0,0 +1,56 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.dubbo.rpc.cluster.factory;
+
+
+import org.apache.dubbo.rpc.Invoker;
+import org.apache.dubbo.rpc.cluster.ClusterInvokerFactory;
+import org.apache.dubbo.rpc.cluster.Directory;
+import org.apache.dubbo.rpc.model.ScopeModel;
+
+import java.util.List;
+
+import static org.apache.dubbo.rpc.cluster.Cluster.getCluster;
+
+public class DefaultClusterInvokerFactory implements ClusterInvokerFactory {
+
+ private final List strategies;
+
+ public DefaultClusterInvokerFactory(ScopeModel scopeModel) {
+ this.strategies = scopeModel.getBeanFactory().getBeansOfType(DirectoryStrategy.class);
+ }
+
+ /**
+ * Build an Invoker with StaticDirectory.
+ *
+ * @param config config
+ * @return ClusterInvoker
+ */
+ @Override
+ public Invoker> getInvoker(ClusterInvokerConfig config) {
+ Directory> directory = null;
+ for (DirectoryStrategy strategy : strategies) {
+ if (strategy.name().equals(config.getDirectoryName())) {
+ directory = strategy.createDirectory(config);
+ break;
+ }
+ }
+ return getCluster(config.getScopeModel(), config.getClusterName(), config.isWrappedCluster())
+ .join(directory,config.isWrappedInvoker());
+ }
+
+}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/DirectoryStrategy.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/DirectoryStrategy.java
new file mode 100644
index 0000000000..8a6f25c036
--- /dev/null
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/DirectoryStrategy.java
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.dubbo.rpc.cluster.factory;
+
+import org.apache.dubbo.rpc.cluster.ClusterInvokerFactory;
+import org.apache.dubbo.rpc.cluster.Directory;
+
+public interface DirectoryStrategy {
+
+ ClusterInvokerFactory.DirectoryNames name();
+
+ Directory createDirectory(ClusterInvokerFactory.ClusterInvokerConfig clusterInvokerConfig);
+}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/StaticDirectoryStrategy.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/StaticDirectoryStrategy.java
new file mode 100644
index 0000000000..c78e9ac574
--- /dev/null
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/factory/StaticDirectoryStrategy.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.dubbo.rpc.cluster.factory;
+
+import org.apache.dubbo.rpc.cluster.ClusterInvokerFactory;
+import org.apache.dubbo.rpc.cluster.Directory;
+import org.apache.dubbo.rpc.cluster.directory.StaticDirectory;
+
+public class StaticDirectoryStrategy implements DirectoryStrategy {
+
+ @Override
+ public ClusterInvokerFactory.DirectoryNames name() {
+ return ClusterInvokerFactory.DirectoryNames.STATIC;
+ }
+
+ @Override
+ public Directory createDirectory(ClusterInvokerFactory.ClusterInvokerConfig clusterInvokerConfig) {
+ return new StaticDirectory(clusterInvokerConfig.getServiceUrl(),clusterInvokerConfig.getInvokersToJoin());
+ }
+}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java
index cfd36e1254..5e6291d9ff 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java
@@ -23,8 +23,6 @@ import org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster;
public class ZoneAwareCluster extends AbstractCluster {
- public final static String NAME = "zone-aware";
-
@Override
protected AbstractClusterInvoker doJoin(Directory directory) throws RpcException {
return new ZoneAwareClusterInvoker(directory);
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/wrapper/ScopeClusterInvoker.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/wrapper/ScopeClusterInvoker.java
index d1d47645f7..da94590a43 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/wrapper/ScopeClusterInvoker.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/wrapper/ScopeClusterInvoker.java
@@ -49,6 +49,7 @@ 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.apache.dubbo.rpc.Constants.SCOPE_REMOTE;
+import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER;
import static org.apache.dubbo.rpc.cluster.Constants.PEER_KEY;
/**
@@ -291,7 +292,7 @@ public class ScopeClusterInvoker implements ClusterInvoker, ExporterChange
Invoker> invoker = protocolSPI.refer(getInterface(), consumerUrl);
List> invokers = new ArrayList<>();
invokers.add(invoker);
- injvmInvoker = Cluster.getCluster(url.getScopeModel(), Cluster.DEFAULT, false).join(new StaticDirectory(url, invokers), true);
+ injvmInvoker = Cluster.getCluster(url.getScopeModel(), DEFAULT_CLUSTER, false).join(new StaticDirectory(url, invokers), true);
}
}
}
diff --git a/dubbo-cluster/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator b/dubbo-cluster/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator
new file mode 100644
index 0000000000..44ac4c6c49
--- /dev/null
+++ b/dubbo-cluster/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator
@@ -0,0 +1,2 @@
+interface=org.apache.dubbo.config.validator.InterfaceConfigValidator
+method=org.apache.dubbo.config.validator.MethodConfigValidator
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/context/ApplicationContext.java b/dubbo-common/src/main/java/org/apache/dubbo/config/deploy/context/ApplicationContext.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/context/ApplicationContext.java
rename to dubbo-common/src/main/java/org/apache/dubbo/config/deploy/context/ApplicationContext.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/Lifecycle.java b/dubbo-common/src/main/java/org/apache/dubbo/config/deploy/lifecycle/Lifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/Lifecycle.java
rename to dubbo-common/src/main/java/org/apache/dubbo/config/deploy/lifecycle/Lifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationLifecycle.java b/dubbo-common/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationLifecycle.java
similarity index 93%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationLifecycle.java
rename to dubbo-common/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationLifecycle.java
index 08aaeb2060..2ea7555c07 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationLifecycle.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationLifecycle.java
@@ -18,6 +18,7 @@ package org.apache.dubbo.config.deploy.lifecycle.application;
import org.apache.dubbo.common.deploy.ApplicationDeployListener;
import org.apache.dubbo.common.deploy.DeployState;
+import org.apache.dubbo.common.extension.ExtensionScope;
import org.apache.dubbo.common.extension.SPI;
import org.apache.dubbo.config.deploy.context.ApplicationContext;
import org.apache.dubbo.config.deploy.lifecycle.Lifecycle;
@@ -29,10 +30,10 @@ import org.apache.dubbo.rpc.model.ModuleModel;
* Used in an application Lifecycle managing procedure, and dubbo packages
* can implement this interface to define what to do when application status changes.
*
- * Note: If you want to auto registry some extensions to BeanFactory, use {@link ApplicationDeployListener} instead.
+ * Note: If you want to auto registry some extensions to BeanFactory that shared in an application, consider use {@link ApplicationDeployListener}.
*
*/
-@SPI
+@SPI(scope = ExtensionScope.APPLICATION)
public interface ApplicationLifecycle extends Lifecycle {
/**
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/manager/ApplicationLifecycleManager.java b/dubbo-common/src/main/java/org/apache/dubbo/config/deploy/lifecycle/manager/ApplicationLifecycleManager.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/manager/ApplicationLifecycleManager.java
rename to dubbo-common/src/main/java/org/apache/dubbo/config/deploy/lifecycle/manager/ApplicationLifecycleManager.java
index 5e39fd3346..6e1a67bc03 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/manager/ApplicationLifecycleManager.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/deploy/lifecycle/manager/ApplicationLifecycleManager.java
@@ -87,7 +87,7 @@ public class ApplicationLifecycleManager{
lifecycles.forEach(applicationLifecycle -> {
if(applicationLifecycle.needInitialize()) {
beanFactory.registerBean(applicationLifecycle);
- sequence.append(applicationLifecycle.getClass().getSimpleName()).append("->");
+ sequence.append(applicationLifecycle.getClass().getSimpleName()).append("-> ");
}
});
sequence.append(" [END]");
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MappingChangedEvent.java b/dubbo-common/src/main/java/org/apache/dubbo/metadata/MappingChangedEvent.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MappingChangedEvent.java
rename to dubbo-common/src/main/java/org/apache/dubbo/metadata/MappingChangedEvent.java
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MappingListener.java b/dubbo-common/src/main/java/org/apache/dubbo/metadata/MappingListener.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MappingListener.java
rename to dubbo-common/src/main/java/org/apache/dubbo/metadata/MappingListener.java
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java b/dubbo-common/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java
similarity index 62%
rename from dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java
rename to dubbo-common/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java
index 8987249053..2f1a0eb0bb 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java
@@ -17,20 +17,13 @@
package org.apache.dubbo.metadata;
import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.constants.RegistryConstants;
import org.apache.dubbo.common.extension.SPI;
-import org.apache.dubbo.common.utils.CollectionUtils;
-import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.rpc.model.ScopeModel;
import org.apache.dubbo.rpc.model.ScopeModelUtil;
import org.apache.dubbo.rpc.service.Destroyable;
-import java.util.Arrays;
import java.util.Set;
-import java.util.TreeSet;
-import static java.util.Collections.emptySet;
-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR;
import static org.apache.dubbo.common.extension.ExtensionScope.APPLICATION;
/**
@@ -59,46 +52,6 @@ public interface ServiceNameMapping extends Destroyable {
return ScopeModelUtil.getApplicationModel(scopeModel).getDefaultExtension(ServiceNameMapping.class);
}
- static String buildMappingKey(URL url) {
- return buildGroup(url.getServiceInterface());
- }
-
- static String buildGroup(String serviceInterface) {
- //the issue : https://github.com/apache/dubbo/issues/4671
-// return DEFAULT_MAPPING_GROUP + SLASH + serviceInterface;
- return serviceInterface;
- }
-
- static String toStringKeys(Set serviceNames) {
- if (CollectionUtils.isEmpty(serviceNames)) {
- return "";
- }
-
- StringBuilder builder = new StringBuilder();
- for (String n : serviceNames) {
- builder.append(n);
- builder.append(COMMA_SEPARATOR);
- }
-
- builder.deleteCharAt(builder.length() - 1);
- return builder.toString();
- }
-
- static Set getAppNames(String content) {
- if (StringUtils.isBlank(content)) {
- return emptySet();
- }
- return new TreeSet<>(Arrays.asList(content.split(COMMA_SEPARATOR)));
- }
-
- static Set getMappingByUrl(URL consumerURL) {
- String providedBy = consumerURL.getParameter(RegistryConstants.PROVIDED_BY);
- if(StringUtils.isBlank(providedBy)) {
- return null;
- }
- return AbstractServiceNameMapping.parseServices(providedBy);
- }
-
/**
* Get the latest mapping result from remote center and register listener at the same time to get notified once mapping changes.
*
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/registry/ApplicationMetadataUpdater.java b/dubbo-common/src/main/java/org/apache/dubbo/registry/ApplicationMetadataUpdater.java
new file mode 100644
index 0000000000..fc422fecf0
--- /dev/null
+++ b/dubbo-common/src/main/java/org/apache/dubbo/registry/ApplicationMetadataUpdater.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.dubbo.registry;
+
+import org.apache.dubbo.rpc.model.ApplicationModel;
+
+/**
+ * Provides a way to access ServiceInstanceMetadataUtils without importing registry-api.
+ */
+public interface ApplicationMetadataUpdater {
+
+ /**
+ * Refresh service metadata of an application.
+ */
+ void refreshMetadataAndInstance(ApplicationModel applicationModel);
+}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Configurator.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/Configurator.java
similarity index 100%
rename from dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/Configurator.java
rename to dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/Configurator.java
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/ConfiguratorFactory.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/ConfiguratorFactory.java
similarity index 100%
rename from dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/ConfiguratorFactory.java
rename to dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/ConfiguratorFactory.java
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/Constants.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/Constants.java
index ab8c50b568..4a5901d185 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/Constants.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/Constants.java
@@ -139,4 +139,8 @@ public interface Constants {
String RULE_VERSION_V27 = "v2.7";
String RULE_VERSION_V30 = "v3.0";
+
+ String ZONE_AWARE_CLUSTER_NAME = "zone-aware";
+
+ String DEFAULT_CLUSTER = "failover";
}
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/ProviderURLMergeProcessor.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/ProviderURLMergeProcessor.java
similarity index 100%
rename from dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/ProviderURLMergeProcessor.java
rename to dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/ProviderURLMergeProcessor.java
diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/ClusterUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/support/ClusterUtils.java
similarity index 100%
rename from dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/ClusterUtils.java
rename to dubbo-common/src/main/java/org/apache/dubbo/rpc/cluster/support/ClusterUtils.java
diff --git a/dubbo-config/dubbo-config-api/pom.xml b/dubbo-config/dubbo-config-api/pom.xml
index a6a2ff4e22..8d87467605 100644
--- a/dubbo-config/dubbo-config-api/pom.xml
+++ b/dubbo-config/dubbo-config-api/pom.xml
@@ -30,53 +30,6 @@
false
-
- org.apache.dubbo
- dubbo-registry-api
- ${project.parent.version}
-
-
-
- org.apache.dubbo
- dubbo-metadata-api
- ${project.parent.version}
-
-
-
- org.apache.dubbo
- dubbo-metrics-api
- ${project.parent.version}
-
-
-
- org.apache.dubbo
- dubbo-metrics-default
- ${project.parent.version}
-
-
-
- org.apache.dubbo
- dubbo-metrics-registry
- ${project.parent.version}
-
-
-
- org.apache.dubbo
- dubbo-metrics-metadata
- ${project.parent.version}
-
-
-
- org.apache.dubbo
- dubbo-metrics-config-center
- ${project.parent.version}
-
-
-
- org.apache.dubbo
- dubbo-tracing
- ${project.parent.version}
-
org.apache.dubbo
@@ -85,7 +38,8 @@
org.apache.dubbo
- dubbo-remoting-api
+
+ dubbo-metrics-api
${project.parent.version}
@@ -113,13 +67,6 @@
test
-
- org.apache.dubbo
- dubbo-rpc-rest
- ${project.parent.version}
- test
-
-
org.apache.dubbo
dubbo-remoting-netty4
@@ -141,20 +88,6 @@
test
-
- org.apache.dubbo
- dubbo-registry-multicast
- ${project.parent.version}
- test
-
-
-
- org.apache.dubbo
- dubbo-registry-zookeeper
- ${project.parent.version}
- test
-
-
org.apache.curator
curator-framework
@@ -171,53 +104,6 @@
test
-
- org.apache.dubbo
- dubbo-registry-nacos
- ${project.parent.version}
- test
-
-
-
- org.apache.dubbo
- dubbo-metadata-report-zookeeper
- ${project.parent.version}
- test
-
-
- com.google.guava
- guava
-
-
-
-
-
- org.apache.dubbo
- dubbo-metadata-report-redis
- ${project.parent.version}
- test
-
-
-
- org.apache.dubbo
- dubbo-configcenter-zookeeper
- ${project.parent.version}
- test
-
-
-
- org.apache.dubbo
- dubbo-configcenter-nacos
- ${project.parent.version}
- test
-
-
- com.google.guava
- guava
-
-
-
-
org.apache.dubbo
dubbo-filter-cache
@@ -259,6 +145,5 @@
test
-
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 a194968afd..b0472080a6 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
@@ -35,13 +35,11 @@ import org.apache.dubbo.config.annotation.Reference;
import org.apache.dubbo.config.support.Parameter;
import org.apache.dubbo.config.utils.ConfigValidationUtils;
import org.apache.dubbo.metadata.MetadataPublisher;
+import org.apache.dubbo.rpc.cluster.ClusterInvokerFactory;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.Protocol;
import org.apache.dubbo.rpc.ProxyFactory;
-import org.apache.dubbo.rpc.cluster.Cluster;
-import org.apache.dubbo.rpc.cluster.directory.StaticDirectory;
import org.apache.dubbo.rpc.cluster.support.ClusterUtils;
-import org.apache.dubbo.rpc.cluster.support.registry.ZoneAwareCluster;
import org.apache.dubbo.rpc.model.AsyncMethodInfo;
import org.apache.dubbo.rpc.model.ConsumerModel;
import org.apache.dubbo.rpc.model.DubboStub;
@@ -99,8 +97,10 @@ import static org.apache.dubbo.registry.Constants.CONSUMER_PROTOCOL;
import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;
import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;
import static org.apache.dubbo.rpc.Constants.LOCAL_PROTOCOL;
+import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER;
import static org.apache.dubbo.rpc.cluster.Constants.PEER_KEY;
import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;
+import static org.apache.dubbo.rpc.cluster.Constants.ZONE_AWARE_CLUSTER_NAME;
/**
* Please avoid using this class for any new application,
@@ -615,6 +615,7 @@ public class ReferenceConfig extends ReferenceConfigBase {
*/
@SuppressWarnings({"unchecked", "rawtypes"})
private void createInvoker() {
+ ClusterInvokerFactory clusterInvokerFactory = getScopeModel().getBeanFactory().getBean(ClusterInvokerFactory.class);
if (urls.size() == 1) {
URL curUrl = urls.get(0);
invoker = protocolSPI.refer(interfaceClass, curUrl);
@@ -623,7 +624,9 @@ public class ReferenceConfig extends ReferenceConfigBase {
!curUrl.getParameter(UNLOAD_CLUSTER_RELATED, false)) {
List> invokers = new ArrayList<>();
invokers.add(invoker);
- invoker = Cluster.getCluster(getScopeModel(), Cluster.DEFAULT).join(new StaticDirectory(curUrl, invokers), true);
+ invoker = clusterInvokerFactory.getInvoker(
+ new ClusterInvokerFactory.ClusterInvokerConfig(getScopeModel(),DEFAULT_CLUSTER,curUrl,invokers,true,true)
+ );
}
} else {
List> invokers = new ArrayList<>();
@@ -642,18 +645,22 @@ public class ReferenceConfig extends ReferenceConfigBase {
if (registryUrl != null) {
// registry url is available
// for multi-subscription scenario, use 'zone-aware' policy by default
- String cluster = registryUrl.getParameter(CLUSTER_KEY, ZoneAwareCluster.NAME);
+ String cluster = registryUrl.getParameter(CLUSTER_KEY, ZONE_AWARE_CLUSTER_NAME);
// The invoker wrap sequence would be: ZoneAwareClusterInvoker(StaticDirectory) -> FailoverClusterInvoker
// (RegistryDirectory, routing happens here) -> Invoker
- invoker = Cluster.getCluster(registryUrl.getScopeModel(), cluster, false).join(new StaticDirectory(registryUrl, invokers), false);
+ invoker = clusterInvokerFactory.getInvoker(
+ new ClusterInvokerFactory.ClusterInvokerConfig(registryUrl.getScopeModel(), cluster, registryUrl, invokers)
+ );
} else {
// not a registry url, must be direct invoke.
if (CollectionUtils.isEmpty(invokers)) {
throw new IllegalArgumentException("invokers == null");
}
URL curUrl = invokers.get(0).getUrl();
- String cluster = curUrl.getParameter(CLUSTER_KEY, Cluster.DEFAULT);
- invoker = Cluster.getCluster(getScopeModel(), cluster).join(new StaticDirectory(curUrl, invokers), true);
+ String cluster = curUrl.getParameter(CLUSTER_KEY, DEFAULT_CLUSTER);
+ invoker = clusterInvokerFactory.getInvoker(
+ new ClusterInvokerFactory.ClusterInvokerConfig(getScopeModel(), cluster, curUrl, invokers, true, true)
+ );
}
}
}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
index 954ac84b35..e8cc16b326 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
@@ -559,6 +559,7 @@ public class ServiceConfig extends ServiceConfigBase {
String [] methods = Optional.ofNullable(url.getParameter(METHODS_KEY)).map(i->i.split(",")).orElse( new String[]{});
Arrays.stream(methods).forEach( method-> {
RpcInvocation invocation = new RpcInvocation(url.getServiceKey(),url.getServiceModel(),method,interfaceName, url.getProtocolServiceKey(), null, null,null,null,null,null);
+ //TODO: this event depends on too much outer API.
MetricsEventBus.publish(MetricsInitEvent.toMetricsInitEvent(application.getApplicationModel(),invocation));
});
}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultMetricsServiceExporter.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultMetricsServiceExporter.java
index c770e5350a..750c5c7b6d 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultMetricsServiceExporter.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/DefaultMetricsServiceExporter.java
@@ -34,6 +34,7 @@ import java.util.concurrent.ExecutorService;
import static org.apache.dubbo.common.constants.LoggerCodeConstants.COMMON_METRICS_COLLECTOR_EXCEPTION;
import static org.apache.dubbo.common.constants.MetricsConstants.PROTOCOL_PROMETHEUS;
+//TODO: move to metrics-default
/**
* Export metrics service
*/
diff --git a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener b/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener
deleted file mode 100644
index 00747010b4..0000000000
--- a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener
+++ /dev/null
@@ -1 +0,0 @@
-exporter=org.apache.dubbo.config.metadata.ExporterDeployListener
diff --git a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator b/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator
index 6ab0e95080..239b340748 100644
--- a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator
+++ b/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator
@@ -1,7 +1,5 @@
config-center=org.apache.dubbo.config.validator.ConfigCenterConfigValidator
consumer=org.apache.dubbo.config.validator.ConsumerConfigValidator
-interface=org.apache.dubbo.config.validator.InterfaceConfigValidator
-method=org.apache.dubbo.config.validator.MethodConfigValidator
provider=org.apache.dubbo.config.validator.ProviderConfigValidator
reference=org.apache.dubbo.config.validator.ReferenceConfigValidator
service=org.apache.dubbo.config.validator.ServiceConfigValidator
diff --git a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle b/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle
index 8e806008f2..cce039a428 100644
--- a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle
+++ b/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle
@@ -1,6 +1,5 @@
config-pre-handle=org.apache.dubbo.config.deploy.lifecycle.application.ApplicationConfigPreHandleLifecycle
config-post-handle=org.apache.dubbo.config.deploy.lifecycle.application.ApplicationConfigPostHandleLifecycle
module-initialize=org.apache.dubbo.config.deploy.lifecycle.application.ModuleInitializeLifecycle
-post-offline=org.apache.dubbo.config.deploy.lifecycle.application.ApplicationPostOfflineLifecycle
app-prepare=org.apache.dubbo.config.deploy.lifecycle.application.ApplicationPrepareLifecycle
validator-registry=org.apache.dubbo.config.deploy.lifecycle.application.ValidatorRegistryDeployListener
diff --git a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer b/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer
deleted file mode 100644
index f3cb706ad6..0000000000
--- a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer
+++ /dev/null
@@ -1 +0,0 @@
-metadata-url=org.apache.dubbo.config.metadata.MetadataServiceURLParamsMetadataCustomizer
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConfigValidatorExistTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConfigValidatorExistTest.java
index 980ce01583..a080e83826 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConfigValidatorExistTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConfigValidatorExistTest.java
@@ -19,8 +19,6 @@ package org.apache.dubbo.config;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.config.validator.ConsumerConfigValidator;
-import org.apache.dubbo.config.validator.InterfaceConfigValidator;
-import org.apache.dubbo.config.validator.MethodConfigValidator;
import org.apache.dubbo.config.validator.ProviderConfigValidator;
import org.apache.dubbo.config.validator.ReferenceConfigValidator;
import org.apache.dubbo.config.validator.ServiceConfigValidator;
@@ -48,19 +46,15 @@ public class ConfigValidatorExistTest {
validateFacade = new ConfigValidateFacade(applicationModel);
Assertions.assertNotNull(validateFacade);
- Assertions.assertTrue(validateFacade.getValidators().size() >= 7);
+ Assertions.assertTrue(validateFacade.getValidators().size() >= 4);
try(
- MockedStatic configValidatorMockedStatic = Mockito.mockStatic(ConsumerConfigValidator.class);
- MockedStatic interfaceConfigValidatorMockedStatic = Mockito.mockStatic(InterfaceConfigValidator.class);
- MockedStatic methodConfigValidatorMockedStatic = Mockito.mockStatic(MethodConfigValidator.class);
- MockedStatic providerConfigValidatorMockedStatic = Mockito.mockStatic(ProviderConfigValidator.class);
- MockedStatic referenceConfigValidatorMockedStatic = Mockito.mockStatic(ReferenceConfigValidator.class);
- MockedStatic serviceConfigValidatorMockedStatic = Mockito.mockStatic(ServiceConfigValidator.class);
+ MockedStatic configValidatorMockedStatic = Mockito.mockStatic(ConsumerConfigValidator.class);
+ MockedStatic providerConfigValidatorMockedStatic = Mockito.mockStatic(ProviderConfigValidator.class);
+ MockedStatic referenceConfigValidatorMockedStatic = Mockito.mockStatic(ReferenceConfigValidator.class);
+ MockedStatic serviceConfigValidatorMockedStatic = Mockito.mockStatic(ServiceConfigValidator.class);
){
configValidatorMockedStatic.when(()-> ConsumerConfigValidator.validateConsumerConfig(any())).thenCallRealMethod();
- interfaceConfigValidatorMockedStatic.when(()-> InterfaceConfigValidator.validateAbstractInterfaceConfig(any())).thenCallRealMethod();
- methodConfigValidatorMockedStatic.when(()-> MethodConfigValidator.validateMethodConfig(any())).thenCallRealMethod();
providerConfigValidatorMockedStatic.when(()-> ProviderConfigValidator.validateProviderConfig(any())).thenCallRealMethod();
referenceConfigValidatorMockedStatic.when(()-> ReferenceConfigValidator.validateReferenceConfig(any())).thenCallRealMethod();
serviceConfigValidatorMockedStatic.when(()->ServiceConfigValidator.validateServiceConfig(any())).thenCallRealMethod();
@@ -77,8 +71,6 @@ public class ConfigValidatorExistTest {
triggerValidate(new ServiceConfig<>());
configValidatorMockedStatic.verify(()-> ConsumerConfigValidator.validateConsumerConfig(any()),atLeastOnce());
- interfaceConfigValidatorMockedStatic.verify(()-> InterfaceConfigValidator.validateAbstractInterfaceConfig(any()),atLeastOnce());
- methodConfigValidatorMockedStatic.verify(()->MethodConfigValidator.validateMethodConfig(any()),atLeastOnce());
providerConfigValidatorMockedStatic.verify(()->ProviderConfigValidator.validateProviderConfig(any()),atLeastOnce());
referenceConfigValidatorMockedStatic.verify(()->ReferenceConfigValidator.validateReferenceConfig(any()),atLeastOnce());
serviceConfigValidatorMockedStatic.verify(()-> ServiceConfigValidator.validateServiceConfig(any()),atLeastOnce());
diff --git a/dubbo-config/dubbo-config-spring/pom.xml b/dubbo-config/dubbo-config-spring/pom.xml
index 7386984c15..c5fc7ee860 100644
--- a/dubbo-config/dubbo-config-spring/pom.xml
+++ b/dubbo-config/dubbo-config-spring/pom.xml
@@ -31,7 +31,6 @@
-
org.apache.dubbo
@@ -254,6 +253,7 @@
curator-x-discovery
test
+
org.apache.zookeeper
zookeeper
@@ -278,6 +278,12 @@
nacos-client
test
+
+ org.apache.dubbo
+ dubbo-test-common
+ ${project.parent.version}
+ test
+
@@ -294,7 +300,6 @@
-
maven-surefire-plugin
diff --git a/dubbo-config/dubbo-config-spring6/pom.xml b/dubbo-config/dubbo-config-spring6/pom.xml
index 580d854ed4..11ec665297 100644
--- a/dubbo-config/dubbo-config-spring6/pom.xml
+++ b/dubbo-config/dubbo-config-spring6/pom.xml
@@ -70,6 +70,12 @@
javax.servlet-api
provided
+
+ org.apache.dubbo
+ dubbo-test-common
+ ${project.parent.version}
+ test
+
org.springframework.boot
diff --git a/dubbo-config/dubbo-config-test/pom.xml b/dubbo-config/dubbo-config-test/pom.xml
new file mode 100644
index 0000000000..d22562639e
--- /dev/null
+++ b/dubbo-config/dubbo-config-test/pom.xml
@@ -0,0 +1,279 @@
+
+
+
+ org.apache.dubbo
+ dubbo-config
+ ${revision}
+
+ 4.0.0
+
+ dubbo-config-test
+
+
+ false
+
+
+
+
+
+ org.apache.dubbo
+ dubbo-config-api
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-registry-api
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-metadata-api
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-api
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-default
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-registry
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-metadata
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-config-center
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-tracing
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-monitor-api
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-remoting-api
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-rpc-api
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-rpc-injvm
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-rpc-dubbo
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-rpc-triple
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-rpc-rest
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-remoting-netty4
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-serialization-hessian2
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-serialization-fastjson2
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-registry-multicast
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-registry-zookeeper
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-registry-nacos
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-metadata-report-zookeeper
+ ${project.parent.version}
+ test
+
+
+ com.google.guava
+ guava
+
+
+
+
+
+ org.apache.dubbo
+ dubbo-metadata-report-redis
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-configcenter-zookeeper
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-configcenter-nacos
+ ${project.parent.version}
+ test
+
+
+ com.google.guava
+ guava
+
+
+
+
+
+ org.apache.dubbo
+ dubbo-filter-cache
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-filter-validation
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-plugin-router-condition
+ ${project.parent.version}
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-plugin-router-tag
+ ${project.parent.version}
+ test
+
+
+
+ org.testcontainers
+ testcontainers
+ 1.19.0
+ test
+
+
+
+ org.jboss.resteasy
+ resteasy-jackson-provider
+ test
+
+
+
+ org.apache.dubbo
+ dubbo-test-common
+ ${project.parent.version}
+ test
+
+
+
+
+
\ No newline at end of file
diff --git a/dubbo-config/dubbo-config-api/src/test/java/demo/MultiClassLoaderService.java b/dubbo-config/dubbo-config-test/src/test/java/demo/MultiClassLoaderService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/demo/MultiClassLoaderService.java
rename to dubbo-config/dubbo-config-test/src/test/java/demo/MultiClassLoaderService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/demo/MultiClassLoaderServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/demo/MultiClassLoaderServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/demo/MultiClassLoaderServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/demo/MultiClassLoaderServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/demo/MultiClassLoaderServiceRequest.java b/dubbo-config/dubbo-config-test/src/test/java/demo/MultiClassLoaderServiceRequest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/demo/MultiClassLoaderServiceRequest.java
rename to dubbo-config/dubbo-config-test/src/test/java/demo/MultiClassLoaderServiceRequest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/demo/MultiClassLoaderServiceResult.java b/dubbo-config/dubbo-config-test/src/test/java/demo/MultiClassLoaderServiceResult.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/demo/MultiClassLoaderServiceResult.java
rename to dubbo-config/dubbo-config-test/src/test/java/demo/MultiClassLoaderServiceResult.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ApplicationConfigTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ApplicationConfigTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ApplicationConfigTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ApplicationConfigTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConfigCenterConfigTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ConfigCenterConfigTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConfigCenterConfigTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ConfigCenterConfigTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConsumerConfigTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ConsumerConfigTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ConsumerConfigTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ConsumerConfigTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/DubboShutdownHookTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/DubboShutdownHookTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/DubboShutdownHookTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/DubboShutdownHookTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/MethodConfigTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/MethodConfigTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/MethodConfigTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/MethodConfigTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ProtocolConfigTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ProtocolConfigTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ProtocolConfigTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ProtocolConfigTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
index 5412f39e22..677481093c 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
+++ b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
@@ -37,7 +37,6 @@ import org.apache.dubbo.rpc.Protocol;
import org.apache.dubbo.rpc.ProxyFactory;
import org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder;
import org.apache.dubbo.rpc.cluster.support.registry.ZoneAwareClusterInvoker;
-//import org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker;
import org.apache.dubbo.rpc.cluster.support.wrapper.ScopeClusterInvoker;
import org.apache.dubbo.rpc.listener.ListenerInvokerWrapper;
import org.apache.dubbo.rpc.model.ApplicationModel;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/RegistryConfigTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/RegistryConfigTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/RegistryConfigTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/RegistryConfigTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/SysProps.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/SysProps.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/SysProps.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/SysProps.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/Box.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/Box.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/Box.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/Box.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/DemoException.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/DemoException.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/DemoException.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/DemoException.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/DemoService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/DemoService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/DemoService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/DemoService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/Greeting.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/Greeting.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/Greeting.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/Greeting.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/User.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/User.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/api/User.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/api/User.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceConsumerBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceConsumerBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceConsumerBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceConsumerBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceProviderBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceProviderBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceProviderBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/ConsulDubboServiceProviderBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java
similarity index 97%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java
index 83793deab2..203a0a8a35 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java
+++ b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapTest.java
@@ -31,8 +31,8 @@ import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.config.SysProps;
import org.apache.dubbo.config.api.DemoService;
import org.apache.dubbo.config.deploy.DefaultApplicationDeployer;
-import org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;
-import org.apache.dubbo.config.metadata.ExporterDeployListener;
+import org.apache.dubbo.metadata.deploy.ConfigurableMetadataServiceExporter;
+import org.apache.dubbo.metadata.deploy.ExporterDeployListener;
import org.apache.dubbo.config.provider.impl.DemoServiceImpl;
import org.apache.dubbo.config.utils.ConfigValidationUtils;
import org.apache.dubbo.config.validator.ApplicationConfigValidator;
@@ -295,11 +295,11 @@ class DubboBootstrapTest {
Exception exception = null;
try {
DubboBootstrap.getInstance()
- .application(applicationConfig)
- .registry(registryConfig)
- .protocol(new ProtocolConfig(CommonConstants.DUBBO_PROTOCOL, -1))
- .service(service)
- .start();
+ .application(applicationConfig)
+ .registry(registryConfig)
+ .protocol(new ProtocolConfig(CommonConstants.DUBBO_PROTOCOL, -1))
+ .service(service)
+ .start();
} catch (Exception e) {
exception = e;
DubboBootstrap.reset();
@@ -367,5 +367,4 @@ class DubboBootstrapTest {
public static class InterfaceConfig extends AbstractInterfaceConfig {
}
-
-}
+}
\ No newline at end of file
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceConsumerBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceConsumerBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceConsumerBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceConsumerBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderMinimumBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderMinimumBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderMinimumBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/DubboServiceProviderMinimumBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/EchoService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/EchoService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/EchoService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/EchoService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/EchoServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/EchoServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/EchoServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/EchoServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceConsumerBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceConsumerBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceConsumerBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceConsumerBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceProviderBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceProviderBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceProviderBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/EtcdDubboServiceProviderBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/MultiInstanceTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/MultiInstanceTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/MultiInstanceTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/MultiInstanceTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceConsumerBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceConsumerBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceConsumerBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceConsumerBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceProviderBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceProviderBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceProviderBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/NacosDubboServiceProviderBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceConsumerBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceConsumerBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceConsumerBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceConsumerBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceProviderBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceProviderBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceProviderBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/ZookeeperDubboServiceProviderBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ApplicationBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ApplicationBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ApplicationBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ApplicationBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ArgumentBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ArgumentBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ArgumentBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ArgumentBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConsumerBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConsumerBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConsumerBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConsumerBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MethodBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/MethodBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MethodBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/MethodBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ModuleBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ModuleBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ModuleBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ModuleBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MonitorBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/MonitorBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MonitorBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/MonitorBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProtocolBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProtocolBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProtocolBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProtocolBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProviderBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProviderBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProviderBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProviderBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ReferenceBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ReferenceBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ReferenceBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ReferenceBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/RegistryBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/RegistryBuilderTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/RegistryBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/RegistryBuilderTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java
index cb22a45cdf..bfbaf599d5 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java
+++ b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java
@@ -19,7 +19,6 @@ package org.apache.dubbo.config.bootstrap.builders;
import org.apache.dubbo.config.MethodConfig;
import org.apache.dubbo.config.ProviderConfig;
import org.apache.dubbo.config.ServiceConfig;
-
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/compatible/DubboInterfaceConsumerBootstrap.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/compatible/DubboInterfaceConsumerBootstrap.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/compatible/DubboInterfaceConsumerBootstrap.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/compatible/DubboInterfaceConsumerBootstrap.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/rest/User.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/rest/User.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/rest/User.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/rest/User.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/bootstrap/rest/UserServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterExporterListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterExporterListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterExporterListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterExporterListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/AbstractRegistryCenterServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/Constants.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/Constants.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/Constants.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/Constants.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/IntegrationTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/IntegrationTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/IntegrationTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/IntegrationTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/AbstractStorage.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/AbstractStorage.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/AbstractStorage.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/AbstractStorage.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/Storage.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/Storage.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/Storage.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/Storage.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataExporterListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataExporterListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataExporterListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataExporterListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataIntegrationTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataIntegrationTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataIntegrationTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataIntegrationTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportmetadata/MultipleRegistryCenterExportMetadataServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderExporterListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderExporterListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderExporterListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderExporterListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderFilter.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderFilter.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderFilter.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderFilter.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderIntegrationTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderRegistryProtocolListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderRegistryProtocolListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderRegistryProtocolListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderRegistryProtocolListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/exportprovider/MultipleRegistryCenterExportProviderServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmExporterListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmExporterListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmExporterListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmExporterListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmFilter.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmFilter.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmFilter.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmFilter.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java
index 227eaf2718..34f94e2386 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java
+++ b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmIntegrationTest.java
@@ -155,8 +155,8 @@ class MultipleRegistryCenterInjvmIntegrationTest implements IntegrationTest {
MultipleRegistryCenterInjvmService.class);
// The MultipleRegistryCenterInjvmService is exported
Assertions.assertTrue(serviceListener.getExportedServices().get(0).isExported());
- // The exported exporter is only one
- Assertions.assertEquals(exporterListener.getExportedExporters().size(), 3);
+ // There have three exported exporters.
+ Assertions.assertEquals(3,exporterListener.getExportedExporters().size());
// The exported exporter contains MultipleRegistryCenterInjvmFilter
Assertions.assertTrue(exporterListener.getFilters().contains(filter));
}
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/injvm/MultipleRegistryCenterInjvmServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/package-info.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/package-info.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/package-info.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/package-info.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryIntegrationTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryRegistryServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryRegistryServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryRegistryServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryRegistryServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/MultipleRegistryCenterServiceDiscoveryRegistryServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryInfoWrapper.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryInfoWrapper.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryInfoWrapper.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryInfoWrapper.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryStorage.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryStorage.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryStorage.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/multiple/servicediscoveryregistry/ServiceDiscoveryRegistryStorage.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterDubboProtocolIntegrationTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterDubboProtocolIntegrationTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterDubboProtocolIntegrationTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterDubboProtocolIntegrationTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterExportedServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterExportedServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterExportedServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterExportedServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/SingleRegistryCenterIntegrationServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataExporterListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataExporterListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataExporterListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataExporterListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataIntegrationTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataIntegrationTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataIntegrationTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataIntegrationTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportmetadata/SingleRegistryCenterExportMetadataServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderExporterListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderExporterListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderExporterListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderExporterListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderFilter.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderFilter.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderFilter.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderFilter.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderIntegrationTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderRegistryProtocolListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderRegistryProtocolListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderRegistryProtocolListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderRegistryProtocolListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/exportprovider/SingleRegistryCenterExportProviderServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmExporterListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmExporterListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmExporterListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmExporterListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmFilter.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmFilter.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmFilter.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmFilter.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java
index b313d4461a..329c31e571 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java
+++ b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmIntegrationTest.java
@@ -155,8 +155,8 @@ class SingleRegistryCenterInjvmIntegrationTest implements IntegrationTest {
SingleRegistryCenterInjvmService.class);
// The SingleRegistryCenterInjvmService is exported
Assertions.assertTrue(serviceListener.getExportedServices().get(0).isExported());
- // The exported exporter is only one
- Assertions.assertEquals(exporterListener.getExportedExporters().size(), 3);
+ // There have three exported exporters
+ Assertions.assertEquals(3,exporterListener.getExportedExporters().size());
// The exported exporter contains SingleRegistryCenterInjvmFilter
Assertions.assertTrue(exporterListener.getFilters().contains(filter));
}
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/injvm/SingleRegistryCenterInjvmServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/package-info.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/package-info.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/integration/single/package-info.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/integration/single/package-info.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvokerTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvokerTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvokerTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvokerTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizerTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizerTest.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizerTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizerTest.java
index f8361128d5..af9834ad16 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizerTest.java
+++ b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizerTest.java
@@ -25,6 +25,7 @@ import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.config.api.DemoService;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
import org.apache.dubbo.config.provider.impl.DemoServiceImpl;
+import org.apache.dubbo.metadata.deploy.MetadataServiceURLParamsMetadataCustomizer;
import org.apache.dubbo.registry.client.DefaultServiceInstance;
import org.apache.dubbo.rpc.model.ApplicationModel;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/GreetingLocal1.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/GreetingLocal1.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/GreetingLocal1.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/GreetingLocal1.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/GreetingLocal2.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/GreetingLocal2.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/GreetingLocal2.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/GreetingLocal2.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/GreetingLocal3.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/GreetingLocal3.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/GreetingLocal3.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/GreetingLocal3.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockCluster.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockCluster.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockCluster.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockCluster.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockCodec.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockCodec.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockCodec.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockCodec.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockDispatcher.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockDispatcher.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockDispatcher.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockDispatcher.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockExchanger.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockExchanger.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockExchanger.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockExchanger.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockExporterListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockExporterListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockExporterListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockExporterListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockFilter.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockFilter.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockFilter.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockFilter.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockInvokerListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockInvokerListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockInvokerListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockInvokerListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockLoadBalance.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockLoadBalance.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockLoadBalance.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockLoadBalance.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockProtocol.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockProtocol.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockProtocol.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockProtocol.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockProtocol2.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockProtocol2.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockProtocol2.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockProtocol2.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockProxyFactory.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockProxyFactory.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockProxyFactory.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockProxyFactory.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockRegistry.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockRegistry.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockRegistry.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockRegistry.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory2.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory2.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory2.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockRegistryFactory2.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockServiceDiscovery.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockServiceDiscovery.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockServiceDiscovery.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockServiceDiscovery.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockServiceListener.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockServiceListener.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockServiceListener.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockServiceListener.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockStatusChecker.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockStatusChecker.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockStatusChecker.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockStatusChecker.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockTelnetHandler.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockTelnetHandler.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockTelnetHandler.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockTelnetHandler.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockThreadPool.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockThreadPool.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockThreadPool.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockThreadPool.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockTransporter.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockTransporter.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockTransporter.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/MockTransporter.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/TestProxyFactory.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/TestProxyFactory.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/TestProxyFactory.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/mock/TestProxyFactory.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/provider/impl/DemoServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/provider/impl/DemoServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/provider/impl/DemoServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/provider/impl/DemoServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java
similarity index 97%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java
index c07201b78e..90b8148d04 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java
+++ b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java
@@ -16,7 +16,6 @@
*/
package org.apache.dubbo.config.url;
-
import org.apache.dubbo.common.logger.Logger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.config.bootstrap.DubboBootstrap;
@@ -33,9 +32,10 @@ class ExporterSideConfigUrlTest extends UrlTestBase {
private static final Logger log = LoggerFactory.getLogger(ExporterSideConfigUrlTest.class);
+
// ======================================================
// tests start
- // ======================================================
+ // ======================================================
@BeforeAll
public static void start() {
}
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/url/InvokerSideConfigUrlTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/url/InvokerSideConfigUrlTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/url/InvokerSideConfigUrlTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/url/InvokerSideConfigUrlTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/url/RpcConfigGetSetProxy.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/url/RpcConfigGetSetProxy.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/url/RpcConfigGetSetProxy.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/url/RpcConfigGetSetProxy.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/url/UrlTestBase.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/url/UrlTestBase.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/url/UrlTestBase.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/url/UrlTestBase.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/ConfigValidationUtilsTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/ConfigValidationUtilsTest.java
similarity index 84%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/ConfigValidationUtilsTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/ConfigValidationUtilsTest.java
index d5bd6eac65..6d73af70d3 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/ConfigValidationUtilsTest.java
+++ b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/ConfigValidationUtilsTest.java
@@ -19,10 +19,8 @@ package org.apache.dubbo.config.utils;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
import org.apache.dubbo.config.AbstractInterfaceConfig;
import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.MetadataReportConfig;
import org.apache.dubbo.config.exception.ConfigValidationException;
import org.apache.dubbo.config.validator.ApplicationConfigValidator;
-import org.apache.dubbo.config.validator.MetadataConfigValidator;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.mockito.MockedStatic;
@@ -45,31 +43,6 @@ import static org.mockito.Mockito.verify;
class ConfigValidationUtilsTest {
- @Test
- void testValidateMetadataConfig() {
- MetadataReportConfig config = new MetadataReportConfig();
- config.setAddress("protocol://ip:host");
- try {
- MetadataConfigValidator.validateMetadataConfig(config);
- } catch (Exception e) {
- Assertions.fail("valid config expected.");
- }
-
- config.setAddress("ip:host");
- config.setProtocol("protocol");
- try {
- MetadataConfigValidator.validateMetadataConfig(config);
- } catch (Exception e) {
- Assertions.fail("valid config expected.");
- }
-
- config.setAddress("ip:host");
- config.setProtocol(null);
- Assertions.assertThrows(IllegalArgumentException.class, () -> {
- MetadataConfigValidator.validateMetadataConfig(config);
- });
- }
-
@Test
void testValidateApplicationConfig() throws Exception {
try (MockedStatic mockedStatic = Mockito.mockStatic(ApplicationConfigValidator.class);
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/MockReferenceConfig.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/MockReferenceConfig.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/MockReferenceConfig.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/MockReferenceConfig.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/ReferenceCacheTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/ReferenceCacheTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/ReferenceCacheTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/ReferenceCacheTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/XxxMockReferenceConfig.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/XxxMockReferenceConfig.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/XxxMockReferenceConfig.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/XxxMockReferenceConfig.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/service/FooService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/service/FooService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/service/FooService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/service/FooService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/service/FooServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/service/FooServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/service/FooServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/service/FooServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/service/XxxService.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/service/XxxService.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/service/XxxService.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/service/XxxService.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/service/XxxServiceImpl.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/service/XxxServiceImpl.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/utils/service/XxxServiceImpl.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/config/utils/service/XxxServiceImpl.java
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/metadata/MetadataServiceExporterTest.java b/dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/metadata/MetadataServiceExporterTest.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/metadata/MetadataServiceExporterTest.java
rename to dubbo-config/dubbo-config-test/src/test/java/org/apache/dubbo/metadata/MetadataServiceExporterTest.java
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.common.status.StatusChecker b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.common.status.StatusChecker
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.common.status.StatusChecker
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.common.status.StatusChecker
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.common.threadpool.ThreadPool b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.common.threadpool.ThreadPool
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.common.threadpool.ThreadPool
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.common.threadpool.ThreadPool
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.config.ServiceListener b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.config.ServiceListener
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.config.ServiceListener
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.config.ServiceListener
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryFactory b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryFactory
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryFactory
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryFactory
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryServiceListener b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryServiceListener
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryServiceListener
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryServiceListener
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.registry.integration.RegistryProtocolListener b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.registry.integration.RegistryProtocolListener
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.registry.integration.RegistryProtocolListener
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.registry.integration.RegistryProtocolListener
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Codec b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Codec
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Codec
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Codec
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Dispatcher b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Dispatcher
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Dispatcher
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Dispatcher
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Transporter b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Transporter
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Transporter
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.Transporter
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.exchange.Exchanger b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.exchange.Exchanger
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.exchange.Exchanger
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.exchange.Exchanger
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.telnet.TelnetHandler b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.telnet.TelnetHandler
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.remoting.telnet.TelnetHandler
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.remoting.telnet.TelnetHandler
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ExporterListener b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ExporterListener
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ExporterListener
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ExporterListener
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Filter b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Filter
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Filter
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Filter
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.InvokerListener b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.InvokerListener
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.InvokerListener
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.InvokerListener
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Protocol b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Protocol
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Protocol
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.Protocol
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ProxyFactory b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ProxyFactory
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ProxyFactory
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.ProxyFactory
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.Cluster b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.Cluster
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.Cluster
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.Cluster
diff --git a/dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance b/dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance
rename to dubbo-config/dubbo-config-test/src/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance
diff --git a/dubbo-config/dubbo-config-test/src/test/resources/dubbo.properties b/dubbo-config/dubbo-config-test/src/test/resources/dubbo.properties
new file mode 100644
index 0000000000..5cd71b79c2
--- /dev/null
+++ b/dubbo-config/dubbo-config-test/src/test/resources/dubbo.properties
@@ -0,0 +1,3 @@
+dubbo.override.key2=properties
+dubbo.override.protocol=properties
+dubbo.service.shutdown.wait=200
diff --git a/dubbo-config/dubbo-config-test/src/test/resources/log4j.xml b/dubbo-config/dubbo-config-test/src/test/resources/log4j.xml
new file mode 100644
index 0000000000..bfc37a8084
--- /dev/null
+++ b/dubbo-config/dubbo-config-test/src/test/resources/log4j.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/dubbo-config/dubbo-config-test/src/test/resources/security/serialize.allowlist b/dubbo-config/dubbo-config-test/src/test/resources/security/serialize.allowlist
new file mode 100644
index 0000000000..ddd7fa8e4c
--- /dev/null
+++ b/dubbo-config/dubbo-config-test/src/test/resources/security/serialize.allowlist
@@ -0,0 +1,19 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# 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.
+#
+#
+demo.
diff --git a/dubbo-config/pom.xml b/dubbo-config/pom.xml
index 8fe60edd83..50e38fcbf9 100644
--- a/dubbo-config/pom.xml
+++ b/dubbo-config/pom.xml
@@ -33,6 +33,7 @@
dubbo-config-api
dubbo-config-spring
dubbo-config-spring6
+ dubbo-config-test
@@ -42,11 +43,5 @@
${project.parent.version}
test
-
- org.apache.dubbo
- dubbo-test-common
- ${project.parent.version}
- test
-
diff --git a/dubbo-configcenter/dubbo-configcenter-api/pom.xml b/dubbo-configcenter/dubbo-configcenter-api/pom.xml
index 9bf8f286b4..420a37e758 100644
--- a/dubbo-configcenter/dubbo-configcenter-api/pom.xml
+++ b/dubbo-configcenter/dubbo-configcenter-api/pom.xml
@@ -31,6 +31,11 @@
The config-center api
+
+ org.apache.dubbo
+ dubbo-common
+ ${project.parent.version}
+
org.apache.dubbo
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ConfigCenterApplicationLifecycle.java b/dubbo-configcenter/dubbo-configcenter-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ConfigCenterApplicationLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ConfigCenterApplicationLifecycle.java
rename to dubbo-configcenter/dubbo-configcenter-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ConfigCenterApplicationLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/validator/ConfigCenterConfigValidator.java b/dubbo-configcenter/dubbo-configcenter-api/src/main/java/org/apache/dubbo/config/validator/ConfigCenterConfigValidator.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/validator/ConfigCenterConfigValidator.java
rename to dubbo-configcenter/dubbo-configcenter-api/src/main/java/org/apache/dubbo/config/validator/ConfigCenterConfigValidator.java
index a67580c05c..9ef9fafd6c 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/validator/ConfigCenterConfigValidator.java
+++ b/dubbo-configcenter/dubbo-configcenter-api/src/main/java/org/apache/dubbo/config/validator/ConfigCenterConfigValidator.java
@@ -21,7 +21,6 @@ import org.apache.dubbo.config.ConfigCenterConfig;
import org.apache.dubbo.config.context.ConfigValidator;
import org.apache.dubbo.config.utils.ConfigValidationUtils;
-//TODO: Move to configcenter-api
@Activate
public class ConfigCenterConfigValidator implements ConfigValidator {
diff --git a/dubbo-demo/dubbo-demo-native/pom.xml b/dubbo-demo/dubbo-demo-native/pom.xml
index 0601a5dac1..0ea0c3d30a 100644
--- a/dubbo-demo/dubbo-demo-native/pom.xml
+++ b/dubbo-demo/dubbo-demo-native/pom.xml
@@ -37,4 +37,173 @@
true
+
+
+
+
+ org.apache.dubbo
+ dubbo-registry-api
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-metadata-api
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-api
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-default
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-registry
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-metadata
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-metrics-config-center
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-tracing
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-monitor-api
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-remoting-api
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-rpc-api
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-rpc-injvm
+ ${project.parent.version}
+
+
+
+
+ org.apache.dubbo
+ dubbo-rpc-triple
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-rpc-rest
+ ${project.parent.version}
+
+
+
+
+ org.apache.dubbo
+ dubbo-serialization-hessian2
+ ${project.parent.version}
+
+
+
+
+ org.apache.dubbo
+ dubbo-registry-nacos
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-metadata-report-zookeeper
+ ${project.parent.version}
+
+
+
+ com.google.guava
+ guava
+
+
+
+
+
+ org.apache.dubbo
+ dubbo-metadata-report-redis
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-configcenter-zookeeper
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-configcenter-nacos
+ ${project.parent.version}
+
+
+ com.google.guava
+ guava
+
+
+
+
+
+ org.apache.dubbo
+ dubbo-plugin-router-condition
+ ${project.parent.version}
+
+
+
+ org.apache.dubbo
+ dubbo-plugin-router-tag
+ ${project.parent.version}
+
+
+
+ org.testcontainers
+ testcontainers
+ 1.19.0
+
+
+
+ org.jboss.resteasy
+ resteasy-jackson-provider
+
+
+
+ org.apache.dubbo
+ dubbo-test-common
+ ${project.parent.version}
+
+
+
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataApplicationLifecycle.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataApplicationLifecycle.java
similarity index 79%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataApplicationLifecycle.java
rename to dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataApplicationLifecycle.java
index d0ff38385d..f50ac99771 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataApplicationLifecycle.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataApplicationLifecycle.java
@@ -20,7 +20,7 @@ import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.config.deploy.context.ApplicationContext;
-import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;
+import org.apache.dubbo.registry.ApplicationMetadataUpdater;
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_REFRESH_INSTANCE_ERROR;
@@ -41,7 +41,11 @@ public class MetadataApplicationLifecycle implements ApplicationLifecycle {
public void refreshServiceInstance(ApplicationContext applicationContext) {
if (applicationContext.getRegistered().get()) {
try {
- ServiceInstanceMetadataUtils.refreshMetadataAndInstance(applicationContext.getModel());
+ ApplicationMetadataUpdater updater = applicationContext.getModel().getBeanFactory().getBean(ApplicationMetadataUpdater.class);
+ if(updater == null){
+ throw new RuntimeException("MetadataUpdater not found. This may be caused by not imported dubbo-registry-api.");
+ }
+ updater.refreshMetadataAndInstance(applicationContext.getModel());
} catch (Exception e) {
logger.error(CONFIG_REFRESH_INSTANCE_ERROR, "", "", "Refresh instance and metadata error.", e);
}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataDestroyApplicationLifecycle.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataDestroyApplicationLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataDestroyApplicationLifecycle.java
rename to dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataDestroyApplicationLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataInitializeLifecycle.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataInitializeLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataInitializeLifecycle.java
rename to dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataInitializeLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRefreshApplicationLifecycle.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRefreshApplicationLifecycle.java
similarity index 83%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRefreshApplicationLifecycle.java
rename to dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRefreshApplicationLifecycle.java
index 955b1df2e4..d531003d47 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRefreshApplicationLifecycle.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRefreshApplicationLifecycle.java
@@ -21,7 +21,7 @@ import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
import org.apache.dubbo.common.logger.LoggerFactory;
import org.apache.dubbo.config.deploy.context.ApplicationContext;
-import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;
+import org.apache.dubbo.registry.ApplicationMetadataUpdater;
import org.apache.dubbo.rpc.model.ModuleModel;
import static org.apache.dubbo.common.constants.LoggerCodeConstants.CONFIG_REFRESH_INSTANCE_ERROR;
@@ -48,7 +48,11 @@ public class MetadataRefreshApplicationLifecycle implements ApplicationLifecycle
private void refreshMetadata(ApplicationContext applicationContext){
try {
if (applicationContext.registered()) {
- ServiceInstanceMetadataUtils.refreshMetadataAndInstance(applicationContext.getModel());
+ ApplicationMetadataUpdater updater = applicationContext.getModel().getBeanFactory().getBean(ApplicationMetadataUpdater.class);
+ if(updater == null){
+ throw new RuntimeException("MetadataUpdater not found. This may be caused by not imported dubbo-registry-api.");
+ }
+ updater.refreshMetadataAndInstance(applicationContext.getModel());
}
} catch (Exception e) {
logger.error(CONFIG_REFRESH_INSTANCE_ERROR, "", "", "Refresh instance and metadata error.", e);
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MetadataPublisherRegister.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRegistryApplicationLifecycle.java
similarity index 54%
rename from dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MetadataPublisherRegister.java
rename to dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRegistryApplicationLifecycle.java
index 2910dfb1de..0a32b2ea83 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MetadataPublisherRegister.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetadataRegistryApplicationLifecycle.java
@@ -14,31 +14,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.metadata;
+package org.apache.dubbo.config.deploy.lifecycle.application;
-import org.apache.dubbo.common.deploy.ApplicationDeployListener;
+import org.apache.dubbo.common.extension.Activate;
+import org.apache.dubbo.config.deploy.context.ApplicationContext;
+import org.apache.dubbo.metadata.MetadataPublisher;
import org.apache.dubbo.metadata.report.DefaultMetadataPublisher;
-import org.apache.dubbo.rpc.model.ApplicationModel;
-public class MetadataPublisherRegister implements ApplicationDeployListener {
+@Activate(order = -10000)
+public class MetadataRegistryApplicationLifecycle implements ApplicationLifecycle{
@Override
- public void onStarting(ApplicationModel scopeModel) {
- scopeModel.getBeanFactory().getOrRegisterBean(DefaultMetadataPublisher.class);
+ public boolean needInitialize() {
+ return true;
}
@Override
- public void onInitialize(ApplicationModel scopeModel) {}
-
- @Override
- public void onStarted(ApplicationModel scopeModel) {}
-
- @Override
- public void onStopping(ApplicationModel scopeModel) {}
-
- @Override
- public void onStopped(ApplicationModel scopeModel) {}
-
- @Override
- public void onFailure(ApplicationModel scopeModel, Throwable cause) {}
+ public void initialize(ApplicationContext context) {
+ context.getModel().getBeanFactory().getOrRegisterBean(MetadataPublisher.class,clz->new DefaultMetadataPublisher());
+ }
}
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/AbstractServiceNameMapping.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/AbstractServiceNameMapping.java
index 6ed85622ee..7d74dcc991 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/AbstractServiceNameMapping.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/AbstractServiceNameMapping.java
@@ -90,7 +90,7 @@ public abstract class AbstractServiceNameMapping implements ServiceNameMapping {
@Override
public Set getAndListen(URL registryURL, URL subscribedURL, MappingListener listener) {
- String key = ServiceNameMapping.buildMappingKey(subscribedURL);
+ String key = ServiceNameMappingUtils.buildMappingKey(subscribedURL);
// use previously cached services.
Set mappingServices = mappingCacheManager.get(key);
@@ -110,7 +110,7 @@ public abstract class AbstractServiceNameMapping implements ServiceNameMapping {
}
}
if (CollectionUtils.isNotEmpty(mappingServices)) {
- this.putCachedMapping(ServiceNameMapping.buildMappingKey(subscribedURL), mappingServices);
+ this.putCachedMapping(ServiceNameMappingUtils.buildMappingKey(subscribedURL), mappingServices);
}
} else {
ExecutorService executorService = applicationModel.getFrameworkModel().getBeanFactory()
@@ -125,7 +125,7 @@ public abstract class AbstractServiceNameMapping implements ServiceNameMapping {
public MappingListener stopListen(URL subscribeURL, MappingListener listener) {
synchronized (mappingListeners) {
if (listener != null) {
- String mappingKey = ServiceNameMapping.buildMappingKey(subscribeURL);
+ String mappingKey = ServiceNameMappingUtils.buildMappingKey(subscribeURL);
Set listeners = mappingListeners.get(mappingKey);
//todo, remove listener from remote metadata center
if (CollectionUtils.isNotEmpty(listeners)) {
@@ -170,11 +170,11 @@ public abstract class AbstractServiceNameMapping implements ServiceNameMapping {
@Override
public Set getMapping(URL consumerURL) {
- Set mappingByUrl = ServiceNameMapping.getMappingByUrl(consumerURL);
+ Set mappingByUrl = ServiceNameMappingUtils.getMappingByUrl(consumerURL);
if(mappingByUrl != null) {
return mappingByUrl;
}
- return mappingCacheManager.get(ServiceNameMapping.buildMappingKey(consumerURL));
+ return mappingCacheManager.get(ServiceNameMappingUtils.buildMappingKey(consumerURL));
}
@Override
@@ -226,7 +226,7 @@ public abstract class AbstractServiceNameMapping implements ServiceNameMapping {
synchronized (mappingListeners) {
Set mappedServices = emptySet();
try {
- String mappingKey = ServiceNameMapping.buildMappingKey(subscribedURL);
+ String mappingKey = ServiceNameMappingUtils.buildMappingKey(subscribedURL);
if (listener != null) {
mappedServices = toTreeSet(getAndListen(subscribedURL, listener));
Set listeners = mappingListeners.computeIfAbsent(mappingKey, _k -> new HashSet<>());
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMappingUtils.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMappingUtils.java
new file mode 100644
index 0000000000..71047ca527
--- /dev/null
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMappingUtils.java
@@ -0,0 +1,72 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.dubbo.metadata;
+
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.common.constants.RegistryConstants;
+import org.apache.dubbo.common.utils.CollectionUtils;
+import org.apache.dubbo.common.utils.StringUtils;
+
+import java.util.Arrays;
+import java.util.Set;
+import java.util.TreeSet;
+
+import static java.util.Collections.emptySet;
+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR;
+
+public class ServiceNameMappingUtils {
+
+ public static String buildMappingKey(URL url) {
+ return buildGroup(url.getServiceInterface());
+ }
+
+ public static String buildGroup(String serviceInterface) {
+ //the issue : https://github.com/apache/dubbo/issues/4671
+// return DEFAULT_MAPPING_GROUP + SLASH + serviceInterface;
+ return serviceInterface;
+ }
+
+ public static String toStringKeys(Set serviceNames) {
+ if (CollectionUtils.isEmpty(serviceNames)) {
+ return "";
+ }
+
+ StringBuilder builder = new StringBuilder();
+ for (String n : serviceNames) {
+ builder.append(n);
+ builder.append(COMMA_SEPARATOR);
+ }
+
+ builder.deleteCharAt(builder.length() - 1);
+ return builder.toString();
+ }
+
+ public static Set getAppNames(String content) {
+ if (StringUtils.isBlank(content)) {
+ return emptySet();
+ }
+ return new TreeSet<>(Arrays.asList(content.split(COMMA_SEPARATOR)));
+ }
+
+ public static Set getMappingByUrl(URL consumerURL) {
+ String providedBy = consumerURL.getParameter(RegistryConstants.PROVIDED_BY);
+ if(StringUtils.isBlank(providedBy)) {
+ return null;
+ }
+ return AbstractServiceNameMapping.parseServices(providedBy);
+ }
+}
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/DefaultMetadataPublisher.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/DefaultMetadataPublisher.java
index d1c5836ad8..1b8e1c5ca5 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/DefaultMetadataPublisher.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/DefaultMetadataPublisher.java
@@ -38,7 +38,7 @@ public class DefaultMetadataPublisher implements MetadataPublisher {
private static final ErrorTypeAwareLogger logger = LoggerFactory.getErrorTypeAwareLogger(DefaultMetadataPublisher.class);
@Override
public void publishServiceDefinition(URL url, ServiceDescriptor serviceDescriptor, ApplicationModel applicationModel) {
- if (getMetadataReports(applicationModel).isEmpty()) {
+ if (getMetadataReports(applicationModel).size() == 0) {
String msg = "Remote Metadata Report Server is not provided or unavailable, will stop registering service definition to remote center!";
logger.warn(REGISTRY_FAILED_LOAD_METADATA, "", "", msg);
return;
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener b/dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener
deleted file mode 100644
index e769b99d1b..0000000000
--- a/dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener
+++ /dev/null
@@ -1 +0,0 @@
-metadata-register=org.apache.dubbo.metadata.MetadataPublisherRegister
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle b/dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle
index 2e1be4fea3..1124f0eb58 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle
@@ -2,3 +2,4 @@ metadata=org.apache.dubbo.config.deploy.lifecycle.application.MetadataApplicatio
metadata-destroy=org.apache.dubbo.config.deploy.lifecycle.application.MetadataDestroyApplicationLifecycle
metadata-initialize=org.apache.dubbo.config.deploy.lifecycle.application.MetadataInitializeLifecycle
metadata-refresh=org.apache.dubbo.config.deploy.lifecycle.application.MetadataRefreshApplicationLifecycle
+metadata-registry=org.apache.dubbo.config.deploy.lifecycle.application.MetadataRegistryApplicationLifecycle
\ No newline at end of file
diff --git a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/config/utils/MetadataConfigValidatorTest.java b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/config/utils/MetadataConfigValidatorTest.java
new file mode 100644
index 0000000000..55e4c8e8d5
--- /dev/null
+++ b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/config/utils/MetadataConfigValidatorTest.java
@@ -0,0 +1,51 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.dubbo.config.utils;
+
+import org.apache.dubbo.config.MetadataReportConfig;
+import org.apache.dubbo.config.validator.MetadataConfigValidator;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+public class MetadataConfigValidatorTest {
+
+ @Test
+ void testValidateMetadataConfig() {
+ MetadataReportConfig config = new MetadataReportConfig();
+ config.setAddress("protocol://ip:host");
+ try {
+ MetadataConfigValidator.validateMetadataConfig(config);
+ } catch (Exception e) {
+ Assertions.fail("valid config expected.");
+ }
+
+ config.setAddress("ip:host");
+ config.setProtocol("protocol");
+ try {
+ MetadataConfigValidator.validateMetadataConfig(config);
+ } catch (Exception e) {
+ Assertions.fail("valid config expected.");
+ }
+
+ config.setAddress("ip:host");
+ config.setProtocol(null);
+ Assertions.assertThrows(IllegalArgumentException.class, () -> {
+ MetadataConfigValidator.validateMetadataConfig(config);
+ });
+ }
+
+}
diff --git a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/AbstractServiceNameMappingTest.java b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/AbstractServiceNameMappingTest.java
index 14432ee0a1..6eb0b2d9a0 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/AbstractServiceNameMappingTest.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/AbstractServiceNameMappingTest.java
@@ -48,7 +48,7 @@ class AbstractServiceNameMappingTest {
@AfterEach
public void clearup() {
- mapping.removeCachedMapping(ServiceNameMapping.buildMappingKey(url));
+ mapping.removeCachedMapping(ServiceNameMappingUtils.buildMappingKey(url));
}
@Test
@@ -78,7 +78,7 @@ class AbstractServiceNameMappingTest {
Assertions.assertTrue(services.contains("registry-app1"));
// remove mapping cache, check get() works.
- mapping2.removeCachedMapping(ServiceNameMapping.buildMappingKey(url));
+ mapping2.removeCachedMapping(ServiceNameMappingUtils.buildMappingKey(url));
mapping2.enabled = true;
services = mapping2.getAndListen(registryURL, url, new MappingListener() {
@Override
diff --git a/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java b/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java
index c3a16d4c43..fdc1df20af 100644
--- a/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java
+++ b/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java
@@ -41,7 +41,7 @@ import org.apache.dubbo.common.utils.StringUtils;
import org.apache.dubbo.metadata.MappingChangedEvent;
import org.apache.dubbo.metadata.MappingListener;
import org.apache.dubbo.metadata.MetadataInfo;
-import org.apache.dubbo.metadata.ServiceNameMapping;
+import org.apache.dubbo.metadata.ServiceNameMappingUtils;
import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;
import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;
import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;
@@ -66,7 +66,7 @@ import static org.apache.dubbo.common.utils.StringConstantFieldValuePredicate.of
import static org.apache.dubbo.common.utils.StringUtils.HYPHEN_CHAR;
import static org.apache.dubbo.metadata.MetadataConstants.REPORT_CONSUMER_URL_KEY;
import static org.apache.dubbo.metadata.ServiceNameMapping.DEFAULT_MAPPING_GROUP;
-import static org.apache.dubbo.metadata.ServiceNameMapping.getAppNames;
+import static org.apache.dubbo.metadata.ServiceNameMappingUtils.getAppNames;
/**
* metadata report impl for nacos
@@ -296,7 +296,7 @@ public class NacosMetadataReport extends AbstractMetadataReport {
addCasServiceMappingListener(serviceKey, group, listener);
}
String content = getConfig(serviceKey, group);
- return ServiceNameMapping.getAppNames(content);
+ return ServiceNameMappingUtils.getAppNames(content);
}
@Override
@@ -312,7 +312,7 @@ public class NacosMetadataReport extends AbstractMetadataReport {
@Override
public Set getServiceAppMapping(String serviceKey, URL url) {
String content = getConfig(serviceKey, DEFAULT_MAPPING_GROUP);
- return ServiceNameMapping.getAppNames(content);
+ return ServiceNameMappingUtils.getAppNames(content);
}
private String getConfig(String dataId, String group) {
diff --git a/dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
index a7cfa56dbe..dbf5e48b0d 100644
--- a/dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
+++ b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
@@ -51,7 +51,7 @@ import java.util.concurrent.ConcurrentMap;
import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;
import static org.apache.dubbo.common.constants.LoggerCodeConstants.REGISTRY_ZOOKEEPER_EXCEPTION;
import static org.apache.dubbo.metadata.ServiceNameMapping.DEFAULT_MAPPING_GROUP;
-import static org.apache.dubbo.metadata.ServiceNameMapping.getAppNames;
+import static org.apache.dubbo.metadata.ServiceNameMappingUtils.getAppNames;
/**
* ZookeeperMetadataReport
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsCollectorStartLifecycle.java b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsCollectorStartLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsCollectorStartLifecycle.java
rename to dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsCollectorStartLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsDisableApplicationLifecycle.java b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsDisableApplicationLifecycle.java
similarity index 92%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsDisableApplicationLifecycle.java
rename to dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsDisableApplicationLifecycle.java
index 7a9b4136a1..1403ecba6e 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsDisableApplicationLifecycle.java
+++ b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsDisableApplicationLifecycle.java
@@ -18,7 +18,6 @@ package org.apache.dubbo.config.deploy.lifecycle.application;
import org.apache.dubbo.common.extension.Activate;
import org.apache.dubbo.common.utils.ClassUtils;
-import org.apache.dubbo.config.deploy.DefaultApplicationDeployer;
import org.apache.dubbo.config.deploy.context.ApplicationContext;
import org.apache.dubbo.metrics.service.MetricsServiceExporter;
@@ -38,7 +37,7 @@ public class MetricsDisableApplicationLifecycle implements ApplicationLifecycle
}
private boolean isClassPresent(String className) {
- return ClassUtils.isPresent(className, DefaultApplicationDeployer.class.getClassLoader());
+ return ClassUtils.isPresent(className, MetricsDisableApplicationLifecycle.class.getClassLoader());
}
@Override
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsExportApplicationLifecycle.java b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsExportApplicationLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsExportApplicationLifecycle.java
rename to dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsExportApplicationLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsInitializeLifecycle.java b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsInitializeLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsInitializeLifecycle.java
rename to dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/MetricsInitializeLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleStartedEventApplicationLifecycle.java b/dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleStartedEventApplicationLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleStartedEventApplicationLifecycle.java
rename to dubbo-metrics/dubbo-metrics-default/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleStartedEventApplicationLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metrics.service.MetricsServiceExporter b/dubbo-metrics/dubbo-metrics-default/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metrics.service.MetricsServiceExporter
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metrics.service.MetricsServiceExporter
rename to dubbo-metrics/dubbo-metrics-default/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metrics.service.MetricsServiceExporter
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/DefaultApplicationDeployerTest.java
similarity index 96%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java
rename to dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/DefaultApplicationDeployerTest.java
index 99f94ebe49..b228916d82 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/deploy/DefaultApplicationDeployerTest.java
+++ b/dubbo-metrics/dubbo-metrics-prometheus/src/test/java/org/apache/dubbo/metrics/prometheus/DefaultApplicationDeployerTest.java
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.dubbo.config.deploy;
+package org.apache.dubbo.metrics.prometheus;
import org.apache.dubbo.common.utils.Assert;
import org.apache.dubbo.metrics.utils.MetricsSupportUtil;
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ObservationRegistryApplicationLifecycle.java b/dubbo-metrics/dubbo-tracing/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ObservationRegistryApplicationLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ObservationRegistryApplicationLifecycle.java
rename to dubbo-metrics/dubbo-tracing/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ObservationRegistryApplicationLifecycle.java
diff --git a/dubbo-plugin/dubbo-security/pom.xml b/dubbo-plugin/dubbo-security/pom.xml
index 583792d448..b20cb046eb 100644
--- a/dubbo-plugin/dubbo-security/pom.xml
+++ b/dubbo-plugin/dubbo-security/pom.xml
@@ -96,6 +96,12 @@
${project.version}
test
+
+ org.apache.dubbo
+ dubbo-metadata-api
+ ${project.parent.version}
+ test
+
diff --git a/dubbo-registry/dubbo-registry-api/pom.xml b/dubbo-registry/dubbo-registry-api/pom.xml
index eb17182ab8..ccd50a154d 100644
--- a/dubbo-registry/dubbo-registry-api/pom.xml
+++ b/dubbo-registry/dubbo-registry-api/pom.xml
@@ -34,7 +34,7 @@
org.apache.dubbo
- dubbo-common
+ dubbo-config-api
${project.parent.version}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPostOfflineLifecycle.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPostOfflineLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPostOfflineLifecycle.java
rename to dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPostOfflineLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPreOfflineLifecycle.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPreOfflineLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPreOfflineLifecycle.java
rename to dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ApplicationPreOfflineLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/DeregisterApplicationLifecycle.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/DeregisterApplicationLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/DeregisterApplicationLifecycle.java
rename to dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/DeregisterApplicationLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleOfflineLifecycle.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleOfflineLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleOfflineLifecycle.java
rename to dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/ModuleOfflineLifecycle.java
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/RegisterApplicationLifecycle.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/RegisterApplicationLifecycle.java
similarity index 100%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/RegisterApplicationLifecycle.java
rename to dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/RegisterApplicationLifecycle.java
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/RegisterBeanInitLifecycle.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/RegisterBeanInitLifecycle.java
new file mode 100644
index 0000000000..cb3c6a4d58
--- /dev/null
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/config/deploy/lifecycle/application/RegisterBeanInitLifecycle.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.dubbo.config.deploy.lifecycle.application;
+
+import org.apache.dubbo.common.extension.Activate;
+import org.apache.dubbo.config.deploy.context.ApplicationContext;
+import org.apache.dubbo.registry.ApplicationMetadataUpdater;
+import org.apache.dubbo.registry.DefaultMetadataUpdater;
+
+@Activate(order = -10000)
+public class RegisterBeanInitLifecycle implements ApplicationLifecycle{
+
+ @Override
+ public boolean needInitialize() {
+ return true;
+ }
+
+ @Override
+ public void initialize(ApplicationContext context) {
+ context.getModel().getBeanFactory().getOrRegisterBean(ApplicationMetadataUpdater.class,clz-> new DefaultMetadataUpdater());
+ }
+}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy/ConfigurableMetadataServiceExporter.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java
rename to dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy/ConfigurableMetadataServiceExporter.java
index dc62bc803e..17b5b40dda 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy/ConfigurableMetadataServiceExporter.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.config.metadata;
+package org.apache.dubbo.metadata.deploy;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.common.logger.ErrorTypeAwareLogger;
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ExporterDeployListener.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy/ExporterDeployListener.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ExporterDeployListener.java
rename to dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy/ExporterDeployListener.java
index f3e34bb4c9..a88f6c3c08 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/ExporterDeployListener.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy/ExporterDeployListener.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.config.metadata;
+package org.apache.dubbo.metadata.deploy;
import org.apache.dubbo.common.deploy.ApplicationDeployListener;
import org.apache.dubbo.common.lang.Prioritized;
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizer.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy/MetadataServiceURLParamsMetadataCustomizer.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizer.java
rename to dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy/MetadataServiceURLParamsMetadataCustomizer.java
index 6e1f677b3c..4a11ce7691 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/MetadataServiceURLParamsMetadataCustomizer.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/metadata/deploy/MetadataServiceURLParamsMetadataCustomizer.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.dubbo.config.metadata;
+package org.apache.dubbo.metadata.deploy;
import org.apache.dubbo.common.BaseServiceMetadata;
import org.apache.dubbo.common.URL;
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/DefaultMetadataUpdater.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/DefaultMetadataUpdater.java
new file mode 100644
index 0000000000..dc6f1fe84d
--- /dev/null
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/DefaultMetadataUpdater.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.dubbo.registry;
+
+import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;
+import org.apache.dubbo.rpc.model.ApplicationModel;
+
+
+public class DefaultMetadataUpdater implements ApplicationMetadataUpdater {
+
+ public DefaultMetadataUpdater() {}
+
+ @Override
+ public void refreshMetadataAndInstance(ApplicationModel applicationModel) {
+ ServiceInstanceMetadataUtils.refreshMetadataAndInstance(applicationModel);
+ }
+}
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 ec125e37be..5a58b6bc8b 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
@@ -26,6 +26,7 @@ import org.apache.dubbo.metadata.AbstractServiceNameMapping;
import org.apache.dubbo.metadata.MappingChangedEvent;
import org.apache.dubbo.metadata.MappingListener;
import org.apache.dubbo.metadata.ServiceNameMapping;
+import org.apache.dubbo.metadata.ServiceNameMappingUtils;
import org.apache.dubbo.metrics.event.MetricsEventBus;
import org.apache.dubbo.metrics.registry.event.RegistryEvent;
import org.apache.dubbo.registry.NotifyListener;
@@ -51,7 +52,7 @@ import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_TYPE_
import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_TYPE;
import static org.apache.dubbo.common.function.ThrowableAction.execute;
import static org.apache.dubbo.common.utils.CollectionUtils.toTreeSet;
-import static org.apache.dubbo.metadata.ServiceNameMapping.toStringKeys;
+import static org.apache.dubbo.metadata.ServiceNameMappingUtils.toStringKeys;
import static org.apache.dubbo.registry.client.ServiceDiscoveryFactory.getExtension;
/**
@@ -193,9 +194,9 @@ public class ServiceDiscoveryRegistry extends FailbackRegistry {
serviceDiscovery.subscribe(url, listener);
- Set mappingByUrl = ServiceNameMapping.getMappingByUrl(url);
+ Set mappingByUrl = ServiceNameMappingUtils.getMappingByUrl(url);
- String key = ServiceNameMapping.buildMappingKey(url);
+ String key = ServiceNameMappingUtils.buildMappingKey(url);
if (mappingByUrl == null) {
@@ -393,7 +394,7 @@ public class ServiceDiscoveryRegistry extends FailbackRegistry {
try {
mappingLock.lock();
if (CollectionUtils.isEmpty(tempOldApps) && !newApps.isEmpty()) {
- serviceNameMapping.putCachedMapping(ServiceNameMapping.buildMappingKey(url), newApps);
+ serviceNameMapping.putCachedMapping(ServiceNameMappingUtils.buildMappingKey(url), newApps);
subscribeURLs(url, listener, newApps);
oldApps = newApps;
return;
@@ -401,8 +402,8 @@ public class ServiceDiscoveryRegistry extends FailbackRegistry {
for (String newAppName : newApps) {
if (!tempOldApps.contains(newAppName)) {
- serviceNameMapping.removeCachedMapping(ServiceNameMapping.buildMappingKey(url));
- serviceNameMapping.putCachedMapping(ServiceNameMapping.buildMappingKey(url), newApps);
+ serviceNameMapping.removeCachedMapping(ServiceNameMappingUtils.buildMappingKey(url));
+ serviceNameMapping.putCachedMapping(ServiceNameMappingUtils.buildMappingKey(url), newApps);
// old instance listener related to old app list that needs to be destroyed after subscribe refresh.
ServiceInstancesChangedListener oldListener = listener.getServiceListener();
if (oldListener != null) {
diff --git a/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener b/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener
new file mode 100644
index 0000000000..325c0bfd90
--- /dev/null
+++ b/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.deploy.ApplicationDeployListener
@@ -0,0 +1 @@
+exporter=org.apache.dubbo.metadata.deploy.ExporterDeployListener
\ No newline at end of file
diff --git a/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator b/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator
new file mode 100644
index 0000000000..41af519536
--- /dev/null
+++ b/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.context.ConfigValidator
@@ -0,0 +1 @@
+registry=org.apache.dubbo.config.validate.RegistryConfigValidator
diff --git a/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle b/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle
index 38e4ad1c6e..7b956f8bda 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle
+++ b/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.config.deploy.lifecycle.application.ApplicationLifecycle
@@ -2,3 +2,5 @@ deregister=org.apache.dubbo.config.deploy.lifecycle.application.DeregisterApplic
register=org.apache.dubbo.config.deploy.lifecycle.application.RegisterApplicationLifecycle
application-offline=org.apache.dubbo.config.deploy.lifecycle.application.ApplicationPreOfflineLifecycle
module-offline=org.apache.dubbo.config.deploy.lifecycle.application.ModuleOfflineLifecycle
+app-post-offline=org.apache.dubbo.config.deploy.lifecycle.application.ApplicationPostOfflineLifecycle
+register-bean-init=org.apache.dubbo.config.deploy.lifecycle.application.RegisterBeanInitLifecycle
\ No newline at end of file
diff --git a/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer b/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer
index a5b398a936..ce74362ea4 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer
+++ b/dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer
@@ -1,3 +1,4 @@
protocol-ports=org.apache.dubbo.registry.client.metadata.ProtocolPortsMetadataCustomizer
instance-metadata=org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataCustomizer
port=org.apache.dubbo.registry.client.metadata.ServiceInstanceHostPortCustomizer
+metadata-url=org.apache.dubbo.metadata.deploy.MetadataServiceURLParamsMetadataCustomizer
\ No newline at end of file
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 72bb09cbd5..e78b953b19 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
@@ -46,7 +46,7 @@ import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;
import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;
import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;
import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDED_BY;
-import static org.apache.dubbo.metadata.ServiceNameMapping.toStringKeys;
+import static org.apache.dubbo.metadata.ServiceNameMappingUtils.toStringKeys;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/cluster/ClusterInvokerFactory.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/cluster/ClusterInvokerFactory.java
new file mode 100644
index 0000000000..76e097df72
--- /dev/null
+++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/cluster/ClusterInvokerFactory.java
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 org.apache.dubbo.rpc.cluster;
+
+
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.rpc.Invoker;
+import org.apache.dubbo.rpc.model.ScopeModel;
+
+import java.util.List;
+
+/**
+ * Provides an easy way to create ClusterInvoker.
+ */
+public interface ClusterInvokerFactory {
+
+ Invoker> getInvoker(ClusterInvokerConfig config);
+
+ enum DirectoryNames {
+ STATIC;
+ }
+
+ class ClusterInvokerConfig {
+ private ScopeModel scopeModel;
+ private String clusterName;
+ private URL serviceUrl;
+ private List> invokersToJoin;
+ boolean wrappedCluster;
+ boolean wrappedInvoker;
+ DirectoryNames directoryName;
+
+ public ClusterInvokerConfig(ScopeModel scopeModel, String clusterName, URL serviceUrl, List> invokersToJoin) {
+ this.scopeModel = scopeModel;
+ this.clusterName = clusterName;
+ this.serviceUrl = serviceUrl;
+ this.invokersToJoin = invokersToJoin;
+ this.directoryName = DirectoryNames.STATIC;
+ }
+
+ public ClusterInvokerConfig(ScopeModel scopeModel, String clusterName, URL serviceUrl, List> invokersToJoin, boolean wrappedCluster, boolean wrappedInvoker) {
+ this.scopeModel = scopeModel;
+ this.clusterName = clusterName;
+ this.serviceUrl = serviceUrl;
+ this.invokersToJoin = invokersToJoin;
+ this.wrappedCluster = wrappedCluster;
+ this.wrappedInvoker = wrappedInvoker;
+ this.directoryName = DirectoryNames.STATIC;
+ }
+
+ public ClusterInvokerConfig() {
+ }
+
+ public DirectoryNames getDirectoryName() {
+ return directoryName;
+ }
+
+ public ScopeModel getScopeModel() {
+ return scopeModel;
+ }
+
+ public String getClusterName() {
+ return clusterName;
+ }
+
+ public URL getServiceUrl() {
+ return serviceUrl;
+ }
+
+ public List> getInvokersToJoin() {
+ return invokersToJoin;
+ }
+
+ public boolean isWrappedCluster() {
+ return wrappedCluster;
+ }
+
+ public boolean isWrappedInvoker() {
+ return wrappedInvoker;
+ }
+
+ public void setScopeModel(ScopeModel scopeModel) {
+ this.scopeModel = scopeModel;
+ }
+
+ public void setClusterName(String clusterName) {
+ this.clusterName = clusterName;
+ }
+
+ public void setServiceUrl(URL serviceUrl) {
+ this.serviceUrl = serviceUrl;
+ }
+
+ public void setInvokersToJoin(List> invokersToJoin) {
+ this.invokersToJoin = invokersToJoin;
+ }
+
+ public void setWrappedCluster(boolean wrappedCluster) {
+ this.wrappedCluster = wrappedCluster;
+ }
+
+ public void setWrappedDirectory(boolean wrappedDirectory) {
+ this.wrappedInvoker = wrappedDirectory;
+ }
+
+ public void setDirectoryName(DirectoryNames directoryName) {
+ this.directoryName = directoryName;
+ }
+ }
+}
diff --git a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/NoAnnotationRestProtocolTest.java b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/NoAnnotationRestProtocolTest.java
index 3d8ad1b2fe..f4eceba712 100644
--- a/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/NoAnnotationRestProtocolTest.java
+++ b/dubbo-rpc/dubbo-rpc-rest/src/test/java/org/apache/dubbo/rpc/protocol/rest/NoAnnotationRestProtocolTest.java
@@ -53,6 +53,12 @@ class NoAnnotationRestProtocolTest {
public void tearDown() {
protocol.destroy();
FrameworkModel.destroyAll();
+ new JsonUtils() {
+ public void clearJson() {
+ setJson(null);
+ }
+ }.clearJson();
+ System.clearProperty(CommonConstants.PREFER_JSON_FRAMEWORK_NAME);
}
@Test
diff --git a/dubbo-test/dubbo-dependencies-all/pom.xml b/dubbo-test/dubbo-dependencies-all/pom.xml
index e638604eb2..3fff00102f 100644
--- a/dubbo-test/dubbo-dependencies-all/pom.xml
+++ b/dubbo-test/dubbo-dependencies-all/pom.xml
@@ -67,6 +67,11 @@
dubbo-config-api
${project.version}
+
+ org.apache.dubbo
+ dubbo-config-test
+ ${project.version}
+
org.apache.dubbo
dubbo-config-spring
diff --git a/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java b/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java
index 806e7090b2..71cf019007 100644
--- a/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java
+++ b/dubbo-test/dubbo-test-modules/src/test/java/org/apache/dubbo/dependency/FileTest.java
@@ -52,10 +52,12 @@ class FileTest {
ignoredModules.add(Pattern.compile("dubbo-core-spi"));
ignoredModules.add(Pattern.compile("dubbo-demo.*"));
ignoredModules.add(Pattern.compile("dubbo-annotation-processor"));
+ ignoredModules.add(Pattern.compile("dubbo-config-test"));
ignoredArtifacts.add(Pattern.compile("dubbo-demo.*"));
ignoredArtifacts.add(Pattern.compile("dubbo-test.*"));
ignoredArtifacts.add(Pattern.compile("dubbo-annotation-processor"));
+ ignoredArtifacts.add(Pattern.compile("dubbo-config-test"));
ignoredModulesInDubboAll.add(Pattern.compile("dubbo"));
ignoredModulesInDubboAll.add(Pattern.compile("dubbo-all-shaded"));
@@ -69,6 +71,7 @@ class FileTest {
ignoredModulesInDubboAll.add(Pattern.compile(".*spring-boot.*"));
ignoredModulesInDubboAll.add(Pattern.compile("dubbo-annotation-processor.*"));
ignoredModulesInDubboAll.add(Pattern.compile("dubbo-maven-plugin"));
+ ignoredModulesInDubboAll.add(Pattern.compile("dubbo-config-test"));
}
@Test