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)