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

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


The following commit(s) were added to refs/heads/release-3.1 by this push:
     new 6dba60a0e Fix#2543, nacos App Metadata not compatible with java (#2563)
6dba60a0e is described below

commit 6dba60a0e67971b44a28588b32ea35f7623b0746
Author: foghost <[email protected]>
AuthorDate: Fri Jan 19 23:56:33 2024 +0800

    Fix#2543, nacos App Metadata not compatible with java (#2563)
---
 metadata/report/nacos/report.go      | 27 +++++++++++++++++++++++----
 metadata/report/nacos/report_test.go |  4 ++--
 2 files changed, 25 insertions(+), 6 deletions(-)

diff --git a/metadata/report/nacos/report.go b/metadata/report/nacos/report.go
index fd8182c27..f889ad152 100644
--- a/metadata/report/nacos/report.go
+++ b/metadata/report/nacos/report.go
@@ -69,14 +69,24 @@ type nacosMetadataReport struct {
 
 // GetAppMetadata get metadata info from nacos
 func (n *nacosMetadataReport) GetAppMetadata(metadataIdentifier 
*identifier.SubscriberMetadataIdentifier) (*common.MetadataInfo, error) {
+       // compatible with java impl first
        data, err := n.getConfig(vo.ConfigParam{
-               DataId: metadataIdentifier.GetIdentifierKey(),
-               Group:  n.group,
+               DataId: metadataIdentifier.Application,
+               Group:  metadataIdentifier.Revision,
        })
        if err != nil {
                return nil, err
        }
-
+       if data == "" {
+               // compatible with dubbo-go 3.1.x before
+               data, err = n.getConfig(vo.ConfigParam{
+                       DataId: metadataIdentifier.GetIdentifierKey(),
+                       Group:  n.group,
+               })
+               if err != nil {
+                       return nil, err
+               }
+       }
        var metadataInfo common.MetadataInfo
        err = json.Unmarshal([]byte(data), &metadataInfo)
        if err != nil {
@@ -91,7 +101,16 @@ func (n *nacosMetadataReport) 
PublishAppMetadata(metadataIdentifier *identifier.
        if err != nil {
                return err
        }
-
+       // compatible with java impl
+       err = n.storeMetadata(vo.ConfigParam{
+               DataId:  metadataIdentifier.Application,
+               Group:   metadataIdentifier.Revision,
+               Content: string(data),
+       })
+       if err != nil {
+               return err
+       }
+       // compatible with dubbo-go 3.1.x before
        return n.storeMetadata(vo.ConfigParam{
                DataId:  metadataIdentifier.GetIdentifierKey(),
                Group:   n.group,
diff --git a/metadata/report/nacos/report_test.go 
b/metadata/report/nacos/report_test.go
index 759a45661..3d87eaa2e 100644
--- a/metadata/report/nacos/report_test.go
+++ b/metadata/report/nacos/report_test.go
@@ -212,7 +212,7 @@ func Test_nacosMetadataReport_GetAppMetadata(t *testing.T) {
 
        ctrl := gomock.NewController(t)
        mnc := NewMockIConfigClient(ctrl)
-       mnc.EXPECT().GetConfig(gomock.Any()).Return(string(data), nil)
+       mnc.EXPECT().GetConfig(gomock.Any()).MaxTimes(2).Return(string(data), 
nil)
        nc := &nacosClient.NacosConfigClient{}
        nc.SetClient(mnc)
 
@@ -253,7 +253,7 @@ func Test_nacosMetadataReport_GetAppMetadata(t *testing.T) {
 func Test_nacosMetadataReport_PublishAppMetadata(t *testing.T) {
        ctrl := gomock.NewController(t)
        mnc := NewMockIConfigClient(ctrl)
-       mnc.EXPECT().PublishConfig(gomock.Any()).Return(true, nil)
+       mnc.EXPECT().PublishConfig(gomock.Any()).Times(2).Return(true, nil)
        nc := &nacosClient.NacosConfigClient{}
        nc.SetClient(mnc)
 

Reply via email to