From fb96a3763264909db1ace5bdcdcfdda5ee6c4159 Mon Sep 17 00:00:00 2001
From: Joe Zou <yixian.zou@gmail.com>
Date: Wed, 6 Nov 2019 14:22:26 +0800
Subject: [PATCH] fix review problems

---
 config/config_center_config.go    |   2 +-
 config_center/apollo/impl.go      |  11 ++-
 config_center/apollo/impl_test.go | 116 ++++++++++++++++++++++++++----
 config_center/apollo/listener.go  |   3 +
 4 files changed, 116 insertions(+), 16 deletions(-)

diff --git a/config/config_center_config.go b/config/config_center_config.go
index ae9c6523a..cea42c686 100644
--- a/config/config_center_config.go
+++ b/config/config_center_config.go
@@ -19,12 +19,12 @@ package config
 
 import (
 	"context"
-	"github.com/apache/dubbo-go/common/constant"
 	"net/url"
 	"time"
 )
 
 import (
+	"github.com/apache/dubbo-go/common/constant"
 	"github.com/creasty/defaults"
 )
 
diff --git a/config_center/apollo/impl.go b/config_center/apollo/impl.go
index 94fb34760..c8f12c6df 100644
--- a/config_center/apollo/impl.go
+++ b/config_center/apollo/impl.go
@@ -19,17 +19,24 @@ package apollo
 
 import (
 	"fmt"
-	"github.com/go-errors/errors"
+	"regexp"
 	"strconv"
 	"strings"
 	"sync"
+)
+import (
+	"github.com/go-errors/errors"
+)
 
+import (
 	"github.com/apache/dubbo-go/common"
 	"github.com/apache/dubbo-go/common/constant"
 	. "github.com/apache/dubbo-go/config_center"
 	"github.com/apache/dubbo-go/config_center/parser"
 	"github.com/apache/dubbo-go/remoting"
+)
 
+import (
 	"github.com/zouyx/agollo"
 )
 
@@ -131,6 +138,8 @@ func (c *apolloConfiguration) getAddressWithProtocolPrefix(url *common.URL) stri
 	address := url.Location
 	converted := address
 	if len(address) != 0 {
+		reg := regexp.MustCompile("\\s+")
+		address = reg.ReplaceAllString(address, "")
 		parts := strings.Split(address, ",")
 		addrs := make([]string, 0)
 		for _, part := range parts {
diff --git a/config_center/apollo/impl_test.go b/config_center/apollo/impl_test.go
index 2767521ab..97126ae17 100644
--- a/config_center/apollo/impl_test.go
+++ b/config_center/apollo/impl_test.go
@@ -19,29 +19,102 @@ package apollo
 import (
 	"context"
 	"fmt"
+	"net/http"
+	"net/http/httptest"
+	"strings"
+	"sync"
+	"testing"
+)
+
+import (
 	"github.com/apache/dubbo-go/common"
 	"github.com/apache/dubbo-go/config"
 	"github.com/apache/dubbo-go/config_center"
 	"github.com/apache/dubbo-go/config_center/parser"
 	"github.com/apache/dubbo-go/remoting"
+)
+
+import (
 	"github.com/stretchr/testify/assert"
-	"net/http"
-	"net/http/httptest"
-	"strings"
-	"sync"
-	"testing"
 )
 
 const (
-	mockAppId            = "testApplication_yang"
-	mockCluster          = "dev"
-	mockNamespace        = "mockDubbog.properties"
-	mockNotifyRes        = `[{"namespaceName":"mockDubbog","notificationId":53050,"messages":{"details":{"testApplication_yang+default+mockDubbog":53050}}}]`
-	mockServiceConfigRes = `[{"appName":"APOLLO-CONFIGSERVICE","instanceId":"instance-300408ep:apollo-configservice:8080","homepageUrl":"http://localhost:8080"}]`
+	mockAppId     = "testApplication_yang"
+	mockCluster   = "dev"
+	mockNamespace = "mockDubbog.properties"
+	mockNotifyRes = `[{
+	"namespaceName": "mockDubbog",
+	"notificationId": 53050,
+	"messages": {
+		"details": {
+			"testApplication_yang+default+mockDubbog": 53050
+		}
+	}
+}]`
+	mockServiceConfigRes = `[{
+	"appName": "APOLLO-CONFIGSERVICE",
+	"instanceId": "instance-300408ep:apollo-configservice:8080",
+	"homepageUrl": "http://localhost:8080"
+}]`
 )
 
 var (
-	mockConfigRes = `{"appId":"testApplication_yang","cluster":"default","namespaceName":"mockDubbog.properties","configurations":{"registries.hangzhouzk.username":"","application.owner":"ZX","registries.shanghaizk.username":"","protocols.dubbo.ip":"127.0.0.1","protocol_conf.dubbo.getty_session_param.tcp_write_timeout":"5s","services.UserProvider.cluster":"failover","application.module":"dubbogo user-info server","services.UserProvider.interface":"com.ikurento.user.UserProvider","protocol_conf.dubbo.getty_session_param.compress_encoding":"false","registries.shanghaizk.address":"127.0.0.1:2182","protocol_conf.dubbo.session_timeout":"20s","registries.shanghaizk.timeout":"3s","protocol_conf.dubbo.getty_session_param.keep_alive_period":"120s","services.UserProvider.warmup":"100","application.version":"0.0.1","registries.hangzhouzk.protocol":"zookeeper","registries.hangzhouzk.password":"","protocols.dubbo.name":"dubbo","protocol_conf.dubbo.getty_session_param.wait_timeout":"1s","protocols.dubbo.port":"20000","application_config.owner":"demo","application_config.name":"demo","application_config.version":"0.0.1","application_config.environment":"dev","protocol_conf.dubbo.getty_session_param.session_name":"server","application.name":"BDTService","registries.hangzhouzk.timeout":"3s","protocol_conf.dubbo.getty_session_param.tcp_read_timeout":"1s","services.UserProvider.loadbalance":"random","protocol_conf.dubbo.session_number":"700","protocol_conf.dubbo.getty_session_param.max_msg_len":"1024","services.UserProvider.registry":"hangzhouzk","application_config.module":"demo","services.UserProvider.methods[0].name":"GetUser","protocol_conf.dubbo.getty_session_param.tcp_no_delay":"true","services.UserProvider.methods[0].retries":"1","protocol_conf.dubbo.getty_session_param.tcp_w_buf_size":"65536","protocol_conf.dubbo.getty_session_param.tcp_r_buf_size":"262144","registries.shanghaizk.password":"","application_config.organization":"demo","registries.shanghaizk.protocol":"zookeeper","protocol_conf.dubbo.getty_session_param.tcp_keep_alive":"true","registries.hangzhouzk.address":"127.0.0.1:2181","application.environment":"dev","services.UserProvider.protocol":"dubbo","application.organization":"ikurento.com","protocol_conf.dubbo.getty_session_param.pkg_wq_size":"512","services.UserProvider.methods[0].loadbalance":"random"},"releaseKey":"20191104105242-0f13805d89f834a4"}`
+	mockConfigRes = `{
+	"appId": "testApplication_yang",
+	"cluster": "default",
+	"namespaceName": "mockDubbog.properties",
+	"configurations": {
+		"registries.hangzhouzk.username": "",
+		"application.owner": "ZX",
+		"registries.shanghaizk.username": "",
+		"protocols.dubbo.ip": "127.0.0.1",
+		"protocol_conf.dubbo.getty_session_param.tcp_write_timeout": "5s",
+		"services.UserProvider.cluster": "failover",
+		"application.module": "dubbogo user-info server",
+		"services.UserProvider.interface": "com.ikurento.user.UserProvider",
+		"protocol_conf.dubbo.getty_session_param.compress_encoding": "false",
+		"registries.shanghaizk.address": "127.0.0.1:2182",
+		"protocol_conf.dubbo.session_timeout": "20s",
+		"registries.shanghaizk.timeout": "3s",
+		"protocol_conf.dubbo.getty_session_param.keep_alive_period": "120s",
+		"services.UserProvider.warmup": "100",
+		"application.version": "0.0.1",
+		"registries.hangzhouzk.protocol": "zookeeper",
+		"registries.hangzhouzk.password": "",
+		"protocols.dubbo.name": "dubbo",
+		"protocol_conf.dubbo.getty_session_param.wait_timeout": "1s",
+		"protocols.dubbo.port": "20000",
+		"application_config.owner": "demo",
+		"application_config.name": "demo",
+		"application_config.version": "0.0.1",
+		"application_config.environment": "dev",
+		"protocol_conf.dubbo.getty_session_param.session_name": "server",
+		"application.name": "BDTService",
+		"registries.hangzhouzk.timeout": "3s",
+		"protocol_conf.dubbo.getty_session_param.tcp_read_timeout": "1s",
+		"services.UserProvider.loadbalance": "random",
+		"protocol_conf.dubbo.session_number": "700",
+		"protocol_conf.dubbo.getty_session_param.max_msg_len": "1024",
+		"services.UserProvider.registry": "hangzhouzk",
+		"application_config.module": "demo",
+		"services.UserProvider.methods[0].name": "GetUser",
+		"protocol_conf.dubbo.getty_session_param.tcp_no_delay": "true",
+		"services.UserProvider.methods[0].retries": "1",
+		"protocol_conf.dubbo.getty_session_param.tcp_w_buf_size": "65536",
+		"protocol_conf.dubbo.getty_session_param.tcp_r_buf_size": "262144",
+		"registries.shanghaizk.password": "",
+		"application_config.organization": "demo",
+		"registries.shanghaizk.protocol": "zookeeper",
+		"protocol_conf.dubbo.getty_session_param.tcp_keep_alive": "true",
+		"registries.hangzhouzk.address": "127.0.0.1:2181",
+		"application.environment": "dev",
+		"services.UserProvider.protocol": "dubbo",
+		"application.organization": "ikurento.com",
+		"protocol_conf.dubbo.getty_session_param.pkg_wq_size": "512",
+		"services.UserProvider.methods[0].loadbalance": "random"
+	},
+	"releaseKey": "20191104105242-0f13805d89f834a4"
+}`
 )
 
 func initApollo() *httptest.Server {
@@ -121,7 +194,15 @@ func TestAddListener(t *testing.T) {
 	listener := &apolloDataListener{}
 	listener.wg.Add(1)
 	apollo := initMockApollo(t)
-	mockConfigRes = `{"appId":"testApplication_yang","cluster":"default","namespaceName":"mockDubbog.properties","configurations":{"registries.hangzhouzk.username":"11111"},"releaseKey":"20191104105242-0f13805d89f834a4"}`
+	mockConfigRes = `{
+	"appId": "testApplication_yang",
+	"cluster": "default",
+	"namespaceName": "mockDubbog.properties",
+	"configurations": {
+		"registries.hangzhouzk.username": "11111"
+	},
+	"releaseKey": "20191104105242-0f13805d89f834a4"
+}`
 	apollo.AddListener(mockNamespace, listener)
 	listener.wg.Wait()
 	assert.Equal(t, "registries.hangzhouzk.username", listener.event)
@@ -131,7 +212,15 @@ func TestAddListener(t *testing.T) {
 func TestRemoveListener(t *testing.T) {
 	listener := &apolloDataListener{}
 	apollo := initMockApollo(t)
-	mockConfigRes = `{"appId":"testApplication_yang","cluster":"default","namespaceName":"mockDubbog.properties","configurations":{"registries.hangzhouzk.username":"11111"},"releaseKey":"20191104105242-0f13805d89f834a4"}`
+	mockConfigRes = `{
+	"appId": "testApplication_yang",
+	"cluster": "default",
+	"namespaceName": "mockDubbog.properties",
+	"configurations": {
+		"registries.hangzhouzk.username": "11111"
+	},
+	"releaseKey": "20191104105242-0f13805d89f834a4"
+}`
 	apollo.AddListener(mockNamespace, listener)
 	apollo.RemoveListener(mockNamespace, listener)
 	assert.Equal(t, "", listener.event)
@@ -158,7 +247,6 @@ func (l *apolloDataListener) Process(configType *config_center.ConfigChangeEvent
 	if configType.ConfigType != remoting.EventTypeUpdate {
 		return
 	}
-	fmt.Println("process!!!!!")
 	l.wg.Done()
 	l.count++
 	l.event = configType.Key
diff --git a/config_center/apollo/listener.go b/config_center/apollo/listener.go
index 739b1f609..33f049150 100644
--- a/config_center/apollo/listener.go
+++ b/config_center/apollo/listener.go
@@ -19,6 +19,9 @@ package apollo
 
 import (
 	"github.com/apache/dubbo-go/config_center"
+)
+
+import (
 	"github.com/zouyx/agollo"
 )
 
-- 
GitLab