You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by me...@apache.org on 2020/07/13 04:16:21 UTC

[dubbo] branch 2.7.8-release updated: 2.7.8 Bugfix (#6452)

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

mercyblitz pushed a commit to branch 2.7.8-release
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/2.7.8-release by this push:
     new 836a0fe  2.7.8 Bugfix (#6452)
836a0fe is described below

commit 836a0fe6e892c284601957692769ad599845bef2
Author: Mercy Ma <me...@gmail.com>
AuthorDate: Mon Jul 13 12:16:00 2020 +0800

    2.7.8 Bugfix (#6452)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * 2.7.8 service introspection (#6300)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * 2.7.8 service introspection update (#6308)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * 2.7.8 service introspection (#6317)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * 2.7.8 service introspection (#6337)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * Polish apache/dubbo#6170 : [Feature] Introducing the externalized configuration for ServiceNameMapping
    
    * Polish apache/dubbo#6342 : [Enhancement] Introducing the composite ServiceNameMapping
    
    * Refactor
    
    * Polish apache/dubbo#6172 : [Feature] Adding the "services" attribute methods into @DubboReference
    
    * Polish apache/dubbo#6173 : [Feature] Adding the "services" attribute into <dubbo:reference> element
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6252
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6224 : Filter chain was not invoked with local calls since v2.7.6
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * 2.7.8 service introspection (#6366)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * Polish apache/dubbo#6170 : [Feature] Introducing the externalized configuration for ServiceNameMapping
    
    * Polish apache/dubbo#6342 : [Enhancement] Introducing the composite ServiceNameMapping
    
    * Refactor
    
    * Polish apache/dubbo#6172 : [Feature] Adding the "services" attribute methods into @DubboReference
    
    * Polish apache/dubbo#6173 : [Feature] Adding the "services" attribute into <dubbo:reference> element
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6252
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6224 : Filter chain was not invoked with local calls since v2.7.6
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : Adding META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * 2.7.8 Test Cases (#6384)
    
    * Polish apache/dubbo#6152
    
    * Polish apache/dubbo#6174 : [Enhancement] Registering the common beans for Spring XML meta-configuration
    
    * Polish apache/dubbo#6174 : Fixing the test-cases
    
    * Polish apache/dubbo#6174 : Fixing the test-cases
    
    * Add the test-case for multiple services with MethodConfigs
    
    * Fixed the test-cases
    
    * 2.7.8 Dev (#6386)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * sync wait netty server to finish shutdown (#6281)
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * maybe we can remove null judge in this case (#6321)
    
    * update
    
    * update
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * Polish apache/dubbo#6170 : [Feature] Introducing the externalized configuration for ServiceNameMapping
    
    * Polish apache/dubbo#6342 : [Enhancement] Introducing the composite ServiceNameMapping
    
    * Refactor
    
    * fix method name typo in JValidator.java (#6344)
    
    * [Dubbo-6340]fix application cannot exit when use consul registry (#6341)
    
    * fix application cannot exit when use consul registry
    
    * make consul registry suppor ACL (#6313)
    
    * make consul registry suppor ACL
    
    * Polish apache/dubbo#6172 : [Feature] Adding the "services" attribute methods into @DubboReference
    
    * Polish apache/dubbo#6173 : [Feature] Adding the "services" attribute into <dubbo:reference> element
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * fix publish null value when use consul config center (#6351)
    
    * fix publish null value when use consul config center
    
    * Polish apache/dubbo#6252
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6224 : Filter chain was not invoked with local calls since v2.7.6
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : Adding META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter
    
    * fix the priority of ListenableRouter were not effective (#6148)
    
    fixes #4822
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * when the url is generic, the log level should be info (#6363)
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * fix NPE when check=false is set and provider is empty. (#6376)
    
    fixes #6228
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * fix #6306.  support TypeBuilder sort (#6365)
    
    * fix #6306. support TypeBuilder sort
    
    * fix #6306. support TypeBuilder sort
    
    * fix #6306. support TypeBuilder sort
    
    * remove unused import
    
    * add license for test file
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * enhance ClusterInvoker & ExtensionLoader (#6343)
    
    - Introduce ClusterInvoker to better support multiple registries subscription
    - Wrapper sort and enable/disable
    - some small fixes
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Fixed the test-cases
    
    Co-authored-by: tswstarplanet <ts...@apache.org>
    Co-authored-by: Nine <ni...@gmail.com>
    Co-authored-by: 陈哈哈 <ch...@outlook.com>
    Co-authored-by: luoning810 <18...@163.com>
    Co-authored-by: cvictory <sh...@gmail.com>
    Co-authored-by: ken.lj <ke...@gmail.com>
    
    * Fixes the issue of merging code in Github
    
    * Polish apache/dubbo#6389 : [Issue] Resolving the issues with ConsulServiceDiscovery
    
    * Fixes the test-cases
    
    * Fixes the test-cases
    
    * Fixes the test-cases
    
    * Upgrade the release version to be 2.7.8
    
    * Hessian2 whitelist (#6378)
    
    fixes #6364
    
    * Polish apache/dubbo#6261 : Migration the latest Nacos registry implementation to upstream
    
    * Hessian whitelist2 (#6423)
    
    * Polish apache/dubbo#6425 : [Infrastructure] Upgrading the spring-context-support to be 1.0.7
    
    * double check lock (#6422)
    
    * Correction: comments about multipleConfig (#6414)
    
    * Polish apache/dubbo#6418 : Rest Protocol can't work when use Tomcat 9.0.x as web container for Dubbo 2.7.7
    
    * fix bug: Rest Protocol can't work when use Tomcat as WebContainer (#6402)
    
    Co-authored-by: 01376420 <1qaz!QAZ>
    
    * Update @Service And @Reference with @DubboService and @DubboReference (#6355)
    
    * 2.7.8 release (#6430)
    
    * Upgrade the release version to be 2.7.8 (#6411)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * 2.7.8 service introspection (#6300)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * 2.7.8 service introspection update (#6308)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * 2.7.8 service introspection (#6317)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * 2.7.8 service introspection (#6337)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * Polish apache/dubbo#6170 : [Feature] Introducing the externalized configuration for ServiceNameMapping
    
    * Polish apache/dubbo#6342 : [Enhancement] Introducing the composite ServiceNameMapping
    
    * Refactor
    
    * Polish apache/dubbo#6172 : [Feature] Adding the "services" attribute methods into @DubboReference
    
    * Polish apache/dubbo#6173 : [Feature] Adding the "services" attribute into <dubbo:reference> element
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6252
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6224 : Filter chain was not invoked with local calls since v2.7.6
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * 2.7.8 service introspection (#6366)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * Polish apache/dubbo#6170 : [Feature] Introducing the externalized configuration for ServiceNameMapping
    
    * Polish apache/dubbo#6342 : [Enhancement] Introducing the composite ServiceNameMapping
    
    * Refactor
    
    * Polish apache/dubbo#6172 : [Feature] Adding the "services" attribute methods into @DubboReference
    
    * Polish apache/dubbo#6173 : [Feature] Adding the "services" attribute into <dubbo:reference> element
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6252
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6224 : Filter chain was not invoked with local calls since v2.7.6
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : Adding META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * 2.7.8 Test Cases (#6384)
    
    * Polish apache/dubbo#6152
    
    * Polish apache/dubbo#6174 : [Enhancement] Registering the common beans for Spring XML meta-configuration
    
    * Polish apache/dubbo#6174 : Fixing the test-cases
    
    * Polish apache/dubbo#6174 : Fixing the test-cases
    
    * Add the test-case for multiple services with MethodConfigs
    
    * Fixed the test-cases
    
    * 2.7.8 Dev (#6386)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * sync wait netty server to finish shutdown (#6281)
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * maybe we can remove null judge in this case (#6321)
    
    * update
    
    * update
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * Polish apache/dubbo#6170 : [Feature] Introducing the externalized configuration for ServiceNameMapping
    
    * Polish apache/dubbo#6342 : [Enhancement] Introducing the composite ServiceNameMapping
    
    * Refactor
    
    * fix method name typo in JValidator.java (#6344)
    
    * [Dubbo-6340]fix application cannot exit when use consul registry (#6341)
    
    * fix application cannot exit when use consul registry
    
    * make consul registry suppor ACL (#6313)
    
    * make consul registry suppor ACL
    
    * Polish apache/dubbo#6172 : [Feature] Adding the "services" attribute methods into @DubboReference
    
    * Polish apache/dubbo#6173 : [Feature] Adding the "services" attribute into <dubbo:reference> element
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * fix publish null value when use consul config center (#6351)
    
    * fix publish null value when use consul config center
    
    * Polish apache/dubbo#6252
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6224 : Filter chain was not invoked with local calls since v2.7.6
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : Adding META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter
    
    * fix the priority of ListenableRouter were not effective (#6148)
    
    fixes #4822
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * when the url is generic, the log level should be info (#6363)
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * fix NPE when check=false is set and provider is empty. (#6376)
    
    fixes #6228
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * fix #6306.  support TypeBuilder sort (#6365)
    
    * fix #6306. support TypeBuilder sort
    
    * fix #6306. support TypeBuilder sort
    
    * fix #6306. support TypeBuilder sort
    
    * remove unused import
    
    * add license for test file
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * enhance ClusterInvoker & ExtensionLoader (#6343)
    
    - Introduce ClusterInvoker to better support multiple registries subscription
    - Wrapper sort and enable/disable
    - some small fixes
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Fixed the test-cases
    
    Co-authored-by: tswstarplanet <ts...@apache.org>
    Co-authored-by: Nine <ni...@gmail.com>
    Co-authored-by: 陈哈哈 <ch...@outlook.com>
    Co-authored-by: luoning810 <18...@163.com>
    Co-authored-by: cvictory <sh...@gmail.com>
    Co-authored-by: ken.lj <ke...@gmail.com>
    
    * Fixes the issue of merging code in Github
    
    * Polish apache/dubbo#6389 : [Issue] Resolving the issues with ConsulServiceDiscovery
    
    * Fixes the test-cases
    
    * Fixes the test-cases
    
    * Fixes the test-cases
    
    * Upgrade the release version to be 2.7.8
    
    Co-authored-by: tswstarplanet <ts...@apache.org>
    Co-authored-by: Nine <ni...@gmail.com>
    Co-authored-by: 陈哈哈 <ch...@outlook.com>
    Co-authored-by: luoning810 <18...@163.com>
    Co-authored-by: cvictory <sh...@gmail.com>
    Co-authored-by: ken.lj <ke...@gmail.com>
    
    * Hessian2 whitelist (#6378) (#6415)
    
    * Hessian2 whitelist (#6378)
    
    fixes #6364
    
    * Hessian whitelist2 (#6423)
    
    * double check lock (#6422)
    
    * Correction: comments about multipleConfig (#6414)
    
    Co-authored-by: ken.lj <ke...@gmail.com>
    Co-authored-by: diguage <le...@gmail.com>
    Co-authored-by: 月泉 <yu...@gmail.com>
    
    * [2.7.8] Migration the latest Nacos registry implementation to upstream (#6417)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * 2.7.8 service introspection (#6300)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * 2.7.8 service introspection update (#6308)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * 2.7.8 service introspection (#6317)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * 2.7.8 service introspection (#6337)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * Polish apache/dubbo#6170 : [Feature] Introducing the externalized configuration for ServiceNameMapping
    
    * Polish apache/dubbo#6342 : [Enhancement] Introducing the composite ServiceNameMapping
    
    * Refactor
    
    * Polish apache/dubbo#6172 : [Feature] Adding the "services" attribute methods into @DubboReference
    
    * Polish apache/dubbo#6173 : [Feature] Adding the "services" attribute into <dubbo:reference> element
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6252
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6224 : Filter chain was not invoked with local calls since v2.7.6
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * 2.7.8 service introspection (#6366)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * Polish apache/dubbo#6170 : [Feature] Introducing the externalized configuration for ServiceNameMapping
    
    * Polish apache/dubbo#6342 : [Enhancement] Introducing the composite ServiceNameMapping
    
    * Refactor
    
    * Polish apache/dubbo#6172 : [Feature] Adding the "services" attribute methods into @DubboReference
    
    * Polish apache/dubbo#6173 : [Feature] Adding the "services" attribute into <dubbo:reference> element
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6252
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6224 : Filter chain was not invoked with local calls since v2.7.6
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : Adding META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * 2.7.8 Test Cases (#6384)
    
    * Polish apache/dubbo#6152
    
    * Polish apache/dubbo#6174 : [Enhancement] Registering the common beans for Spring XML meta-configuration
    
    * Polish apache/dubbo#6174 : Fixing the test-cases
    
    * Polish apache/dubbo#6174 : Fixing the test-cases
    
    * Add the test-case for multiple services with MethodConfigs
    
    * Fixed the test-cases
    
    * 2.7.8 Dev (#6386)
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6296 : Adding the new methods into MetadataReport to manipulate the exported URLs for service introspection
    
    * Polish apache/dubbo#6171 : [Feature] Introducing the composite implementation of MetadataService
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert "fix wrong check of InvokerListener when export a service (fix issue_6269) (#6271)"
    
    This reverts commit 91989cae508f8482f31ac335879da4a5975661c8.
    
    * Revert the MetadataReport
    
    * Polish apache/dubbo#6305 : [Refactor] ServiceConfig and ReferenceConfig publish the ServiceDefinition based on the Dubbo Event
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6310 : Refactoring MetadataReport's methods
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6198 : [Issue] Fixing NacosDynamicConfiguration#publishConfig bug
    
    * Polish apache/dubbo#6315 : [Refactor] Refactoring the implementation of MetadataReport based on The Config-Center infrastructure
    
    Deprecated List :
    
    - NacosMetadataReport
    - ZookeeperMetadataReport
    
    * Polish apache/dubbo#6315 : Refactoring by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Refactoring ConsulDynamicConfiguration by TreePathDynamicConfiguration
    
    * Polish apache/dubbo#6315 : Reset the config base path to be "metadata" for ConfigCenterBasedMetadataReportFactory
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Bugfix
    
    * Polish apache/dubbo#6315 : Correct words
    
    * sync wait netty server to finish shutdown (#6281)
    
    * Polish apache/dubbo#6333 : [Refactor] Using mandatory implementation of Service Instance registration instead of the event
    
    * maybe we can remove null judge in this case (#6321)
    
    * update
    
    * update
    
    * Polish apache/dubbo#6336 : [Refactor] org.apache.dubbo.metadata.ServiceNameMapping
    
    * Polish apache/dubbo#6170 : [Feature] Introducing the externalized configuration for ServiceNameMapping
    
    * Polish apache/dubbo#6342 : [Enhancement] Introducing the composite ServiceNameMapping
    
    * Refactor
    
    * fix method name typo in JValidator.java (#6344)
    
    * [Dubbo-6340]fix application cannot exit when use consul registry (#6341)
    
    * fix application cannot exit when use consul registry
    
    * make consul registry suppor ACL (#6313)
    
    * make consul registry suppor ACL
    
    * Polish apache/dubbo#6172 : [Feature] Adding the "services" attribute methods into @DubboReference
    
    * Polish apache/dubbo#6173 : [Feature] Adding the "services" attribute into <dubbo:reference> element
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * Polish apache/dubbo#6346 : [Issue] Merging all subscribied URLs from the multiple services
    
    * fix publish null value when use consul config center (#6351)
    
    * fix publish null value when use consul config center
    
    * Polish apache/dubbo#6252
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6356 & apache/dubbo#6171
    
    * Polish apache/dubbo#6224 : Filter chain was not invoked with local calls since v2.7.6
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : Adding META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter
    
    * fix the priority of ListenableRouter were not effective (#6148)
    
    fixes #4822
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * when the url is generic, the log level should be info (#6363)
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * fix NPE when check=false is set and provider is empty. (#6376)
    
    fixes #6228
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * fix #6306.  support TypeBuilder sort (#6365)
    
    * fix #6306. support TypeBuilder sort
    
    * fix #6306. support TypeBuilder sort
    
    * fix #6306. support TypeBuilder sort
    
    * remove unused import
    
    * add license for test file
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * enhance ClusterInvoker & ExtensionLoader (#6343)
    
    - Introduce ClusterInvoker to better support multiple registries subscription
    - Wrapper sort and enable/disable
    - some small fixes
    
    * Polish apache/dubbo#6322 : [Enhancement] Fix the issues of test-cases after refactoring
    
    * Fixed the test-cases
    
    Co-authored-by: tswstarplanet <ts...@apache.org>
    Co-authored-by: Nine <ni...@gmail.com>
    Co-authored-by: 陈哈哈 <ch...@outlook.com>
    Co-authored-by: luoning810 <18...@163.com>
    Co-authored-by: cvictory <sh...@gmail.com>
    Co-authored-by: ken.lj <ke...@gmail.com>
    
    * Fixes the issue of merging code in Github
    
    * Polish apache/dubbo#6389 : [Issue] Resolving the issues with ConsulServiceDiscovery
    
    * Fixes the test-cases
    
    * Fixes the test-cases
    
    * Fixes the test-cases
    
    * Upgrade the release version to be 2.7.8
    
    * Hessian2 whitelist (#6378)
    
    fixes #6364
    
    * Polish apache/dubbo#6261 : Migration the latest Nacos registry implementation to upstream
    
    * Hessian whitelist2 (#6423)
    
    * Polish apache/dubbo#6425 : [Infrastructure] Upgrading the spring-context-support to be 1.0.7
    
    * double check lock (#6422)
    
    * Correction: comments about multipleConfig (#6414)
    
    * Polish apache/dubbo#6418 : Rest Protocol can't work when use Tomcat 9.0.x as web container for Dubbo 2.7.7
    
    * fix bug: Rest Protocol can't work when use Tomcat as WebContainer (#6402)
    
    Co-authored-by: 01376420 <1qaz!QAZ>
    
    Co-authored-by: tswstarplanet <ts...@apache.org>
    Co-authored-by: Nine <ni...@gmail.com>
    Co-authored-by: 陈哈哈 <ch...@outlook.com>
    Co-authored-by: luoning810 <18...@163.com>
    Co-authored-by: cvictory <sh...@gmail.com>
    Co-authored-by: ken.lj <ke...@gmail.com>
    Co-authored-by: diguage <le...@gmail.com>
    Co-authored-by: 月泉 <yu...@gmail.com>
    Co-authored-by: 星尘 <yi...@126.com>
    
    Co-authored-by: tswstarplanet <ts...@apache.org>
    Co-authored-by: Nine <ni...@gmail.com>
    Co-authored-by: 陈哈哈 <ch...@outlook.com>
    Co-authored-by: luoning810 <18...@163.com>
    Co-authored-by: cvictory <sh...@gmail.com>
    Co-authored-by: ken.lj <ke...@gmail.com>
    Co-authored-by: diguage <le...@gmail.com>
    Co-authored-by: 月泉 <yu...@gmail.com>
    Co-authored-by: 星尘 <yi...@126.com>
    
    * add @SPI annotation (#6436)
    
    * check invoker available status after proxy created. (#6435)
    
    * Polish apache/dubbo#6442 : The duplicated path in Tree-Path config-center
    
    Co-authored-by: tswstarplanet <ts...@apache.org>
    Co-authored-by: Nine <ni...@gmail.com>
    Co-authored-by: 陈哈哈 <ch...@outlook.com>
    Co-authored-by: luoning810 <18...@163.com>
    Co-authored-by: cvictory <sh...@gmail.com>
    Co-authored-by: ken.lj <ke...@gmail.com>
    Co-authored-by: diguage <le...@gmail.com>
    Co-authored-by: 月泉 <yu...@gmail.com>
    Co-authored-by: 星尘 <yi...@126.com>
    Co-authored-by: Lei Jiang <53...@users.noreply.github.com>
---
 .../configcenter/TreePathDynamicConfiguration.java | 25 ++++++--
 .../org/apache/dubbo/config/ReferenceConfig.java   | 19 ++++++
 .../org/apache/dubbo/config/ServiceConfig.java     | 16 +++++
 .../PublishingServiceDefinitionListener.java       | 74 ----------------------
 .../internal/org.apache.dubbo.event.EventListener  |  4 +-
 .../identifier/BaseServiceMetadataIdentifier.java  |  2 +-
 .../ConfigCenterBasedMetadataReportFactory.java    | 28 ++++----
 7 files changed, 73 insertions(+), 95 deletions(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/config/configcenter/TreePathDynamicConfiguration.java b/dubbo-common/src/main/java/org/apache/dubbo/common/config/configcenter/TreePathDynamicConfiguration.java
index cbcb3a2..6ac9dd0 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/config/configcenter/TreePathDynamicConfiguration.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/config/configcenter/TreePathDynamicConfiguration.java
@@ -18,7 +18,6 @@ package org.apache.dubbo.common.config.configcenter;
 
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;
-import org.apache.dubbo.common.utils.PathUtils;
 import org.apache.dubbo.common.utils.StringUtils;
 
 import java.util.Collection;
@@ -31,6 +30,7 @@ import static org.apache.dubbo.common.config.configcenter.Constants.CONFIG_NAMES
 import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;
 import static org.apache.dubbo.common.utils.CollectionUtils.isEmpty;
 import static org.apache.dubbo.common.utils.PathUtils.buildPath;
+import static org.apache.dubbo.common.utils.PathUtils.normalize;
 
 /**
  * An abstract implementation of {@link DynamicConfiguration} is like "tree-structure" path :
@@ -47,6 +47,11 @@ import static org.apache.dubbo.common.utils.PathUtils.buildPath;
 public abstract class TreePathDynamicConfiguration extends AbstractDynamicConfiguration {
 
     /**
+     * The parameter name of URL for the config root path
+     */
+    public static final String CONFIG_ROOT_PATH_PARAM_NAME = PARAM_NAME_PREFIX + "root-path";
+
+    /**
      * The parameter name of URL for the config base path
      */
     public static final String CONFIG_BASE_PATH_PARAM_NAME = PARAM_NAME_PREFIX + "base-path";
@@ -137,14 +142,24 @@ public abstract class TreePathDynamicConfiguration extends AbstractDynamicConfig
      * @return non-null
      */
     protected String getRootPath(URL url) {
-        String rootPath = PATH_SEPARATOR + getConfigNamespace(url) + getConfigBasePath(url);
-        rootPath = PathUtils.normalize(rootPath);
-        if (rootPath.endsWith(PATH_SEPARATOR)) {
-            rootPath = rootPath.substring(0, rootPath.length() - 1);
+
+        String rootPath = url.getParameter(CONFIG_ROOT_PATH_PARAM_NAME, buildRootPath(url));
+
+        rootPath = normalize(rootPath);
+
+        int rootPathLength = rootPath.length();
+
+        if (rootPathLength > 1 && rootPath.endsWith(PATH_SEPARATOR)) {
+            rootPath = rootPath.substring(0, rootPathLength - 1);
         }
+
         return rootPath;
     }
 
+    private String buildRootPath(URL url) {
+        return PATH_SEPARATOR + getConfigNamespace(url) + getConfigBasePath(url);
+    }
+
     /**
      * Get the namespace from the specified {@link URL connection URl}
      *
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 7bcc6ea..da90597 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
@@ -36,6 +36,7 @@ import org.apache.dubbo.config.support.Parameter;
 import org.apache.dubbo.config.utils.ConfigValidationUtils;
 import org.apache.dubbo.event.Event;
 import org.apache.dubbo.event.EventDispatcher;
+import org.apache.dubbo.metadata.WritableMetadataService;
 import org.apache.dubbo.rpc.Invoker;
 import org.apache.dubbo.rpc.Protocol;
 import org.apache.dubbo.rpc.ProxyFactory;
@@ -65,11 +66,14 @@ 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;
 import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.PROXY_CLASS_REF;
+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;
 import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.SEMICOLON_SPLIT_PATTERN;
 import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
@@ -77,6 +81,7 @@ import static org.apache.dubbo.common.constants.RegistryConstants.SUBSCRIBED_SER
 import static org.apache.dubbo.common.utils.NetUtils.isInvalidLocalHost;
 import static org.apache.dubbo.common.utils.StringUtils.splitToSet;
 import static org.apache.dubbo.config.Constants.DUBBO_IP_TO_REGISTRY;
+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.LOCAL_PROTOCOL;
 import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;
@@ -263,6 +268,10 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
         // appendParameters(map, consumer, Constants.DEFAULT_KEY);
         AbstractConfig.appendParameters(map, consumer);
         AbstractConfig.appendParameters(map, this);
+        MetadataReportConfig metadataReportConfig = getMetadataReportConfig();
+        if (metadataReportConfig != null && metadataReportConfig.isValid()) {
+            map.putIfAbsent(METADATA_KEY, REMOTE_METADATA_STORAGE_TYPE);
+        }
         Map<String, AsyncMethodInfo> attributes = null;
         if (CollectionUtils.isNotEmpty(getMethods())) {
             attributes = new HashMap<>();
@@ -382,6 +391,16 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
         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);
+        }
         // create service proxy
         return (T) PROXY_FACTORY.getProxy(invoker, ProtocolUtils.isGeneric(generic));
     }
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 5173bf7..cf5af44 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
@@ -37,6 +37,7 @@ import org.apache.dubbo.config.support.Parameter;
 import org.apache.dubbo.config.utils.ConfigValidationUtils;
 import org.apache.dubbo.event.Event;
 import org.apache.dubbo.event.EventDispatcher;
+import org.apache.dubbo.metadata.WritableMetadataService;
 import org.apache.dubbo.rpc.Exporter;
 import org.apache.dubbo.rpc.Invoker;
 import org.apache.dubbo.rpc.Protocol;
@@ -67,13 +68,16 @@ import java.util.concurrent.TimeUnit;
 
 import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;
+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;
 import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;
 import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_IP_TO_BIND;
 import static org.apache.dubbo.common.constants.CommonConstants.LOCALHOST_VALUE;
+import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
 import static org.apache.dubbo.common.constants.CommonConstants.REGISTER_KEY;
+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;
 import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;
 import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;
 import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_KEY;
@@ -340,6 +344,10 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
         AbstractConfig.appendParameters(map, provider);
         AbstractConfig.appendParameters(map, protocolConfig);
         AbstractConfig.appendParameters(map, this);
+        MetadataReportConfig metadataReportConfig = getMetadataReportConfig();
+        if (metadataReportConfig != null && metadataReportConfig.isValid()) {
+            map.putIfAbsent(METADATA_KEY, REMOTE_METADATA_STORAGE_TYPE);
+        }
         if (CollectionUtils.isNotEmpty(getMethods())) {
             for (MethodConfig method : getMethods()) {
                 AbstractConfig.appendParameters(map, method, method.getName());
@@ -494,6 +502,14 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
                     Exporter<?> exporter = PROTOCOL.export(wrapperInvoker);
                     exporters.add(exporter);
                 }
+                /**
+                 * @since 2.7.0
+                 * ServiceData Store
+                 */
+                WritableMetadataService metadataService = WritableMetadataService.getExtension(url.getParameter(METADATA_KEY, DEFAULT_METADATA_STORAGE_TYPE));
+                if (metadataService != null) {
+                    metadataService.publishServiceDefinition(url);
+                }
             }
         }
         this.urls.add(url);
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/event/listener/PublishingServiceDefinitionListener.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/event/listener/PublishingServiceDefinitionListener.java
deleted file mode 100644
index 9731034..0000000
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/event/listener/PublishingServiceDefinitionListener.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.event.listener;
-
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.config.AbstractInterfaceConfig;
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.MetadataReportConfig;
-import org.apache.dubbo.config.event.ReferenceConfigInitializedEvent;
-import org.apache.dubbo.config.event.ServiceConfigExportedEvent;
-import org.apache.dubbo.event.EventListener;
-import org.apache.dubbo.event.GenericEventListener;
-import org.apache.dubbo.metadata.WritableMetadataService;
-
-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;
-import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;
-import static org.apache.dubbo.metadata.WritableMetadataService.getExtension;
-
-/**
- * An {@link EventListener} {@link WritableMetadataService#publishServiceDefinition(URL) publishs the service definition}
- * when {@link ServiceConfigExportedEvent the event of the exported Dubbo service} and
- * {@link ReferenceConfigInitializedEvent the event of the referenced Dubbo service} is raised.
- *
- * @see GenericEventListener
- * @see ServiceConfigExportedEvent
- * @see ReferenceConfigInitializedEvent
- * @since 2.7.8
- */
-public class PublishingServiceDefinitionListener extends GenericEventListener {
-
-    public void onEvent(ReferenceConfigInitializedEvent event) {
-        handleEvent(event.getReferenceConfig());
-    }
-
-    public void onEvent(ServiceConfigExportedEvent event) {
-        handleEvent(event.getServiceConfig());
-    }
-
-    private void handleEvent(AbstractInterfaceConfig config) {
-        String metadataType = getMetadataType(config);
-        for (URL exportedURL : config.getExportedUrls()) {
-            WritableMetadataService metadataService = getExtension(metadataType);
-            if (metadataService != null) {
-                metadataService.publishServiceDefinition(exportedURL);
-            }
-        }
-    }
-
-    private String getMetadataType(AbstractInterfaceConfig config) {
-        ApplicationConfig applicationConfig = config.getApplication();
-        String metadataType = applicationConfig.getMetadataType();
-        if (REMOTE_METADATA_STORAGE_TYPE.equals(metadataType)) {
-            MetadataReportConfig metadataReportConfig = config.getMetadataReportConfig();
-            if (metadataReportConfig == null || !metadataReportConfig.isValid()) {
-                metadataType = DEFAULT_METADATA_STORAGE_TYPE;
-            }
-        }
-        return metadataType;
-    }
-}
diff --git a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.event.EventListener b/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.event.EventListener
index b1946c0..db73041 100644
--- a/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.event.EventListener
+++ b/dubbo-config/dubbo-config-api/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.event.EventListener
@@ -1,4 +1,2 @@
 service-mapping=org.apache.dubbo.config.event.listener.ServiceNameMappingListener
-config-logging=org.apache.dubbo.config.event.listener.LoggingEventListener
-# since 2.7.8
-publishing-service-definition=org.apache.dubbo.config.event.listener.PublishingServiceDefinitionListener
\ No newline at end of file
+config-logging=org.apache.dubbo.config.event.listener.LoggingEventListener
\ No newline at end of file
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/identifier/BaseServiceMetadataIdentifier.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/identifier/BaseServiceMetadataIdentifier.java
index 16616ef..37b53ae 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/identifier/BaseServiceMetadataIdentifier.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/identifier/BaseServiceMetadataIdentifier.java
@@ -79,7 +79,7 @@ public class BaseServiceMetadataIdentifier {
                 + joinParams(PATH_SEPARATOR, params);
     }
 
-    private String toServicePath() {
+    public String toServicePath() {
         if (ANY_VALUE.equals(serviceInterface)) {
             return "";
         }
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/ConfigCenterBasedMetadataReportFactory.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/ConfigCenterBasedMetadataReportFactory.java
index 5b0f780..b445feb 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/ConfigCenterBasedMetadataReportFactory.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/report/support/ConfigCenterBasedMetadataReportFactory.java
@@ -25,8 +25,10 @@ import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
-import static org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration.CONFIG_BASE_PATH_PARAM_NAME;
-import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_PATH_TAG;
+import static org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration.CONFIG_ROOT_PATH_PARAM_NAME;
+import static org.apache.dubbo.common.utils.StringUtils.SLASH;
+import static org.apache.dubbo.common.utils.StringUtils.isBlank;
+import static org.apache.dubbo.metadata.report.identifier.KeyTypeEnum.PATH;
 import static org.apache.dubbo.rpc.cluster.Constants.EXPORT_KEY;
 import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;
 
@@ -60,21 +62,23 @@ public abstract class ConfigCenterBasedMetadataReportFactory implements Metadata
 
     @Override
     public ConfigCenterBasedMetadataReport getMetadataReport(URL url) {
-
-        url = url.setPath(URL_PATH).removeParameters(EXPORT_KEY, REFER_KEY);
-
-        final URL actualURL;
-        if (url.getParameter(CONFIG_BASE_PATH_PARAM_NAME) == null) {
-            actualURL = url.addParameter(CONFIG_BASE_PATH_PARAM_NAME, DEFAULT_PATH_TAG);
-        } else {
-            actualURL = url;
-        }
-
+        url = url.setPath(URL_PATH);
+        final URL actualURL = resolveURLParameters(url);
         String key = actualURL.toServiceString();
         // Lock the metadata access process to ensure a single instance of the metadata instance
         return metadataReportCache.computeIfAbsent(key, k -> new ConfigCenterBasedMetadataReport(actualURL, keyType));
     }
 
+    private URL resolveURLParameters(URL url) {
+        URL resolvedURL = url.removeParameters(EXPORT_KEY, REFER_KEY);
+        if (PATH.equals(getKeyType())) { // Only handles for "PATH" type
+            if (isBlank(resolvedURL.getParameter(CONFIG_ROOT_PATH_PARAM_NAME))) {
+                resolvedURL = resolvedURL.addParameter(CONFIG_ROOT_PATH_PARAM_NAME, SLASH);
+            }
+        }
+        return resolvedURL;
+    }
+
     /**
      * Get {@link KeyTypeEnum the key type}
      *