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