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

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


The following commit(s) were added to refs/heads/3.0 by this push:
     new b087b84  refine client name id (#1751)
b087b84 is described below

commit b087b847faed58de41a0fe93d11ed7d7d9c66e72
Author: binbin.zhang <[email protected]>
AuthorDate: Sat Feb 12 23:29:38 2022 +0800

    refine client name id (#1751)
---
 config/config_center_config.go   |  7 +------
 config/config_utils.go           |  6 ++++++
 config/config_utils_test.go      | 20 ++++++++++++++++++++
 config/metadata_report_config.go | 11 +----------
 config/registry_config.go        |  9 ++-------
 config/remote_config.go          |  8 +-------
 6 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/config/config_center_config.go b/config/config_center_config.go
index 57ec6e6..48baa80 100644
--- a/config/config_center_config.go
+++ b/config/config_center_config.go
@@ -68,11 +68,6 @@ func (CenterConfig) Prefix() string {
        return constant.ConfigCenterPrefix
 }
 
-// NameId unique identifier id for client
-func (c *CenterConfig) NameId() string {
-       return strings.Join([]string{c.Prefix(), c.Protocol, c.Address}, "-")
-}
-
 func (c *CenterConfig) check() error {
        if err := defaults.Set(c); err != nil {
                return err
@@ -99,7 +94,7 @@ func (c *CenterConfig) GetUrlMap() url.Values {
        urlMap.Set(constant.ConfigClusterKey, c.Cluster)
        urlMap.Set(constant.ConfigAppIDKey, c.AppID)
        urlMap.Set(constant.ConfigTimeoutKey, c.Timeout)
-       urlMap.Set(constant.ClientNameKey, c.NameId())
+       urlMap.Set(constant.ClientNameKey, clientNameID(c, c.Protocol, 
c.Address))
 
        for key, val := range c.Params {
                urlMap.Set(key, val)
diff --git a/config/config_utils.go b/config/config_utils.go
index 2ba76ab..aa6bedf 100644
--- a/config/config_utils.go
+++ b/config/config_utils.go
@@ -31,6 +31,7 @@ import (
 
 import (
        "dubbo.apache.org/dubbo-go/v3/common/constant"
+       "dubbo.apache.org/dubbo-go/v3/config/interfaces"
 )
 
 var validate *validator.Validate
@@ -110,3 +111,8 @@ func verify(s interface{}) error {
        }
        return nil
 }
+
+// clientNameID unique identifier id for client
+func clientNameID(config interfaces.Config, protocol, address string) string {
+       return strings.Join([]string{config.Prefix(), protocol, address}, "-")
+}
diff --git a/config/config_utils_test.go b/config/config_utils_test.go
index 81fc3a3..65ad9d3 100644
--- a/config/config_utils_test.go
+++ b/config/config_utils_test.go
@@ -61,3 +61,23 @@ func TestRemoveMinus(t *testing.T) {
        strList = removeMinus([]string{"c", "b", "a", "d", "c", "-c", "-a", 
"e", "f"})
        assert.Equal(t, strList, "b,d,c,e,f")
 }
+
+type mockConfig struct {
+       protocol string
+       address  string
+}
+
+func (m *mockConfig) Prefix() string {
+       return "mock"
+}
+
+func TestClientNameID(t *testing.T) {
+       t.Run("normal", func(t *testing.T) {
+               m := &mockConfig{"nacos", "127.0.0.1:8848"}
+               assert.Equal(t, "mock-nacos-127.0.0.1:8848", clientNameID(m, 
m.protocol, m.address))
+       })
+       t.Run("protocolIsNil", func(t *testing.T) {
+               m := &mockConfig{}
+               assert.Equal(t, "mock--", clientNameID(m, m.protocol, 
m.address))
+       })
+}
diff --git a/config/metadata_report_config.go b/config/metadata_report_config.go
index dfa8812..9cc902d 100644
--- a/config/metadata_report_config.go
+++ b/config/metadata_report_config.go
@@ -18,10 +18,6 @@
 package config
 
 import (
-       "strings"
-)
-
-import (
        perrors "github.com/pkg/errors"
 )
 
@@ -59,11 +55,6 @@ func (mc *MetadataReportConfig) Init(rc *RootConfig) error {
        return mc.StartMetadataReport()
 }
 
-// NameId unique identifier id for client
-func (mc *MetadataReportConfig) NameId() string {
-       return strings.Join([]string{mc.Prefix(), mc.Protocol, mc.Address}, "-")
-}
-
 func (mc *MetadataReportConfig) ToUrl() (*common.URL, error) {
        res, err := common.NewURL(mc.Address,
                common.WithUsername(mc.Username),
@@ -74,7 +65,7 @@ func (mc *MetadataReportConfig) ToUrl() (*common.URL, error) {
                common.WithParamsValue(constant.MetadataReportGroupKey, 
mc.Group),
                common.WithParamsValue(constant.MetadataReportNamespaceKey, 
mc.Namespace),
                common.WithParamsValue(constant.MetadataTypeKey, 
mc.metadataType),
-               common.WithParamsValue(constant.ClientNameKey, mc.NameId()),
+               common.WithParamsValue(constant.ClientNameKey, clientNameID(mc, 
mc.Protocol, mc.Address)),
        )
        if err != nil || len(res.Protocol) == 0 {
                return nil, perrors.New("Invalid MetadataReport Config.")
diff --git a/config/registry_config.go b/config/registry_config.go
index 3aa7f06..aa4d5a0 100644
--- a/config/registry_config.go
+++ b/config/registry_config.go
@@ -66,11 +66,6 @@ func (RegistryConfig) Prefix() string {
        return constant.RegistryConfigPrefix
 }
 
-// NameId unique identifier id for client
-func (c *RegistryConfig) NameId() string {
-       return strings.Join([]string{c.Prefix(), c.Protocol, c.Address}, "-")
-}
-
 func (c *RegistryConfig) Init() error {
        if err := defaults.Set(c); err != nil {
                return err
@@ -90,7 +85,7 @@ func (c *RegistryConfig) getUrlMap(roleType common.RoleType) 
url.Values {
        urlMap.Set(constant.RegistryKey+"."+constant.RegistryZoneKey, c.Zone)
        urlMap.Set(constant.RegistryKey+"."+constant.WeightKey, 
strconv.FormatInt(c.Weight, 10))
        urlMap.Set(constant.RegistryTTLKey, c.TTL)
-       urlMap.Set(constant.ClientNameKey, c.NameId())
+       urlMap.Set(constant.ClientNameKey, clientNameID(c, c.Protocol, 
c.Address))
 
        for k, v := range c.Params {
                urlMap.Set(k, v)
@@ -118,7 +113,7 @@ func (c *RegistryConfig) toMetadataReportUrl() 
(*common.URL, error) {
                common.WithUsername(c.Username),
                common.WithPassword(c.Password),
                common.WithParamsValue(constant.TimeoutKey, c.Timeout),
-               common.WithParamsValue(constant.ClientNameKey, c.NameId()),
+               common.WithParamsValue(constant.ClientNameKey, clientNameID(c, 
c.Protocol, c.Address)),
                common.WithParamsValue(constant.MetadataReportGroupKey, 
c.Group),
                common.WithParamsValue(constant.MetadataReportNamespaceKey, 
c.Namespace),
        )
diff --git a/config/remote_config.go b/config/remote_config.go
index 9be342b..feea7b8 100644
--- a/config/remote_config.go
+++ b/config/remote_config.go
@@ -19,7 +19,6 @@ package config
 
 import (
        "net/url"
-       "strings"
        "time"
 )
 
@@ -55,11 +54,6 @@ func (rc *RemoteConfig) Init() error {
        return nil
 }
 
-// NameId unique identifier id for client
-func (rc *RemoteConfig) NameId() string {
-       return strings.Join([]string{rc.Prefix(), rc.Protocol, rc.Address}, "-")
-}
-
 // GetTimeout return timeout duration.
 // if the configure is invalid, or missing, the default value 5s will be 
returned
 func (rc *RemoteConfig) GetTimeout() time.Duration {
@@ -99,7 +93,7 @@ func (rc *RemoteConfig) getUrlMap() url.Values {
        urlMap.Set(constant.ConfigUsernameKey, rc.Username)
        urlMap.Set(constant.ConfigPasswordKey, rc.Password)
        urlMap.Set(constant.ConfigTimeoutKey, rc.Timeout)
-       urlMap.Set(constant.ClientNameKey, rc.NameId())
+       urlMap.Set(constant.ClientNameKey, clientNameID(rc, rc.Protocol, 
rc.Protocol))
 
        for key, val := range rc.Params {
                urlMap.Set(key, val)

Reply via email to