You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2020/07/23 02:46:07 UTC

[dubbo] branch 3.0 updated (7bef551 -> 0d785f1)

This is an automated email from the ASF dual-hosted git repository.

liujun pushed a change to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git.


    from 7bef551  update version to 3.0.0-SNAPSHOT
     add 88cb7f5  Update README.md
     add 79c8b00  pick the first valid interface address before choosing 127.0.0.1 (#6211)
     add bd6b580  use interface name as path (#6212)
     add 7325783  Support spring bean as mock value (#6188)
     add 21e11e7  fix object attachments iteration bug (#6210)
     add 1811f30  [Dubbo-DynamicConfig] compatible configurators url with type JsonArray in ConfigCenter (#6216)
     add a0be776  do not set default id (#6236)
     add 5a827df  support multiple address format (#6209)
     add fbe4d7e  upgrade fastjson to 1.2.70 (#6254)
     add 0791c7c  fix-6231 (#6253)
     add 6a45acb  fix(registry-nacos):fix nacos service name associated with group name (#6227)
     add 83afabe  add visual-studio-code ignore (#6221)
     add 3ceb4a4  Polish apache/dubbo#6261 : Migration the latest Nacos registry implementation to upstream
     add 5ba121d  Revert "add visual-studio-code ignore (#6221)"
     add da6c3eb  Revert "Polish apache/dubbo#6261 : Migration the latest Nacos registry implementation to upstream"
     add e4c7330  add visual-studio-code ignore (#6221) (#6287)
     add 27aac3a  Polish apache/dubbo#6275 : DubboNamespaceHandler 注册监听方法 registerApplicationListeners (#6288)
     add 9cd3086  fix typo in sample section for readme file (#6251)
     add 91989ca  fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)
     add c39eeb5  Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
     add 951955a  Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection (#6299)
     add 450c7cd  Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
     add e400898  Merge branch 'master' of github.com:apache/dubbo
     add 0743042  Revert the MetadataReport
     add 879a0c8  sync wait netty server to finish shutdown (#6281)
     add c2d357b  maybe we can remove null judge in this case (#6321)
     add 3ef35a1  fix method name typo in JValidator.java (#6344)
     add c4f11fc  [Dubbo-6340]fix application cannot exit when use consul registry (#6341)
     add 1e51703  make consul registry suppor ACL (#6313)
     add 5230444  fix publish null value when use consul config center (#6351)
     add b8b42b1  fix the priority of ListenableRouter were not effective (#6148)
     add 6478ac9  when the url is generic, the log level should be info (#6363)
     add 7447f33  fix NPE when check=false is set and provider is empty. (#6376)
     add 80acc24  fix #6306.  support TypeBuilder sort (#6365)
     add e0d031e  enhance ClusterInvoker & ExtensionLoader (#6343)
     add bbacab0  Enhancement, support Map auto recognize in PojoUtils (#6106)
     add 41cbb23  fix typo in CommonConstants (#6373)
     add 5668d74  Fix export provider error, change to catch throwable, handle NoClassDefFoundError (#6380)
     add 5ad186f   check parameterTypesDesc of Generic and Echo  (#6374)
     add a68f7ba  add tps filter to SPI list (#6282)
     add 1c407de  Do not clear all configurator  instances when override is empty (#6395)
     add ba89f44   Service callback throws "Not found exported service" when 'bind.port' is set (#6223)
     add f0c9b3f  Removing RpcContext after test finishes. (#6314)
     add b62ae16  Introduce ClusterInvoker to better support multiple registries subscription (#6343)
     add 72df0e6  return same reference invokers as much as possible (#6083)
     add 51361d5  fix ut
     add 4aaaea4  2.7.8 Rlease (#6398)
     add 11e728c  Hessian2 whitelist (#6378)
     add cd34cc5  Merge branch 'master' of https://github.com/apache/dubbo
     add 9d5e8b3  Hessian whitelist2 (#6423)
     add feb679b  double check lock (#6422)
     add 51c0ea8  Correction: comments about multipleConfig (#6414)
     add 44345d5  fix bug: Rest Protocol can't work when use Tomcat as WebContainer (#6402)
     add f798140  Update @Service And @Reference with @DubboService and @DubboReference (#6355)
     new 7645134  Merge branch 'master' of https://github.com/apache/dubbo
     add a243906  2.7.8 release (#6430)
     add 40d03b0  add @SPI annotation (#6436)
     add 58d5e51  check invoker available status after proxy created. (#6435)
     add a2e5102  Fix NPE when unexport Metadata Service (#6450)
     add 342544f  Sync 2.7.8 release (#6453)
     add 8091c02  2.7.8 release (#6467)
     add fb57616  Issue #6476 (#6478)
     add ae3dca5  fix the Spi file of WebServiceProtocol (#6495)
     add d41bfab  [Dubbo-6497]fix problem that webservice consumer cannot invoke webservice provider when provider webservice server use servlet, and the container has context path and servlet pattern (#6498)
     new 7702fcf  Merge branch 'master' of https://github.com/apache/dubbo
     new 0d785f1  Merge branch 'master' into 3.0

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .gitignore                                         |    3 +
 README.md                                          |    8 +-
 dubbo-all/pom.xml                                  |    8 +
 .../java/org/apache/dubbo/rpc/cluster/Cluster.java |   15 +-
 .../cluster/{Cluster.java => ClusterInvoker.java}  |   84 +-
 .../org/apache/dubbo/rpc/cluster/Configurator.java |    5 +-
 .../cluster/configurator/parser/ConfigParser.java  |   26 +
 .../router/condition/config/ListenableRouter.java  |    2 +-
 .../cluster/router/mock/MockInvokersSelector.java  |    2 +-
 .../dubbo/rpc/cluster/router/tag/TagRouter.java    |   12 +
 .../cluster/support/AbstractClusterInvoker.java    |    3 +-
 .../support/registry/ZoneAwareClusterInvoker.java  |   32 +-
 .../support/wrapper/MockClusterInvoker.java        |    8 +-
 .../configurator/parser/ConfigParserTest.java      |   16 +
 .../support/AbstractClusterInvokerTest.java        |    2 +-
 .../src/main/java/org/apache/dubbo/common/URL.java |   60 +-
 .../configcenter/AbstractDynamicConfiguration.java |  103 +-
 .../AbstractDynamicConfigurationFactory.java       |    2 +-
 .../config/configcenter/DynamicConfiguration.java  |   10 +
 .../configcenter/TreePathDynamicConfiguration.java |  186 ++
 .../file/FileSystemDynamicConfiguration.java       |  150 +-
 .../dubbo/common/constants/CommonConstants.java    |   41 +-
 .../dubbo/common/constants/RegistryConstants.java  |    2 +
 .../org/apache/dubbo/common/convert/Converter.java |   17 +
 .../convert/multiple/MultiValueConverter.java      |   28 +
 .../dubbo/common/extension/ExtensionLoader.java    | 2069 ++++++++++----------
 .../org/apache/dubbo/common/extension/Wrapper.java |   17 +-
 .../extension/support/ActivateComparator.java      |    4 +-
 ...ivateComparator.java => WrapperComparator.java} |  232 +--
 .../org/apache/dubbo/common/utils/ArrayUtils.java  |   22 +
 .../org/apache/dubbo/common/utils/PathUtils.java   |    7 +-
 .../org/apache/dubbo/common/utils/PojoUtils.java   |   56 +-
 .../utils/StringConstantFieldValuePredicate.java   |   67 +
 .../org/apache/dubbo/common/utils/StringUtils.java |   57 +-
 .../apache/dubbo/config/MetadataReportConfig.java  |    4 +-
 .../java/org/apache/dubbo/config/MethodConfig.java |    7 +-
 .../apache/dubbo/config/ReferenceConfigBase.java   |    7 +-
 .../org/apache/dubbo/config/RegistryConfig.java    |   37 +-
 .../org/apache/dubbo/config/ServiceConfigBase.java |   25 +-
 .../dubbo/config/annotation/DubboReference.java    |    9 +
 .../apache/dubbo/config/context/ConfigManager.java |   13 +-
 .../java/org/apache/dubbo/event/EventListener.java |    2 +-
 .../org/apache/dubbo/rpc/model/ConsumerModel.java  |    7 +-
 .../test/java/org/apache/dubbo/common/URLTest.java | 1777 ++++++++---------
 .../AbstractDynamicConfigurationTest.java          |   60 +-
 .../file/FileSystemDynamicConfigurationTest.java   |   45 +-
 .../common/constants/CommonConstantsTest.java      |   41 +
 .../convert/ConverterTest.java}                    |   39 +-
 .../convert/StringToBooleanConverterTest.java      |    5 +-
 .../convert/StringToCharArrayConverterTest.java    |    5 +-
 .../convert/StringToCharacterConverterTest.java    |    5 +-
 .../convert/StringToDoubleConverterTest.java       |    5 +-
 .../convert/StringToFloatConverterTest.java        |    5 +-
 .../convert/StringToIntegerConverterTest.java      |    5 +-
 .../convert/StringToLongConverterTest.java         |    5 +-
 .../convert/StringToOptionalConverterTest.java     |    5 +-
 .../convert/StringToShortConverterTest.java        |    5 +-
 .../convert/StringToStringConverterTest.java       |    5 +-
 .../convert/multiple/MultiValueConverterTest.java  |   72 +
 .../multiple/StringToArrayConverterTest.java       |    4 +-
 .../StringToBlockingDequeConverterTest.java        |    4 +-
 .../StringToBlockingQueueConverterTest.java        |    4 +-
 .../multiple/StringToCollectionConverterTest.java  |    5 +-
 .../multiple/StringToDequeConverterTest.java       |    4 +-
 .../multiple/StringToListConverterTest.java        |    4 +-
 .../StringToNavigableSetConverterTest.java         |    6 +-
 .../multiple/StringToQueueConverterTest.java       |    3 +-
 .../convert/multiple/StringToSetConverterTest.java |    3 +-
 .../multiple/StringToSortedSetConverterTest.java   |    6 +-
 .../StringToTransferQueueConverterTest.java        |    6 +-
 .../apache/dubbo/common/utils/PojoUtilsTest.java   |   36 +
 .../StringConstantFieldValuePredicateTest.java}    |   44 +-
 .../apache/dubbo/common/utils/StringUtilsTest.java |   73 +-
 .../dubbo/config/context/ConfigManagerTest.java    |    7 +-
 .../org/apache/dubbo/event/EchoEventListener2.java |    2 +-
 .../dubbo/common/extension/ExtensionFactory.java   |    3 +
 .../java/org/apache/dubbo/config/ConfigTest.java   |    4 +-
 .../apache/dubbo/config/ReferenceConfigTest.java   |    4 +-
 dubbo-config/dubbo-config-api/pom.xml              |   31 +
 .../org/apache/dubbo/config/ReferenceConfig.java   |   83 +-
 .../org/apache/dubbo/config/ServiceConfig.java     |    2 +-
 .../dubbo/config/bootstrap/DubboBootstrap.java     |  224 ++-
 .../bootstrap/builders/ReferenceBuilder.java       |   22 +
 .../config/bootstrap/builders/RegistryBuilder.java |   12 +-
 .../config/bootstrap/builders/ServiceBuilder.java  |   18 +-
 .../metadata/AbstractMetadataServiceExporter.java  |  150 ++
 .../ConfigurableMetadataServiceExporter.java       |   69 +-
 .../metadata/RemoteMetadataServiceExporter.java    |   79 +
 .../dubbo/config/utils/ConfigValidationUtils.java  |   14 +-
 ...g.apache.dubbo.metadata.MetadataServiceExporter |    3 +
 .../apache/dubbo/config/ReferenceConfigTest.java   |    5 +-
 .../org/apache/dubbo/config/ServiceConfigTest.java |   30 +-
 ...va => ConsulDubboServiceConsumerBootstrap.java} |   10 +-
 ...va => ConsulDubboServiceProviderBootstrap.java} |   10 +-
 .../NacosDubboServiceConsumerBootstrap.java        |   21 +-
 .../NacosDubboServiceProviderBootstrap.java        |   18 +-
 .../ZookeeperDubboServiceConsumerBootstrap.java    |   13 +-
 .../ZookeeperDubboServiceProviderBootstrap.java    |    9 +-
 .../bootstrap/builders/ReferenceBuilderTest.java   |   15 +-
 .../bootstrap/builders/RegistryBuilderTest.java    |    2 +-
 .../bootstrap/builders/ServiceBuilderTest.java     |   32 +-
 .../PublishingServiceDefinitionListenerTest.java   |   94 +
 .../RemoteMetadataServiceExporterTest.java         |  106 +
 .../config/url/ExporterSideConfigUrlTest.java      |    5 +-
 .../metadata/MetadataServiceExporterTest.java      |   38 +-
 dubbo-config/dubbo-config-spring/pom.xml           |   21 +
 .../apache/dubbo/config/spring/ServiceBean.java    |    6 +-
 .../ReferenceAnnotationBeanPostProcessor.java      |   92 +-
 .../annotation/ServiceClassPostProcessor.java      |    4 +-
 .../spring/context/annotation/EnableDubbo.java     |    2 +-
 .../context/annotation/EnableDubboConfig.java      |    2 +-
 .../spring/extension/SpringExtensionFactory.java   |    2 +-
 .../schema/AnnotationBeanDefinitionParser.java     |   10 +-
 .../spring/schema/DubboBeanDefinitionParser.java   |   45 +-
 .../spring/schema/DubboNamespaceHandler.java       |   25 +-
 .../src/main/resources/META-INF/dubbo.xsd          |   17 +-
 .../ReferenceAnnotationBeanPostProcessorTest.java  |   13 +
 .../annotation/ReferenceBeanBuilderTest.java       |   29 +-
 .../ServiceAnnotationBeanPostProcessorTest.java    |   13 +
 .../annotation/ServiceClassPostProcessorTest.java  |   13 +
 .../MultipleServicesWithMethodConfigsTest.java}    |   30 +-
 .../DubboComponentScanRegistrarTest.java           |    4 +-
 .../spring/context/annotation/EnableDubboTest.java |    4 +-
 .../consumer/test/TestConsumerConfiguration.java   |    5 +-
 .../properties/DefaultDubboConfigBinderTest.java   |   13 +
 .../dubbo/config/spring/issues/Issue6252Test.java  |   50 +
 .../ZookeeperDubboSpringConsumerBootstrap.java     |   53 +
 .../ZookeeperDubboSpringConsumerXmlBootstrap.java  |   32 +-
 .../ZookeeperDubboSpringProviderBootstrap.java     |   60 +
 .../spring/schema/DubboNamespaceHandlerTest.java   |    4 +-
 .../config/spring/schema/GenericServiceTest.java   |   13 +
 .../src/test/resources/META-INF/config.properties  |    2 +
 .../resources/META-INF/issue-6252-test.properties  |   15 +
 .../zookeeper-dubbb-consumer.properties            |   14 +
 .../zookeeper-dubbb-provider.properties            |   10 +
 .../zookeeper-dubbo-consumer.xml                   |   34 +
 .../spring/multiple-services-with-methods.xml      |   45 +
 .../consul/ConsulDynamicConfiguration.java         |  123 +-
 .../consul/ConsulDynamicConfigurationTest.java     |   20 +-
 .../support/nacos/NacosDynamicConfiguration.java   |   64 +-
 .../zookeeper/ZookeeperDynamicConfiguration.java   |   68 +-
 .../ZookeeperDynamicConfigurationTest.java         |    4 +-
 .../demo/consumer/comp/DemoServiceComponent.java   |    4 +-
 .../dubbo/demo/provider/DemoServiceImpl.java       |    4 +-
 .../validation/support/jvalidation/JValidator.java |    6 +-
 .../metadata/CompositeServiceNameMapping.java      |   96 +
 .../org/apache/dubbo/metadata/MetadataService.java |    7 +-
 .../dubbo/metadata/MetadataServiceExporter.java    |   41 +-
 .../apache/dubbo/metadata/MetadataServiceType.java |   72 +
 .../metadata/ParameterizedServiceNameMapping.java} |   31 +-
 .../metadata/PropertiesFileServiceNameMapping.java |  148 ++
 .../metadata/ReadOnlyServiceNameMapping.java}      |   31 +-
 .../metadata/definition/TypeDefinitionBuilder.java |   10 +-
 .../metadata/definition/builder/TypeBuilder.java   |    3 +-
 .../BaseApplicationMetadataIdentifier.java         |    9 +-
 .../identifier/BaseServiceMetadataIdentifier.java  |    2 +-
 .../metadata/report/identifier/KeyTypeEnum.java    |   40 +-
 .../report/support/AbstractMetadataReport.java     |  133 +-
 .../support/ConfigCenterBasedMetadataReport.java   |  162 ++
 .../ConfigCenterBasedMetadataReportFactory.java    |   90 +
 .../file/FileSystemMetadataReportFactory.java}     |   21 +-
 .../AbstractAbstractWritableMetadataService.java   |  100 +
 ...che.dubbo.metadata.report.MetadataReportFactory |    1 +
 .../metadata/CompositeServiceNameMappingTest.java  |  107 +
 .../dubbo/metadata/MetadataConstantsTest.java}     |   19 +-
 .../dubbo/metadata/MetadataServiceTypeTest.java    |   40 +-
 .../ParameterizedServiceNameMappingTest.java       |   67 +
 .../PropertiesFileServiceNameMappingTest.java      |   60 +
 .../dubbo/metadata/ServiceNameMappingTest.java     |  121 ++
 .../metadata/definition/Test3TypeBuilder.java}     |   30 +-
 .../metadata/definition/TestTypeBuilder.java}      |   30 +-
 .../definition/TypeDefinitionBuilderTest.java      |   21 +-
 .../report/identifier/KeyTypeEnumTest.java}        |   20 +-
 .../support/AbstractMetadataReportFactoryTest.java |    9 +-
 .../report/support/AbstractMetadataReportTest.java |  121 +-
 .../ConfigCenterBasedMetadataReportTest.java       |  155 ++
 ...e.dubbo.metadata.definition.builder.TypeBuilder |    2 +
 .../META-INF/dubbo/service-name-mapping.properties |    3 +
 .../dubbo-metadata-report-consul/pom.xml           |    8 +-
 .../store/consul/ConsulMetadataReport.java         |    4 +
 .../store/consul/ConsulMetadataReportFactory.java  |   13 +-
 dubbo-metadata/dubbo-metadata-report-nacos/pom.xml |    9 +-
 .../metadata/store/nacos/NacosMetadataReport.java  |  131 +-
 .../store/nacos/NacosMetadataReportFactory.java    |   13 +-
 .../store/nacos/NacosMetadataReportTest.java       |  247 ---
 .../dubbo-metadata-report-zookeeper/pom.xml        |    2 +-
 .../store/zookeeper/ZookeeperMetadataReport.java   |   29 +
 .../zookeeper/ZookeeperMetadataReportFactory.java  |   22 +-
 .../zookeeper/ZookeeperMetadataReportTest.java     |  553 +++---
 .../dubbo/qos/legacy/InvokerTelnetHandlerTest.java |   14 +
 .../dubbo/qos/legacy/service/DemoService.java      |    2 +
 .../dubbo/qos/legacy/service/DemoServiceImpl.java  |    5 +
 .../dubbo/registry/client/ServiceInstance.java     |   22 +
 .../metadata/ServiceInstanceMetadataUtils.java     |    4 +-
 .../StandardMetadataServiceURLBuilder.java         |    1 +
 .../CompositeMetadataServiceProxyFactory.java      |  133 ++
 .../registry/integration/RegistryDirectory.java    |    4 +-
 .../integration/RegistryInvokerWrapper.java        |   18 +-
 .../registry/integration/RegistryProtocol.java     |   22 +-
 ...dubbo.registry.client.ServiceInstanceCustomizer |    3 +-
 .../client/DefaultServiceInstanceTest.java         |    9 +
 .../proxy/BaseMetadataServiceProxyFactoryTest.java |   78 +
 .../CompositeMetadataServiceProxyFactoryTest.java  |   96 +
 .../proxy/MetadataServiceProxyFactoryTest.java     |   49 +
 .../proxy/MyMetadataServiceProxyFactory.java       |   18 +-
 ...ient.metadata.proxy.MetadataServiceProxyFactory |    2 +
 .../dubbo/registry/consul/ConsulParameter.java     |   87 +
 .../dubbo/registry/consul/ConsulRegistry.java      |   32 +-
 .../registry/consul/ConsulServiceDiscovery.java    |   89 +-
 .../consul/ConsulServiceDiscoveryTest.java         |   16 +-
 .../registry/dubbo/RegistryDirectoryTest.java      |    2 +-
 .../dubbo/registry/dubbo/RegistryProtocolTest.java |    5 +-
 .../registry/eureka/EurekaServiceDiscovery.java    |    5 +-
 .../nacos/util/NacosNamingServiceUtils.java        |   48 +-
 .../remoting/http/tomcat/TomcatHttpServer.java     |   10 +-
 .../remoting/transport/netty4/NettyServer.java     |    6 +-
 .../org/apache/dubbo/rpc/AttachmentsAdapter.java   |   48 +-
 .../main/java/org/apache/dubbo/rpc/Constants.java  |    1 +
 .../org/apache/dubbo/rpc/filter/ContextFilter.java |    4 +-
 .../apache/dubbo/rpc/filter/GenericImplFilter.java |    3 +-
 .../dubbo/rpc/protocol/ProtocolFilterWrapper.java  |    2 +
 .../rpc/protocol/ProtocolListenerWrapper.java      |    2 +
 .../org/apache/dubbo/rpc/support/MockInvoker.java  |   24 +-
 .../org/apache/dubbo/rpc/support/RpcUtils.java     |   16 +-
 .../dubbo/internal/org.apache.dubbo.rpc.Filter     |    3 +-
 .../java/org/apache/dubbo/rpc/RpcContextTest.java  |    3 +-
 .../rpc/protocol/dubbo/CallbackServiceCodec.java   |    3 +
 .../protocol/dubbo/DecodeableRpcInvocation.java    |    2 +-
 .../dubbo/rpc/protocol/dubbo/DubboInvoker.java     |    6 +-
 .../rpc/protocol/dubbo/ArgumentCallbackTest.java   |   22 +
 .../protocol/webservice/WebServiceProtocol.java    |    9 +-
 .../dubbo/internal/org.apache.dubbo.rpc.Protocol   |    2 +-
 .../webservice/WebserviceProtocolTest.java         |   90 +
 .../serialize/hessian2/Hessian2ObjectInput.java    |    3 +-
 .../serialize/hessian2/Hessian2ObjectOutput.java   |    3 +-
 .../hessian2/Hessian2SerializerFactory.java        |    6 +-
 .../AbstractHessian2FactoryInitializer.java}       |   21 +-
 .../DefaultHessian2FactoryInitializer.java}        |   17 +-
 .../hessian2/dubbo/Hessian2FactoryInitializer.java |   43 +
 .../dubbo/WhitelistHessian2FactoryInitializer.java |   50 +
 ...alize.hessian2.dubbo.Hessian2FactoryInitializer |    2 +
 241 files changed, 7864 insertions(+), 3997 deletions(-)
 copy dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/{Cluster.java => ClusterInvoker.java} (52%)
 create mode 100644 dubbo-common/src/main/java/org/apache/dubbo/common/config/configcenter/TreePathDynamicConfiguration.java
 copy dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/identifier/KeyTypeEnum.java => dubbo-common/src/main/java/org/apache/dubbo/common/extension/Wrapper.java (69%)
 copy dubbo-common/src/main/java/org/apache/dubbo/common/extension/support/{ActivateComparator.java => WrapperComparator.java} (53%)
 create mode 100644 dubbo-common/src/main/java/org/apache/dubbo/common/utils/StringConstantFieldValuePredicate.java
 create mode 100644 dubbo-common/src/test/java/org/apache/dubbo/common/constants/CommonConstantsTest.java
 copy dubbo-common/src/test/java/org/apache/dubbo/{convert/StringToStringConverterTest.java => common/convert/ConverterTest.java} (53%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToBooleanConverterTest.java (92%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToCharArrayConverterTest.java (92%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToCharacterConverterTest.java (92%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToDoubleConverterTest.java (92%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToFloatConverterTest.java (92%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToIntegerConverterTest.java (92%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToLongConverterTest.java (92%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToOptionalConverterTest.java (92%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToShortConverterTest.java (92%)
 copy dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/StringToStringConverterTest.java (92%)
 create mode 100644 dubbo-common/src/test/java/org/apache/dubbo/common/convert/multiple/MultiValueConverterTest.java
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToArrayConverterTest.java (95%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToBlockingDequeConverterTest.java (95%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToBlockingQueueConverterTest.java (95%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToCollectionConverterTest.java (95%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToDequeConverterTest.java (95%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToListConverterTest.java (95%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToNavigableSetConverterTest.java (95%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToQueueConverterTest.java (97%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToSetConverterTest.java (97%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToSortedSetConverterTest.java (95%)
 rename dubbo-common/src/test/java/org/apache/dubbo/{ => common}/convert/multiple/StringToTransferQueueConverterTest.java (95%)
 copy dubbo-common/src/{main/java/org/apache/dubbo/common/utils/ArrayUtils.java => test/java/org/apache/dubbo/common/utils/StringConstantFieldValuePredicateTest.java} (54%)
 create mode 100644 dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/AbstractMetadataServiceExporter.java
 create mode 100644 dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/metadata/RemoteMetadataServiceExporter.java
 create mode 100644 dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter
 copy dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/{ZookeeperDubboServiceConsumerBootstrap.java => ConsulDubboServiceConsumerBootstrap.java} (80%)
 copy dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/{ZookeeperDubboServiceProviderBootstrap.java => ConsulDubboServiceProviderBootstrap.java} (77%)
 create mode 100644 dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/event/listener/PublishingServiceDefinitionListenerTest.java
 create mode 100644 dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/metadata/RemoteMetadataServiceExporterTest.java
 copy dubbo-common/src/test/java/org/apache/dubbo/convert/StringToStringConverterTest.java => dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/metadata/MetadataServiceExporterTest.java (52%)
 copy dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/{schema/GenericServiceTest.java => beans/factory/config/MultipleServicesWithMethodConfigsTest.java} (62%)
 create mode 100644 dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/issues/Issue6252Test.java
 create mode 100644 dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/samples/ZookeeperDubboSpringConsumerBootstrap.java
 copy dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java => dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/samples/ZookeeperDubboSpringConsumerXmlBootstrap.java (51%)
 create mode 100644 dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/samples/ZookeeperDubboSpringProviderBootstrap.java
 create mode 100644 dubbo-config/dubbo-config-spring/src/test/resources/META-INF/issue-6252-test.properties
 create mode 100644 dubbo-config/dubbo-config-spring/src/test/resources/META-INF/service-introspection/zookeeper-dubbb-consumer.properties
 create mode 100644 dubbo-config/dubbo-config-spring/src/test/resources/META-INF/service-introspection/zookeeper-dubbb-provider.properties
 create mode 100644 dubbo-config/dubbo-config-spring/src/test/resources/META-INF/service-introspection/zookeeper-dubbo-consumer.xml
 create mode 100644 dubbo-config/dubbo-config-spring/src/test/resources/META-INF/spring/multiple-services-with-methods.xml
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/CompositeServiceNameMapping.java
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MetadataServiceType.java
 copy dubbo-metadata/{dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java => dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ParameterizedServiceNameMapping.java} (56%)
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/PropertiesFileServiceNameMapping.java
 copy dubbo-metadata/{dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java => dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ReadOnlyServiceNameMapping.java} (54%)
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/ConfigCenterBasedMetadataReport.java
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/ConfigCenterBasedMetadataReportFactory.java
 copy dubbo-metadata/{dubbo-metadata-report-consul/src/main/java/org/apache/dubbo/metadata/store/consul/ConsulMetadataReportFactory.java => dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/file/FileSystemMetadataReportFactory.java} (60%)
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/store/AbstractAbstractWritableMetadataService.java
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/CompositeServiceNameMappingTest.java
 copy dubbo-metadata/dubbo-metadata-api/src/{main/java/org/apache/dubbo/metadata/report/identifier/KeyTypeEnum.java => test/java/org/apache/dubbo/metadata/MetadataConstantsTest.java} (65%)
 rename dubbo-common/src/test/java/org/apache/dubbo/convert/StringToStringConverterTest.java => dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/MetadataServiceTypeTest.java (50%)
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/ParameterizedServiceNameMappingTest.java
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/PropertiesFileServiceNameMappingTest.java
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/ServiceNameMappingTest.java
 copy dubbo-metadata/dubbo-metadata-api/src/{main/java/org/apache/dubbo/metadata/definition/builder/TypeBuilder.java => test/java/org/apache/dubbo/metadata/definition/Test3TypeBuilder.java} (63%)
 mode change 100755 => 100644
 copy dubbo-metadata/dubbo-metadata-api/src/{main/java/org/apache/dubbo/metadata/definition/builder/TypeBuilder.java => test/java/org/apache/dubbo/metadata/definition/TestTypeBuilder.java} (63%)
 mode change 100755 => 100644
 copy dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2SerializerFactory.java => dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/definition/TypeDefinitionBuilderTest.java (59%)
 copy dubbo-metadata/dubbo-metadata-api/src/{main/java/org/apache/dubbo/metadata/report/identifier/KeyTypeEnum.java => test/java/org/apache/dubbo/metadata/report/identifier/KeyTypeEnumTest.java} (66%)
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/report/support/ConfigCenterBasedMetadataReportTest.java
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/test/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
 create mode 100644 dubbo-metadata/dubbo-metadata-api/src/test/resources/META-INF/dubbo/service-name-mapping.properties
 delete mode 100644 dubbo-metadata/dubbo-metadata-report-nacos/src/test/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportTest.java
 create mode 100644 dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/proxy/CompositeMetadataServiceProxyFactory.java
 create mode 100644 dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/proxy/BaseMetadataServiceProxyFactoryTest.java
 create mode 100644 dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/proxy/CompositeMetadataServiceProxyFactoryTest.java
 create mode 100644 dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/proxy/MetadataServiceProxyFactoryTest.java
 copy dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/Hessian2SerializerFactory.java => dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/client/metadata/proxy/MyMetadataServiceProxyFactory.java (64%)
 create mode 100644 dubbo-registry/dubbo-registry-api/src/test/resources/META-INF/dubbo/org.apache.dubbo.registry.client.metadata.proxy.MetadataServiceProxyFactory
 create mode 100644 dubbo-registry/dubbo-registry-consul/src/main/java/org/apache/dubbo/registry/consul/ConsulParameter.java
 copy dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/{Hessian2SerializerFactory.java => dubbo/AbstractHessian2FactoryInitializer.java} (61%)
 copy dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/{Hessian2SerializerFactory.java => dubbo/DefaultHessian2FactoryInitializer.java} (70%)
 create mode 100644 dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/dubbo/Hessian2FactoryInitializer.java
 create mode 100644 dubbo-serialization/dubbo-serialization-hessian2/src/main/java/org/apache/dubbo/common/serialize/hessian2/dubbo/WhitelistHessian2FactoryInitializer.java
 create mode 100644 dubbo-serialization/dubbo-serialization-hessian2/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.common.serialize.hessian2.dubbo.Hessian2FactoryInitializer


[dubbo] 01/03: Merge branch 'master' of https://github.com/apache/dubbo

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 7645134e5a217da1c8b0c62a7eb07cfe9140cc25
Merge: cd34cc5 f798140
Author: ken.lj <ke...@gmail.com>
AuthorDate: Wed Jul 8 14:21:04 2020 +0800

    Merge branch 'master' of https://github.com/apache/dubbo

 .../dubbo/config/bootstrap/DubboBootstrap.java     | 10 +++--
 .../spring/context/annotation/EnableDubbo.java     |  2 +-
 .../context/annotation/EnableDubboConfig.java      |  2 +-
 .../demo/consumer/comp/DemoServiceComponent.java   |  4 +-
 .../dubbo/demo/provider/DemoServiceImpl.java       |  4 +-
 .../remoting/http/tomcat/TomcatHttpServer.java     |  3 +-
 .../serialize/hessian2/Hessian2ObjectInput.java    |  3 +-
 .../serialize/hessian2/Hessian2ObjectOutput.java   |  3 +-
 .../hessian2/Hessian2SerializerFactory.java        | 31 +---------------
 .../dubbo/AbstractHessian2FactoryInitializer.java  | 30 +++++++--------
 .../dubbo/DefaultHessian2FactoryInitializer.java   | 24 +++---------
 .../hessian2/dubbo/Hessian2FactoryInitializer.java | 43 ++++++++++++++++++++++
 .../WhitelistHessian2FactoryInitializer.java}      | 38 +++++++------------
 ...alize.hessian2.dubbo.Hessian2FactoryInitializer |  2 +
 14 files changed, 97 insertions(+), 102 deletions(-)


[dubbo] 03/03: Merge branch 'master' into 3.0

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 0d785f1346f48abf34a1a7690b437c3615780beb
Merge: 7bef551 7702fcf
Author: ken.lj <ke...@gmail.com>
AuthorDate: Wed Jul 22 14:45:08 2020 +0800

    Merge branch 'master' into 3.0
    
    # Conflicts:
    #	dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java
    #	dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
    #	dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
    #	dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/event/listener/ServiceNameMappingListener.java
    #	dubbo-dependencies-bom/pom.xml
    #	dubbo-dependencies/dubbo-dependencies-zookeeper/pom.xml
    #	dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/DynamicConfigurationServiceNameMapping.java
    #	dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/MetadataConstants.java
    #	dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/ServiceNameMapping.java
    #	dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/URLRevisionResolver.java
    #	dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/WritableMetadataService.java
    #	dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/MetadataReport.java
    #	dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/store/RemoteWritableMetadataService.java
    #	dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.ServiceNameMapping
    #	dubbo-metadata/dubbo-metadata-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.WritableMetadataService
    #	dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/DynamicConfigurationServiceNameMappingTest.java
    #	dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/InMemoryWritableMetadataServiceTest.java
    #	dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/URLRevisionResolverTest.java
    #	dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/store/InMemoryWritableMetadataServiceTest.java
    #	dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/store/RemoteWritableMetadataServiceTest.java
    #	dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
    #	dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/event/listener/CustomizableServiceInstanceListener.java
    #	dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/ExportedServicesRevisionMetadataCustomizer.java
    #	dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/SubscribedServicesRevisionMetadataCustomizer.java
    #	dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/proxy/BaseMetadataServiceProxyFactory.java
    #	dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/proxy/MetadataServiceProxyFactory.java
    #	dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/proxy/RemoteMetadataServiceProxy.java
    #	dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java
    #	dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryInvokerWrapper.java
    #	dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.event.EventListener
    #	dubbo-registry/dubbo-registry-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.registry.client.metadata.proxy.MetadataServiceProxyFactory
    #	pom.xml

 .gitignore                                         |    3 +
 README.md                                          |    8 +-
 dubbo-all/pom.xml                                  |    8 +
 .../java/org/apache/dubbo/rpc/cluster/Cluster.java |   15 +-
 .../cluster/{Cluster.java => ClusterInvoker.java}  |   84 +-
 .../org/apache/dubbo/rpc/cluster/Configurator.java |    5 +-
 .../cluster/configurator/parser/ConfigParser.java  |   26 +
 .../router/condition/config/ListenableRouter.java  |    2 +-
 .../cluster/router/mock/MockInvokersSelector.java  |    2 +-
 .../dubbo/rpc/cluster/router/tag/TagRouter.java    |   12 +
 .../cluster/support/AbstractClusterInvoker.java    |    3 +-
 .../support/registry/ZoneAwareClusterInvoker.java  |   32 +-
 .../support/wrapper/MockClusterInvoker.java        |    8 +-
 .../configurator/parser/ConfigParserTest.java      |   16 +
 .../support/AbstractClusterInvokerTest.java        |    2 +-
 .../src/main/java/org/apache/dubbo/common/URL.java |   60 +-
 .../configcenter/AbstractDynamicConfiguration.java |  103 +-
 .../AbstractDynamicConfigurationFactory.java       |    2 +-
 .../config/configcenter/DynamicConfiguration.java  |   10 +
 .../configcenter/TreePathDynamicConfiguration.java |  186 ++
 .../file/FileSystemDynamicConfiguration.java       |  150 +-
 .../dubbo/common/constants/CommonConstants.java    |   41 +-
 .../dubbo/common/constants/RegistryConstants.java  |    2 +
 .../org/apache/dubbo/common/convert/Converter.java |   17 +
 .../convert/multiple/MultiValueConverter.java      |   28 +
 .../dubbo/common/extension/ExtensionLoader.java    | 2069 ++++++++++----------
 .../org/apache/dubbo/common/extension/Wrapper.java |   17 +-
 .../extension/support/ActivateComparator.java      |    4 +-
 ...ivateComparator.java => WrapperComparator.java} |  232 +--
 .../org/apache/dubbo/common/utils/ArrayUtils.java  |   22 +
 .../org/apache/dubbo/common/utils/PathUtils.java   |    7 +-
 .../org/apache/dubbo/common/utils/PojoUtils.java   |   56 +-
 .../utils/StringConstantFieldValuePredicate.java   |   67 +
 .../org/apache/dubbo/common/utils/StringUtils.java |   57 +-
 .../apache/dubbo/config/MetadataReportConfig.java  |    4 +-
 .../java/org/apache/dubbo/config/MethodConfig.java |    7 +-
 .../apache/dubbo/config/ReferenceConfigBase.java   |    7 +-
 .../org/apache/dubbo/config/RegistryConfig.java    |   37 +-
 .../org/apache/dubbo/config/ServiceConfigBase.java |   25 +-
 .../dubbo/config/annotation/DubboReference.java    |    9 +
 .../apache/dubbo/config/context/ConfigManager.java |   13 +-
 .../java/org/apache/dubbo/event/EventListener.java |    2 +-
 .../org/apache/dubbo/rpc/model/ConsumerModel.java  |    7 +-
 .../test/java/org/apache/dubbo/common/URLTest.java | 1777 ++++++++---------
 .../AbstractDynamicConfigurationTest.java          |   60 +-
 .../file/FileSystemDynamicConfigurationTest.java   |   45 +-
 .../common/constants/CommonConstantsTest.java      |   41 +
 .../convert/ConverterTest.java}                    |   39 +-
 .../convert/StringToBooleanConverterTest.java      |    5 +-
 .../convert/StringToCharArrayConverterTest.java    |    5 +-
 .../convert/StringToCharacterConverterTest.java    |    5 +-
 .../convert/StringToDoubleConverterTest.java       |    5 +-
 .../convert/StringToFloatConverterTest.java        |    5 +-
 .../convert/StringToIntegerConverterTest.java      |    5 +-
 .../convert/StringToLongConverterTest.java         |    5 +-
 .../convert/StringToOptionalConverterTest.java     |    5 +-
 .../convert/StringToShortConverterTest.java        |    5 +-
 .../convert/StringToStringConverterTest.java       |    5 +-
 .../convert/multiple/MultiValueConverterTest.java  |   72 +
 .../multiple/StringToArrayConverterTest.java       |    4 +-
 .../StringToBlockingDequeConverterTest.java        |    4 +-
 .../StringToBlockingQueueConverterTest.java        |    4 +-
 .../multiple/StringToCollectionConverterTest.java  |    5 +-
 .../multiple/StringToDequeConverterTest.java       |    4 +-
 .../multiple/StringToListConverterTest.java        |    4 +-
 .../StringToNavigableSetConverterTest.java         |    6 +-
 .../multiple/StringToQueueConverterTest.java       |    3 +-
 .../convert/multiple/StringToSetConverterTest.java |    3 +-
 .../multiple/StringToSortedSetConverterTest.java   |    6 +-
 .../StringToTransferQueueConverterTest.java        |    6 +-
 .../apache/dubbo/common/utils/PojoUtilsTest.java   |   36 +
 .../StringConstantFieldValuePredicateTest.java}    |   44 +-
 .../apache/dubbo/common/utils/StringUtilsTest.java |   73 +-
 .../dubbo/config/context/ConfigManagerTest.java    |    7 +-
 .../org/apache/dubbo/event/EchoEventListener2.java |    2 +-
 .../dubbo/common/extension/ExtensionFactory.java   |    3 +
 .../java/org/apache/dubbo/config/ConfigTest.java   |    4 +-
 .../apache/dubbo/config/ReferenceConfigTest.java   |    4 +-
 dubbo-config/dubbo-config-api/pom.xml              |   31 +
 .../org/apache/dubbo/config/ReferenceConfig.java   |   83 +-
 .../org/apache/dubbo/config/ServiceConfig.java     |    2 +-
 .../dubbo/config/bootstrap/DubboBootstrap.java     |  224 ++-
 .../bootstrap/builders/ReferenceBuilder.java       |   22 +
 .../config/bootstrap/builders/RegistryBuilder.java |   12 +-
 .../config/bootstrap/builders/ServiceBuilder.java  |   18 +-
 .../metadata/AbstractMetadataServiceExporter.java  |  150 ++
 .../ConfigurableMetadataServiceExporter.java       |   69 +-
 .../metadata/RemoteMetadataServiceExporter.java    |   79 +
 .../dubbo/config/utils/ConfigValidationUtils.java  |   14 +-
 ...g.apache.dubbo.metadata.MetadataServiceExporter |    3 +
 .../apache/dubbo/config/ReferenceConfigTest.java   |    5 +-
 .../org/apache/dubbo/config/ServiceConfigTest.java |   30 +-
 ...va => ConsulDubboServiceConsumerBootstrap.java} |   10 +-
 ...va => ConsulDubboServiceProviderBootstrap.java} |   10 +-
 .../NacosDubboServiceConsumerBootstrap.java        |   21 +-
 .../NacosDubboServiceProviderBootstrap.java        |   18 +-
 .../ZookeeperDubboServiceConsumerBootstrap.java    |   13 +-
 .../ZookeeperDubboServiceProviderBootstrap.java    |    9 +-
 .../bootstrap/builders/ReferenceBuilderTest.java   |   15 +-
 .../bootstrap/builders/RegistryBuilderTest.java    |    2 +-
 .../bootstrap/builders/ServiceBuilderTest.java     |   32 +-
 .../PublishingServiceDefinitionListenerTest.java   |   94 +
 .../RemoteMetadataServiceExporterTest.java         |  106 +
 .../config/url/ExporterSideConfigUrlTest.java      |    5 +-
 .../metadata/MetadataServiceExporterTest.java      |   38 +-
 dubbo-config/dubbo-config-spring/pom.xml           |   21 +
 .../apache/dubbo/config/spring/ServiceBean.java    |    6 +-
 .../ReferenceAnnotationBeanPostProcessor.java      |   92 +-
 .../annotation/ServiceClassPostProcessor.java      |    4 +-
 .../spring/context/annotation/EnableDubbo.java     |    2 +-
 .../context/annotation/EnableDubboConfig.java      |    2 +-
 .../spring/extension/SpringExtensionFactory.java   |    2 +-
 .../schema/AnnotationBeanDefinitionParser.java     |   10 +-
 .../spring/schema/DubboBeanDefinitionParser.java   |   45 +-
 .../spring/schema/DubboNamespaceHandler.java       |   25 +-
 .../src/main/resources/META-INF/dubbo.xsd          |   17 +-
 .../ReferenceAnnotationBeanPostProcessorTest.java  |   13 +
 .../annotation/ReferenceBeanBuilderTest.java       |   29 +-
 .../ServiceAnnotationBeanPostProcessorTest.java    |   13 +
 .../annotation/ServiceClassPostProcessorTest.java  |   13 +
 .../MultipleServicesWithMethodConfigsTest.java}    |   30 +-
 .../DubboComponentScanRegistrarTest.java           |    4 +-
 .../spring/context/annotation/EnableDubboTest.java |    4 +-
 .../consumer/test/TestConsumerConfiguration.java   |    5 +-
 .../properties/DefaultDubboConfigBinderTest.java   |   13 +
 .../dubbo/config/spring/issues/Issue6252Test.java  |   50 +
 .../ZookeeperDubboSpringConsumerBootstrap.java     |   53 +
 .../ZookeeperDubboSpringConsumerXmlBootstrap.java  |   32 +-
 .../ZookeeperDubboSpringProviderBootstrap.java     |   60 +
 .../spring/schema/DubboNamespaceHandlerTest.java   |    4 +-
 .../config/spring/schema/GenericServiceTest.java   |   13 +
 .../src/test/resources/META-INF/config.properties  |    2 +
 .../resources/META-INF/issue-6252-test.properties  |   15 +
 .../zookeeper-dubbb-consumer.properties            |   14 +
 .../zookeeper-dubbb-provider.properties            |   10 +
 .../zookeeper-dubbo-consumer.xml                   |   34 +
 .../spring/multiple-services-with-methods.xml      |   45 +
 .../consul/ConsulDynamicConfiguration.java         |  123 +-
 .../consul/ConsulDynamicConfigurationTest.java     |   20 +-
 .../support/nacos/NacosDynamicConfiguration.java   |   64 +-
 .../zookeeper/ZookeeperDynamicConfiguration.java   |   68 +-
 .../ZookeeperDynamicConfigurationTest.java         |    4 +-
 .../demo/consumer/comp/DemoServiceComponent.java   |    4 +-
 .../dubbo/demo/provider/DemoServiceImpl.java       |    4 +-
 .../validation/support/jvalidation/JValidator.java |    6 +-
 .../metadata/CompositeServiceNameMapping.java      |   96 +
 .../org/apache/dubbo/metadata/MetadataService.java |    7 +-
 .../dubbo/metadata/MetadataServiceExporter.java    |   41 +-
 .../apache/dubbo/metadata/MetadataServiceType.java |   72 +
 .../metadata/ParameterizedServiceNameMapping.java} |   31 +-
 .../metadata/PropertiesFileServiceNameMapping.java |  148 ++
 .../metadata/ReadOnlyServiceNameMapping.java}      |   31 +-
 .../metadata/definition/TypeDefinitionBuilder.java |   10 +-
 .../metadata/definition/builder/TypeBuilder.java   |    3 +-
 .../BaseApplicationMetadataIdentifier.java         |    9 +-
 .../identifier/BaseServiceMetadataIdentifier.java  |    2 +-
 .../metadata/report/identifier/KeyTypeEnum.java    |   40 +-
 .../report/support/AbstractMetadataReport.java     |  133 +-
 .../support/ConfigCenterBasedMetadataReport.java   |  162 ++
 .../ConfigCenterBasedMetadataReportFactory.java    |   90 +
 .../file/FileSystemMetadataReportFactory.java}     |   21 +-
 .../AbstractAbstractWritableMetadataService.java   |  100 +
 ...che.dubbo.metadata.report.MetadataReportFactory |    1 +
 .../metadata/CompositeServiceNameMappingTest.java  |  107 +
 .../dubbo/metadata/MetadataConstantsTest.java}     |   19 +-
 .../dubbo/metadata/MetadataServiceTypeTest.java    |   40 +-
 .../ParameterizedServiceNameMappingTest.java       |   67 +
 .../PropertiesFileServiceNameMappingTest.java      |   60 +
 .../dubbo/metadata/ServiceNameMappingTest.java     |  121 ++
 .../metadata/definition/Test3TypeBuilder.java}     |   30 +-
 .../metadata/definition/TestTypeBuilder.java}      |   30 +-
 .../definition/TypeDefinitionBuilderTest.java      |   21 +-
 .../report/identifier/KeyTypeEnumTest.java}        |   20 +-
 .../support/AbstractMetadataReportFactoryTest.java |    9 +-
 .../report/support/AbstractMetadataReportTest.java |  121 +-
 .../ConfigCenterBasedMetadataReportTest.java       |  155 ++
 ...e.dubbo.metadata.definition.builder.TypeBuilder |    2 +
 .../META-INF/dubbo/service-name-mapping.properties |    3 +
 .../dubbo-metadata-report-consul/pom.xml           |    8 +-
 .../store/consul/ConsulMetadataReport.java         |    4 +
 .../store/consul/ConsulMetadataReportFactory.java  |   13 +-
 dubbo-metadata/dubbo-metadata-report-nacos/pom.xml |    9 +-
 .../metadata/store/nacos/NacosMetadataReport.java  |  131 +-
 .../store/nacos/NacosMetadataReportFactory.java    |   13 +-
 .../store/nacos/NacosMetadataReportTest.java       |  247 ---
 .../dubbo-metadata-report-zookeeper/pom.xml        |    2 +-
 .../store/zookeeper/ZookeeperMetadataReport.java   |   29 +
 .../zookeeper/ZookeeperMetadataReportFactory.java  |   22 +-
 .../zookeeper/ZookeeperMetadataReportTest.java     |  553 +++---
 .../dubbo/qos/legacy/InvokerTelnetHandlerTest.java |   14 +
 .../dubbo/qos/legacy/service/DemoService.java      |    2 +
 .../dubbo/qos/legacy/service/DemoServiceImpl.java  |    5 +
 .../dubbo/registry/client/ServiceInstance.java     |   22 +
 .../metadata/ServiceInstanceMetadataUtils.java     |    4 +-
 .../StandardMetadataServiceURLBuilder.java         |    1 +
 .../CompositeMetadataServiceProxyFactory.java      |  133 ++
 .../registry/integration/RegistryDirectory.java    |    4 +-
 .../integration/RegistryInvokerWrapper.java        |   18 +-
 .../registry/integration/RegistryProtocol.java     |   22 +-
 ...dubbo.registry.client.ServiceInstanceCustomizer |    3 +-
 .../client/DefaultServiceInstanceTest.java         |    9 +
 .../proxy/BaseMetadataServiceProxyFactoryTest.java |   78 +
 .../CompositeMetadataServiceProxyFactoryTest.java  |   96 +
 .../proxy/MetadataServiceProxyFactoryTest.java     |   49 +
 .../proxy/MyMetadataServiceProxyFactory.java       |   18 +-
 ...ient.metadata.proxy.MetadataServiceProxyFactory |    2 +
 .../dubbo/registry/consul/ConsulParameter.java     |   87 +
 .../dubbo/registry/consul/ConsulRegistry.java      |   32 +-
 .../registry/consul/ConsulServiceDiscovery.java    |   89 +-
 .../consul/ConsulServiceDiscoveryTest.java         |   16 +-
 .../registry/dubbo/RegistryDirectoryTest.java      |    2 +-
 .../dubbo/registry/dubbo/RegistryProtocolTest.java |    5 +-
 .../registry/eureka/EurekaServiceDiscovery.java    |    5 +-
 .../nacos/util/NacosNamingServiceUtils.java        |   48 +-
 .../remoting/http/tomcat/TomcatHttpServer.java     |   10 +-
 .../remoting/transport/netty4/NettyServer.java     |    6 +-
 .../org/apache/dubbo/rpc/AttachmentsAdapter.java   |   48 +-
 .../main/java/org/apache/dubbo/rpc/Constants.java  |    1 +
 .../org/apache/dubbo/rpc/filter/ContextFilter.java |    4 +-
 .../apache/dubbo/rpc/filter/GenericImplFilter.java |    3 +-
 .../dubbo/rpc/protocol/ProtocolFilterWrapper.java  |    2 +
 .../rpc/protocol/ProtocolListenerWrapper.java      |    2 +
 .../org/apache/dubbo/rpc/support/MockInvoker.java  |   24 +-
 .../org/apache/dubbo/rpc/support/RpcUtils.java     |   16 +-
 .../dubbo/internal/org.apache.dubbo.rpc.Filter     |    3 +-
 .../java/org/apache/dubbo/rpc/RpcContextTest.java  |    3 +-
 .../rpc/protocol/dubbo/CallbackServiceCodec.java   |    3 +
 .../protocol/dubbo/DecodeableRpcInvocation.java    |    2 +-
 .../dubbo/rpc/protocol/dubbo/DubboInvoker.java     |    6 +-
 .../rpc/protocol/dubbo/ArgumentCallbackTest.java   |   22 +
 .../protocol/webservice/WebServiceProtocol.java    |    9 +-
 .../dubbo/internal/org.apache.dubbo.rpc.Protocol   |    2 +-
 .../webservice/WebserviceProtocolTest.java         |   90 +
 .../serialize/hessian2/Hessian2ObjectInput.java    |    3 +-
 .../serialize/hessian2/Hessian2ObjectOutput.java   |    3 +-
 .../hessian2/Hessian2SerializerFactory.java        |    6 +-
 .../AbstractHessian2FactoryInitializer.java}       |   21 +-
 .../DefaultHessian2FactoryInitializer.java}        |   17 +-
 .../hessian2/dubbo/Hessian2FactoryInitializer.java |   43 +
 .../dubbo/WhitelistHessian2FactoryInitializer.java |   50 +
 ...alize.hessian2.dubbo.Hessian2FactoryInitializer |    2 +
 241 files changed, 7864 insertions(+), 3997 deletions(-)

diff --cc dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
index 211d6f8,6ab3a89..ac56025
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
@@@ -602,7 -623,42 +624,43 @@@ class URL implements Serializable 
          return Arrays.asList(strArray);
      }
  
+     /**
+      * Get parameter
+      *
+      * @param key       the key of parameter
+      * @param valueType the type of parameter value
+      * @param <T>       the type of parameter value
+      * @return get the parameter if present, or <code>null</code>
+      * @since 2.7.8
+      */
+     public <T> T getParameter(String key, Class<T> valueType) {
+         return getParameter(key, valueType, null);
+     }
+ 
+     /**
+      * Get parameter
+      *
+      * @param key          the key of parameter
+      * @param valueType    the type of parameter value
+      * @param defaultValue the default value if parameter is absent
+      * @param <T>          the type of parameter value
+      * @return get the parameter if present, or <code>defaultValue</code> will be used.
+      * @since 2.7.8
+      */
+     public <T> T getParameter(String key, Class<T> valueType, T defaultValue) {
+         String value = getParameter(key);
+         T result = null;
+         if (!isBlank(value)) {
+             result = convertIfPossible(value, valueType);
+         }
+         if (result == null) {
+             result = defaultValue;
+         }
+         return result;
+     }
+ 
 -    private Map<String, Number> getNumbers() {
++
 +    protected Map<String, Number> getNumbers() {
          // concurrent initialization is tolerant
          if (numbers == null) {
              numbers = new ConcurrentHashMap<>();
diff --cc dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index df3be4b,da90597..f38b80b
--- 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
@@@ -61,7 -64,9 +64,8 @@@ import java.util.Set
  import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;
  import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;
  import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR;
+ import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR_CHAR;
  import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;
 -import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;
  import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;
  import static org.apache.dubbo.common.constants.CommonConstants.LOCALHOST_VALUE;
  import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;
@@@ -335,6 -388,24 +387,18 @@@ public class ReferenceConfig<T> extend
              }
          }
  
+         if (logger.isInfoEnabled()) {
+             logger.info("Refer dubbo service " + interfaceClass.getName() + " from url " + invoker.getUrl());
+         }
 -        /**
 -         * @since 2.7.0
 -         * ServiceData Store
 -         */
 -        String metadata = map.get(METADATA_KEY);
 -        WritableMetadataService metadataService = WritableMetadataService.getExtension(metadata == null ? DEFAULT_METADATA_STORAGE_TYPE : metadata);
 -        if (metadataService != null) {
 -            URL consumerURL = new URL(CONSUMER_PROTOCOL, map.remove(REGISTER_IP_KEY), 0, map.get(INTERFACE_KEY), map);
 -            metadataService.publishServiceDefinition(consumerURL);
 -        }
++
++        URL consumerURL = new URL(CONSUMER_PROTOCOL, map.remove(REGISTER_IP_KEY), 0, map.get(INTERFACE_KEY), map);
++        MetadataUtils.publishServiceDefinition(consumerURL);
++
+         // create service proxy
+         return (T) PROXY_FACTORY.getProxy(invoker, ProtocolUtils.isGeneric(generic));
+     }
+ 
+     private void checkInvokerAvailable() throws IllegalStateException {
          if (shouldCheck() && !invoker.isAvailable()) {
              invoker.destroy();
              throw new IllegalStateException("Failed to check the status of the service "
diff --cc dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
index a9f2bcf,1ef096b..3806b73
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
@@@ -17,9 -17,9 +17,10 @@@
  package org.apache.dubbo.config.bootstrap;
  
  import org.apache.dubbo.common.URL;
 +import org.apache.dubbo.common.config.ConfigurationUtils;
  import org.apache.dubbo.common.config.Environment;
  import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;
+ import org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory;
  import org.apache.dubbo.common.config.configcenter.wrapper.CompositeDynamicConfiguration;
  import org.apache.dubbo.common.extension.ExtensionLoader;
  import org.apache.dubbo.common.lang.ShutdownHookCallback;
@@@ -62,14 -62,13 +63,15 @@@ import org.apache.dubbo.event.GenericEv
  import org.apache.dubbo.metadata.MetadataService;
  import org.apache.dubbo.metadata.MetadataServiceExporter;
  import org.apache.dubbo.metadata.WritableMetadataService;
+ import org.apache.dubbo.metadata.report.MetadataReportFactory;
  import org.apache.dubbo.metadata.report.MetadataReportInstance;
  import org.apache.dubbo.registry.client.DefaultServiceInstance;
 -import org.apache.dubbo.registry.client.ServiceDiscovery;
 -import org.apache.dubbo.registry.client.ServiceDiscoveryRegistry;
  import org.apache.dubbo.registry.client.ServiceInstance;
  import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;
 +import org.apache.dubbo.registry.client.metadata.MetadataUtils;
 +import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;
 +import org.apache.dubbo.registry.client.metadata.store.InMemoryWritableMetadataService;
 +import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl;
  import org.apache.dubbo.registry.support.AbstractRegistryFactory;
  import org.apache.dubbo.rpc.model.ApplicationModel;
  
@@@ -95,15 -97,13 +101,18 @@@ import static java.util.concurrent.Exec
  import static org.apache.dubbo.common.config.ConfigurationUtils.parseProperties;
  import static org.apache.dubbo.common.config.configcenter.DynamicConfiguration.getDynamicConfiguration;
  import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;
+ import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_SPLIT_PATTERN;
  import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;
+ import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;
  import static org.apache.dubbo.common.function.ThrowableAction.execute;
+ import static org.apache.dubbo.common.utils.StringUtils.isEmpty;
  import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;
 +import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_METADATA_PUBLISH_DELAY;
 +import static org.apache.dubbo.metadata.MetadataConstants.METADATA_PUBLISH_DELAY_KEY;
 +import static org.apache.dubbo.metadata.WritableMetadataService.getDefaultExtension;
 +import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.calInstanceRevision;
  import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.setMetadataStorageType;
 +import static org.apache.dubbo.registry.support.AbstractRegistryFactory.getServiceDiscoveries;
  import static org.apache.dubbo.remoting.Constants.CLIENT_KEY;
  
  /**
@@@ -522,8 -524,13 +533,11 @@@ public class DubboBootstrap extends Gen
  
          checkGlobalConfigs();
  
+         // @since 2.7.8
+         startMetadataCenter();
+ 
          initMetadataService();
  
 -        initMetadataServiceExports();
 -
          initEventListener();
  
          if (logger.isInfoEnabled()) {
diff --cc dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceInstance.java
index 7b1890d,896af9c..d019a99
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceInstance.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceInstance.java
@@@ -84,11 -82,29 +84,33 @@@ public interface ServiceInstance extend
       */
      Map<String, String> getMetadata();
  
 +    Map<String, String> getExtendParams();
 +
 +    Map<String, String> getAllParams();
 +
      /**
+      * Get the value of metadata by the specified name
+      *
+      * @param name the specified name
+      * @return the value of metadata if found, or <code>null</code>
+      * @since 2.7.8
+      */
+     default String getMetadata(String name) {
+         return getMetadata(name, null);
+     }
+ 
+     /**
+      * Get the value of metadata by the specified name
+      *
+      * @param name the specified name
+      * @return the value of metadata if found, or <code>defaultValue</code>
+      * @since 2.7.8
+      */
+     default String getMetadata(String name, String defaultValue) {
+         return getMetadata().getOrDefault(name, defaultValue);
+     }
+ 
+     /**
       * @return the hash code of current instance.
       */
      int hashCode();
diff --cc dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryInvokerWrapper.java
index c6ce46f,b7e03c4..9e37c3e
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryInvokerWrapper.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryInvokerWrapper.java
@@@ -22,14 -22,14 +22,14 @@@ import org.apache.dubbo.rpc.Invoker
  import org.apache.dubbo.rpc.Result;
  import org.apache.dubbo.rpc.RpcException;
  import org.apache.dubbo.rpc.cluster.Cluster;
+ import org.apache.dubbo.rpc.cluster.ClusterInvoker;
  
- class RegistryInvokerWrapper<T> implements Invoker<T> {
+ class RegistryInvokerWrapper<T> implements ClusterInvoker<T> {
 -    private RegistryDirectory<T> directory;
 +    private DynamicDirectory<T> directory;
      private Cluster cluster;
      private Invoker<T> invoker;
-     private URL url;
  
-     public RegistryInvokerWrapper(DynamicDirectory<T> directory, Cluster cluster, Invoker<T> invoker, URL url) {
 -    public RegistryInvokerWrapper(RegistryDirectory<T> directory, Cluster cluster, Invoker<T> invoker) {
++    public RegistryInvokerWrapper(DynamicDirectory<T> directory, Cluster cluster, Invoker<T> invoker) {
          this.directory = directory;
          this.cluster = cluster;
          this.invoker = invoker;
diff --cc dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
index 281b0aa,9a4acc8..976d0da
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/integration/RegistryProtocol.java
@@@ -449,19 -446,16 +446,17 @@@ public class RegistryProtocol implement
          String group = qs.get(GROUP_KEY);
          if (group != null && group.length() > 0) {
              if ((COMMA_SPLIT_PATTERN.split(group)).length > 1 || "*".equals(group)) {
-                 return doRefer(getMergeableCluster(), registry, type, url);
+                 return doRefer(Cluster.getCluster(MergeableCluster.NAME), registry, type, url);
              }
          }
-         return doRefer(cluster, registry, type, url);
-     }
  
-     private Cluster getMergeableCluster() {
-         return ExtensionLoader.getExtensionLoader(Cluster.class).getExtension("mergeable");
+         Cluster cluster = Cluster.getCluster(qs.get(CLUSTER_KEY));
+         return doRefer(cluster, registry, type, url);
      }
  
 -    private <T> Invoker<T> doRefer(Cluster cluster, Registry registry, Class<T> type, URL url) {
 -        RegistryDirectory<T> directory = new RegistryDirectory<T>(type, url);
 +    protected <T> Invoker<T> doRefer(Cluster cluster, Registry registry, Class<T> type, URL url) {
 +        // FIXME, SPI extension, support prototype instance
 +        DynamicDirectory<T> directory = createDirectory(type, url);
          directory.setRegistry(registry);
          directory.setProtocol(protocol);
          // all attributes of REFER_KEY
diff --cc dubbo-registry/dubbo-registry-consul/src/main/java/org/apache/dubbo/registry/consul/ConsulServiceDiscovery.java
index a43edea,b05f1d8..0c330aa
--- a/dubbo-registry/dubbo-registry-consul/src/main/java/org/apache/dubbo/registry/consul/ConsulServiceDiscovery.java
+++ b/dubbo-registry/dubbo-registry-consul/src/main/java/org/apache/dubbo/registry/consul/ConsulServiceDiscovery.java
@@@ -97,13 -126,41 +126,46 @@@ public class ConsulServiceDiscovery imp
          ttlScheduler = new TtlScheduler(checkPassInterval, client);
          this.tag = registryURL.getParameter(QUERY_TAG);
          this.registeringTags.addAll(getRegisteringTags(url));
+         this.aclToken = ACL_TOKEN.getValue(registryURL);
+         this.tags = getTags(registryURL);
+         this.consistencyMode = getConsistencyMode(registryURL);
+         this.defaultZoneMetadataName = DEFAULT_ZONE_METADATA_NAME.getValue(registryURL);
+         this.instanceZone = INSTANCE_ZONE.getValue(registryURL);
+         this.instanceGroup = INSTANCE_GROUP.getValue(registryURL);
+     }
+ 
+     /**
+      * Get the {@link ConsistencyMode}
+      *
+      * @param registryURL the {@link URL} of registry
+      * @return non-null, {@link ConsistencyMode#DEFAULT} as default
+      * @sine 2.7.8
+      */
+     private ConsistencyMode getConsistencyMode(URL registryURL) {
+         String value = CONSISTENCY_MODE.getValue(registryURL);
+         if (StringUtils.isNotEmpty(value)) {
+             return ConsistencyMode.valueOf(value);
+         }
+         return ConsistencyMode.DEFAULT;
+     }
+ 
+     /**
+      * Get the "tags" from the {@link URL} of registry
+      *
+      * @param registryURL the {@link URL} of registry
+      * @return non-null
+      * @sine 2.7.8
+      */
+     private List<String> getTags(URL registryURL) {
+         String value = TAGS.getValue(registryURL);
+         return StringUtils.splitToList(value, COMMA_SEPARATOR_CHAR);
      }
  
 +    @Override
 +    public URL getUrl() {
 +        return url;
 +    }
 +
      private List<String> getRegisteringTags(URL url) {
          List<String> tags = new ArrayList<>();
          String rawTag = url.getParameter(REGISTER_TAG);


[dubbo] 02/03: Merge branch 'master' of https://github.com/apache/dubbo

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 7702fcfa1b7dd62e947e9275a8cb3942640948a2
Merge: 7645134 d41bfab
Author: ken.lj <ke...@gmail.com>
AuthorDate: Wed Jul 22 14:16:49 2020 +0800

    Merge branch 'master' of https://github.com/apache/dubbo

 .../configcenter/TreePathDynamicConfiguration.java | 25 ++++--
 .../dubbo/common/constants/CommonConstants.java    |  5 ++
 .../org/apache/dubbo/common/utils/PojoUtils.java   | 22 ++++-
 .../org/apache/dubbo/config/RegistryConfig.java    | 34 ++++----
 .../dubbo/common/extension/ExtensionFactory.java   |  3 +
 .../org/apache/dubbo/config/ReferenceConfig.java   | 34 ++++++--
 .../org/apache/dubbo/config/ServiceConfig.java     | 16 ++++
 .../dubbo/config/bootstrap/DubboBootstrap.java     | 97 +++++++++++++++++++---
 .../config/bootstrap/builders/RegistryBuilder.java |  2 +-
 .../PublishingServiceDefinitionListener.java       | 74 -----------------
 .../internal/org.apache.dubbo.event.EventListener  |  4 +-
 .../NacosDubboServiceProviderBootstrap.java        |  6 +-
 .../ZookeeperDubboServiceProviderBootstrap.java    |  6 +-
 .../src/test/resources/META-INF/config.properties  |  2 +
 .../resources/META-INF/issue-6252-test.properties  |  6 +-
 dubbo-dependencies-bom/pom.xml                     |  6 +-
 .../dubbo-dependencies-zookeeper/pom.xml           |  2 +-
 .../identifier/BaseServiceMetadataIdentifier.java  |  2 +-
 .../ConfigCenterBasedMetadataReportFactory.java    | 28 ++++---
 .../nacos/util/NacosNamingServiceUtils.java        | 45 ++--------
 .../remoting/http/tomcat/TomcatHttpServer.java     |  7 +-
 .../protocol/webservice/WebServiceProtocol.java    |  9 +-
 .../dubbo/internal/org.apache.dubbo.rpc.Protocol   |  2 +-
 .../webservice/WebserviceProtocolTest.java         | 90 ++++++++++++++++++++
 .../hessian2/Hessian2SerializerFactory.java        |  2 +-
 pom.xml                                            |  2 +-
 26 files changed, 342 insertions(+), 189 deletions(-)