diff --git a/.gitignore b/.gitignore index 3769d10aa12348464cb315fd336bf6b7234069cc..e917b9dfe024bf641baf6c35f8f8d1a1676fdad5 100644 --- a/.gitignore +++ b/.gitignore @@ -17,10 +17,15 @@ coverage.txt target/ classes - -# Gopkg.lock +# go mod, go test vendor/ +coverage.txt logs/ .vscode/ coverage.txt + +# unit test +remoting/zookeeper/zookeeper-4unittest/ +config_center/zookeeper/zookeeper-4unittest/ +registry/zookeeper/zookeeper-4unittest/ diff --git a/LICENSE b/LICENSE index d80bbdaa1e12f60cc04fe2c14f97e293aff6dcd4..e76f9d9dd705daad997776153b1060f5bf8c2a1d 100644 --- a/LICENSE +++ b/LICENSE @@ -176,8 +176,6 @@ END OF TERMS AND CONDITIONS - Copyright (c) 2016 ~ 2018 Alex Stocks. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at diff --git a/README.md b/README.md index ccc6ae52edf5f5086213feb3d3d0823ed46e0b96..d01c5df56a4e33a6bd062c64201fc985c79077b1 100644 --- a/README.md +++ b/README.md @@ -33,19 +33,18 @@ Finished List: - Role: Consumer, Provider - Transport: HTTP, TCP - Codec: JsonRPC v2, Hessian v2 -- Registry: ZooKeeper/[etcd](https://github.com/apache/dubbo-go/pull/148)/[nacos](https://github.com/apache/dubbo-go/pull/151) +- Registry: ZooKeeper/[etcd v3](https://github.com/apache/dubbo-go/pull/148)/[nacos](https://github.com/apache/dubbo-go/pull/151)/[consul](https://github.com/apache/dubbo-go/pull/121) - Configure Center: Zookeeper -- Cluster Strategy: Failover/[Failfast](https://github.com/apache/dubbo-go/pull/140)/[Failsafe/Failback](https://github.com/apache/dubbo-go/pull/136)/Available/Broadcast +- Cluster Strategy: Failover/[Failfast](https://github.com/apache/dubbo-go/pull/140)/[Failsafe/Failback](https://github.com/apache/dubbo-go/pull/136)/[Available](https://github.com/apache/dubbo-go/pull/155)/[Broadcast](https://github.com/apache/dubbo-go/pull/158)/[Forking](https://github.com/apache/dubbo-go/pull/161) - Load Balance: Random/[RoundRobin](https://github.com/apache/dubbo-go/pull/66)/[LeastActive](https://github.com/apache/dubbo-go/pull/65) -- Filter: Echo Health Check +- Filter: Echo Health Check/[Circuit break and service downgrade](https://github.com/apache/dubbo-go/pull/133) - Other feature: [generic invoke](https://github.com/apache/dubbo-go/pull/122)/start check/connecting certain provider/multi-protocols/multi-registries/multi-versions/service group Working List: -- Cluster Strategy: Forking - Load Balance: ConsistentHash - Filter: TokenFilter/AccessLogFilter/CountFilter/ExecuteLimitFilter/TpsLimitFilter -- Registry: k8s/consul +- Registry: k8s - Configure Center: apollo - Dynamic Configuration Center & Metadata Center (dubbo v2.7.x) - Metrics: Promethus(dubbo v2.7.x) diff --git a/README_CN.md b/README_CN.md index e021be55765241be93f4c9c66cca1beb573cc1bb..9a769a196afa87eabc88649a5315b2772a8e4fef 100644 --- a/README_CN.md +++ b/README_CN.md @@ -32,11 +32,11 @@ Apache License, Version 2.0 - 瑙掕壊绔�: Consumer, Provider - 浼犺緭鍗忚: HTTP, TCP - 搴忓垪鍖栧崗璁�: JsonRPC v2, Hessian v2 -- 娉ㄥ唽涓績: ZooKeeper/[etcd](https://github.com/apache/dubbo-go/pull/148)/[nacos](https://github.com/apache/dubbo-go/pull/151) +- 娉ㄥ唽涓績: ZooKeeper/[etcd v3](https://github.com/apache/dubbo-go/pull/148)/[nacos](https://github.com/apache/dubbo-go/pull/151)/[consul](https://github.com/apache/dubbo-go/pull/121) - 閰嶇疆涓績: Zookeeper -- 闆嗙兢绛栫暐: Failover/[Failfast](https://github.com/apache/dubbo-go/pull/140)/[Failsafe/Failback](https://github.com/apache/dubbo-go/pull/136)/Available/Broadcast +- 闆嗙兢绛栫暐: Failover/[Failfast](https://github.com/apache/dubbo-go/pull/140)/[Failsafe/Failback](https://github.com/apache/dubbo-go/pull/136)/[Available](https://github.com/apache/dubbo-go/pull/155)/[Broadcast](https://github.com/apache/dubbo-go/pull/158)/[Forking](https://github.com/apache/dubbo-go/pull/161) - 璐熻浇鍧囪 绛栫暐: Random/[RoundRobin](https://github.com/apache/dubbo-go/pull/66)/[LeastActive](https://github.com/apache/dubbo-go/pull/65) -- 杩囨护鍣�: Echo Health Check +- 杩囨护鍣�: Echo Health Check/[鏈嶅姟鐔旀柇&闄嶇骇](https://github.com/apache/dubbo-go/pull/133) - 鍏朵粬鍔熻兘鏀寔: [娉涘寲璋冪敤](https://github.com/apache/dubbo-go/pull/122)/鍚姩鏃舵鏌�/鏈嶅姟鐩磋繛/澶氭湇鍔″崗璁�/澶氭敞鍐屼腑蹇�/澶氭湇鍔$増鏈�/鏈嶅姟鍒嗙粍 寮€鍙戜腑鍒楄〃: @@ -44,7 +44,7 @@ Apache License, Version 2.0 - 闆嗙兢绛栫暐: Forking - 璐熻浇鍧囪 绛栫暐: ConsistentHash - 杩囨护鍣�: TokenFilter/AccessLogFilter/CountFilter/ExecuteLimitFilter/TpsLimitFilter -- 娉ㄥ唽涓績: etcd/k8s/consul/nacos +- 娉ㄥ唽涓績: k8s - 閰嶇疆涓績: apollo - 鍔ㄦ€侀厤缃腑蹇� & 鍏冩暟鎹腑蹇� (dubbo v2.7.x) - Metrics: Promethus(dubbo v2.7.x) diff --git a/before_ut.sh b/before_ut.sh new file mode 100644 index 0000000000000000000000000000000000000000..7acee76ce5991ac1d06bff6a6325f083904f10b9 --- /dev/null +++ b/before_ut.sh @@ -0,0 +1,4 @@ +mkdir -p remoting/zookeeper/zookeeper-4unittest/contrib/fatjar config_center/zookeeper/zookeeper-4unittest/contrib/fatjar registry/zookeeper/zookeeper-4unittest/contrib/fatjar +wget -P "remoting/zookeeper/zookeeper-4unittest/contrib/fatjar" https://github.com/dubbogo/resources/raw/master/zookeeper-4unitest/contrib/fatjar/zookeeper-3.4.9-fatjar.jar +cp remoting/zookeeper/zookeeper-4unittest/contrib/fatjar/zookeeper-3.4.9-fatjar.jar config_center/zookeeper/zookeeper-4unittest/contrib/fatjar/ +cp remoting/zookeeper/zookeeper-4unittest/contrib/fatjar/zookeeper-3.4.9-fatjar.jar registry/zookeeper/zookeeper-4unittest/contrib/fatjar/ \ No newline at end of file diff --git a/cluster/loadbalance/least_active_test.go b/cluster/loadbalance/least_active_test.go index 7663ea3ce6252dcb7ddeaea92fb6bef8d95478d5..6bc6985678d7c392ad21b49ec341c3550265f622 100644 --- a/cluster/loadbalance/least_active_test.go +++ b/cluster/loadbalance/least_active_test.go @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package loadbalance import ( diff --git a/common/constant/key.go b/common/constant/key.go index e8db5713e38df7ef2b0caead60636a249156eb12..feb6fc9aaabd86d98dc204d472433ef69947e78a 100644 --- a/common/constant/key.go +++ b/common/constant/key.go @@ -36,6 +36,7 @@ const ( OVERRIDE_PROVIDERS_KEY = "providerAddresses" BEAN_NAME_KEY = "bean.name" GENERIC_KEY = "generic" + CLASSIFIER_KEY = "classifier" ) const ( diff --git a/common/extension/configurator.go b/common/extension/configurator.go index f7e1a263cd7541397869060bfd4bcbb6c88f1687..9551416fcdaf97046de5f5c3c13d27b2297ce39c 100644 --- a/common/extension/configurator.go +++ b/common/extension/configurator.go @@ -32,7 +32,7 @@ func SetConfigurator(name string, v func(url *common.URL) config_center.Configur func GetConfigurator(name string, url *common.URL) config_center.Configurator { if configurator[name] == nil { - panic("config center for " + name + " is not existing, make sure you have import the package.") + panic("configurator for " + name + " is not existing, make sure you have import the package.") } return configurator[name](url) @@ -43,14 +43,14 @@ func SetDefaultConfigurator(v func(url *common.URL) config_center.Configurator) func GetDefaultConfigurator(url *common.URL) config_center.Configurator { if configurator["default"] == nil { - panic("config center for default is not existing, make sure you have import the package.") + panic("configurator for default is not existing, make sure you have import the package.") } return configurator["default"](url) } func GetDefaultConfiguratorFunc() func(url *common.URL) config_center.Configurator { if configurator["default"] == nil { - panic("config center for default is not existing, make sure you have import the package.") + panic("configurator for default is not existing, make sure you have import the package.") } return configurator["default"] } diff --git a/common/url.go b/common/url.go index 4d9f6d1208cc5fa5dac052b43466c3246bb01e5a..aeae47b840eb0c959c1b4ddbdb5f075e4eaa2fd2 100644 --- a/common/url.go +++ b/common/url.go @@ -72,9 +72,9 @@ type baseUrl struct { Location string // ip+port Ip string Port string - Params url.Values //url.Values is not safe map, add to avoid concurrent map read and map write error - paramsLock sync.Mutex + paramsLock sync.RWMutex + Params url.Values PrimitiveURL string ctx context.Context } @@ -114,16 +114,19 @@ func WithParams(params url.Values) option { url.Params = params } } + func WithParamsValue(key, val string) option { return func(url *URL) { url.Params.Set(key, val) } } + func WithProtocol(proto string) option { return func(url *URL) { url.Protocol = proto } } + func WithIp(ip string) option { return func(url *URL) { url.Ip = ip @@ -147,6 +150,7 @@ func WithLocation(location string) option { url.Location = location } } + func NewURLWithOptions(opts ...option) *URL { url := &URL{} for _, opt := range opts { @@ -259,8 +263,8 @@ func (c URL) String() string { func (c URL) Key() string { buildString := fmt.Sprintf( - "%s://%s:%s@%s:%s/?interface=%s&group=%s&version=%s&category_key=%s", - c.Protocol, c.Username, c.Password, c.Ip, c.Port, c.Service(), c.GetParam(constant.GROUP_KEY, ""), c.GetParam(constant.VERSION_KEY, ""), c.GetParam(constant.CATEGORY_KEY, "")) + "%s://%s:%s@%s:%s/?interface=%s&group=%s&version=%s", + c.Protocol, c.Username, c.Password, c.Ip, c.Port, c.Service(), c.GetParam(constant.GROUP_KEY, ""), c.GetParam(constant.VERSION_KEY, "")) return buildString //return c.ServiceKey() } @@ -318,11 +322,11 @@ func (c *URL) AddParam(key string, value string) { func (c URL) GetParam(s string, d string) string { var r string - c.paramsLock.Lock() - if r = c.Params.Get(s); r == "" { + c.paramsLock.RLock() + if r = c.Params.Get(s); len(r) == 0 { r = d } - c.paramsLock.Unlock() + c.paramsLock.RUnlock() return r } func (c URL) GetParamAndDecoded(key string) (string, error) { @@ -498,5 +502,9 @@ func MergeUrl(serviceUrl URL, referenceUrl *URL) URL { func (c *URL) Clone() *URL { newUrl := &URL{} copier.Copy(newUrl, c) + newUrl.Params = url.Values{} + for k, v := range c.Params { + newUrl.Params[k] = v + } return newUrl } diff --git a/config/config_loader.go b/config/config_loader.go index b033aced5365dc58b06887d95b15b24ec91980a9..c5127c8c43622e7b26c998eb54e1b1803e6575ec 100644 --- a/config/config_loader.go +++ b/config/config_loader.go @@ -36,8 +36,8 @@ var ( maxWait = 3 ) -// loaded comsumer & provider config from xxx.yml, and log config from xxx.xml -// Namely: dubbo.comsumer.xml & dubbo.provider.xml in java dubbo +// loaded consumer & provider config from xxx.yml, and log config from xxx.xml +// Namely: dubbo.consumer.xml & dubbo.provider.xml in java dubbo func init() { var ( confConFile, confProFile string @@ -70,9 +70,8 @@ func Load() { SetConsumerService(genericService) } rpcService := GetConsumerService(key) - if rpcService == nil { - logger.Warnf("%s is not exsist!", key) + logger.Warnf("%s does not exist!", key) continue } ref.id = key @@ -99,7 +98,7 @@ func Load() { break } if refconfig.invoker == nil { - logger.Warnf("The interface %s invoker not exsist , may you should check your interface config.", refconfig.InterfaceName) + logger.Warnf("The interface %s invoker not exist , may you should check your interface config.", refconfig.InterfaceName) } } } @@ -120,7 +119,7 @@ func Load() { for key, svs := range providerConfig.Services { rpcService := GetProviderService(key) if rpcService == nil { - logger.Warnf("%s is not exsist!", key) + logger.Warnf("%s does not exist!", key) continue } svs.id = key diff --git a/config/consumer_config.go b/config/consumer_config.go index 737339a0ad195201327eb4fac3445b18eb4bbf26..55082ffe41ad0a38ccbb6c2e788f0b609a8b4ef8 100644 --- a/config/consumer_config.go +++ b/config/consumer_config.go @@ -52,6 +52,7 @@ type ConsumerConfig struct { Registries map[string]*RegistryConfig `yaml:"registries" json:"registries,omitempty" property:"registries"` References map[string]*ReferenceConfig `yaml:"references" json:"references,omitempty" property:"references"` ProtocolConf interface{} `yaml:"protocol_conf" json:"protocol_conf,omitempty" property:"protocol_conf"` + FilterConf interface{} `yaml:"filter_conf" json:"filter_conf,omitempty" property:"filter_conf" ` } func (*ConsumerConfig) Prefix() string { diff --git a/config/provider_config.go b/config/provider_config.go index a504eea237dc47f66c4ed27d334ce5eea5c87d45..db8abaf73e9609b3f3ac1db68e89a3d66068659b 100644 --- a/config/provider_config.go +++ b/config/provider_config.go @@ -46,6 +46,7 @@ type ProviderConfig struct { Services map[string]*ServiceConfig `yaml:"services" json:"services,omitempty" property:"services"` Protocols map[string]*ProtocolConfig `yaml:"protocols" json:"protocols,omitempty" property:"protocols"` ProtocolConf interface{} `yaml:"protocol_conf" json:"protocol_conf,omitempty" property:"protocol_conf" ` + FilterConf interface{} `yaml:"filter_conf" json:"filter_conf,omitempty" property:"filter_conf" ` } func (*ProviderConfig) Prefix() string { diff --git a/config/reference_config_test.go b/config/reference_config_test.go index 774fece29f5158b6840b3384b5c56846cc4da37b..d36fa04d7461cfb6cd4c9d2d739e9863355df077 100644 --- a/config/reference_config_test.go +++ b/config/reference_config_test.go @@ -20,8 +20,6 @@ package config import ( "sync" "testing" - - "github.com/apache/dubbo-go/common/constant" ) import ( @@ -31,6 +29,7 @@ import ( import ( "github.com/apache/dubbo-go/cluster/cluster_impl" "github.com/apache/dubbo-go/common" + "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/common/extension" "github.com/apache/dubbo-go/protocol" ) diff --git a/config/service_config_test.go b/config/service_config_test.go index e111c8d110a14a039f3ab1a6c14f8044847f87e5..f1de3ac08afdd7aac504c2c56dcb594011e35da6 100644 --- a/config/service_config_test.go +++ b/config/service_config_test.go @@ -21,10 +21,6 @@ import ( "testing" ) -import ( - "github.com/stretchr/testify/assert" -) - import ( "github.com/apache/dubbo-go/common/extension" ) @@ -116,9 +112,6 @@ func Test_Export(t *testing.T) { service := providerConfig.Services[i] service.Implement(&MockService{}) service.Export() - assert.Condition(t, func() bool { - return len(service.exporters) > 0 - }) } providerConfig = nil } diff --git a/config_center/configurator/mock.go b/config_center/configurator/mock.go index 8547d562e1e815f6d5fff2c421c24ed62316f7fc..4ccfcbd6379f54b0d4c43333b0d537a00f7a014d 100644 --- a/config_center/configurator/mock.go +++ b/config_center/configurator/mock.go @@ -1,7 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package configurator import ( "github.com/apache/dubbo-go/common" + "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/config_center" ) @@ -18,5 +35,7 @@ func (c *mockConfigurator) GetUrl() *common.URL { } func (c *mockConfigurator) Configure(url *common.URL) { - + if cluster := c.GetUrl().GetParam(constant.CLUSTER_KEY, ""); cluster != "" { + url.Params.Set(constant.CLUSTER_KEY, cluster) + } } diff --git a/config_center/configurator/override.go b/config_center/configurator/override.go index 78ab3d8533cca43c0b15bfc4f089958948d07c59..a4a97294d22e922bc4edf90c5ddebff0f1587a75 100644 --- a/config_center/configurator/override.go +++ b/config_center/configurator/override.go @@ -1,3 +1,19 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package configurator import ( diff --git a/config_center/configurator/override_test.go b/config_center/configurator/override_test.go index 0e763469c80cf8c91072de989e5d3f48f86b7b75..e03056ded50257e420afb50fe10c68093fd3b760 100644 --- a/config_center/configurator/override_test.go +++ b/config_center/configurator/override_test.go @@ -1,18 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package configurator import ( "context" + "testing" +) +import ( + "github.com/stretchr/testify/assert" +) +import ( "github.com/apache/dubbo-go/common" "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/common/extension" - "github.com/stretchr/testify/assert" - "testing" ) func Test_configureVerison2p6(t *testing.T) { url, err := common.NewURL(context.Background(), "override://0.0.0.0:0/com.xxx.mock.userProvider?group=1&version=1&cluster=failfast&application=BDTService") assert.NoError(t, err) - configurator := extension.GetConfigurator("override", &url) + configurator := extension.GetConfigurator("default", &url) assert.Equal(t, "override", configurator.GetUrl().Protocol) providerUrl, err := common.NewURL(context.Background(), "jsonrpc://127.0.0.1:20001/com.ikurento.user.UserProvider?anyhost=true&app.version=0.0.1&application=BDTService&category=providers&cluster=failover&dubbo=dubbo-provider-golang-2.6.0&environment=dev&group=&interface=com.ikurento.user.UserProvider&ip=10.32.20.124&loadbalance=random&methods.GetUser.loadbalance=random&methods.GetUser.retries=1&methods.GetUser.weight=0&module=dubbogo+user-info+server&name=BDTService&organization=ikurento.com&owner=ZX&pid=64225&retries=0&service.filter=echo&side=provider×tamp=1562076628&version=&warmup=100") @@ -23,7 +43,7 @@ func Test_configureVerison2p6(t *testing.T) { func Test_configureVerisonOverrideAddr(t *testing.T) { url, err := common.NewURL(context.Background(), "override://0.0.0.0:0/com.xxx.mock.userProvider?group=1&version=1&cluster=failfast&application=BDTService&providerAddresses=127.0.0.2:20001|127.0.0.3:20001") assert.NoError(t, err) - configurator := extension.GetConfigurator("override", &url) + configurator := extension.GetConfigurator("default", &url) assert.Equal(t, "override", configurator.GetUrl().Protocol) providerUrl, err := common.NewURL(context.Background(), "jsonrpc://127.0.0.1:20001/com.ikurento.user.UserProvider?anyhost=true&app.version=0.0.1&application=BDTService&category=providers&cluster=failover&dubbo=dubbo-provider-golang-2.6.0&environment=dev&group=&interface=com.ikurento.user.UserProvider&ip=10.32.20.124&loadbalance=random&methods.GetUser.loadbalance=random&methods.GetUser.retries=1&methods.GetUser.weight=0&module=dubbogo+user-info+server&name=BDTService&organization=ikurento.com&owner=ZX&pid=64225&retries=0&service.filter=echo&side=provider×tamp=1562076628&version=&warmup=100") @@ -34,7 +54,7 @@ func Test_configureVerisonOverrideAddr(t *testing.T) { func Test_configureVerison2p6WithIp(t *testing.T) { url, err := common.NewURL(context.Background(), "override://127.0.0.1:20001/com.xxx.mock.userProvider?group=1&version=1&cluster=failfast&application=BDTService") assert.NoError(t, err) - configurator := extension.GetConfigurator("override", &url) + configurator := extension.GetConfigurator("default", &url) assert.Equal(t, "override", configurator.GetUrl().Protocol) providerUrl, err := common.NewURL(context.Background(), "jsonrpc://127.0.0.1:20001/com.ikurento.user.UserProvider?anyhost=true&app.version=0.0.1&application=BDTService&category=providers&cluster=failover&dubbo=dubbo-provider-golang-2.6.0&environment=dev&group=&interface=com.ikurento.user.UserProvider&ip=10.32.20.124&loadbalance=random&methods.GetUser.loadbalance=random&methods.GetUser.retries=1&methods.GetUser.weight=0&module=dubbogo+user-info+server&name=BDTService&organization=ikurento.com&owner=ZX&pid=64225&retries=0&service.filter=echo&side=provider×tamp=1562076628&version=&warmup=100") @@ -46,7 +66,7 @@ func Test_configureVerison2p6WithIp(t *testing.T) { func Test_configureVerison2p7(t *testing.T) { url, err := common.NewURL(context.Background(), "jsonrpc://0.0.0.0:20001/com.xxx.mock.userProvider?group=1&version=1&cluster=failfast&application=BDTService&configVersion=1.0&side=provider") assert.NoError(t, err) - configurator := extension.GetConfigurator("override", &url) + configurator := extension.GetConfigurator("default", &url) providerUrl, err := common.NewURL(context.Background(), "jsonrpc://127.0.0.1:20001/com.ikurento.user.UserProvider?anyhost=true&app.version=0.0.1&application=BDTService&category=providers&cluster=failover&dubbo=dubbo-provider-golang-2.6.0&environment=dev&group=&interface=com.ikurento.user.UserProvider&ip=10.32.20.124&loadbalance=random&methods.GetUser.loadbalance=random&methods.GetUser.retries=1&methods.GetUser.weight=0&module=dubbogo+user-info+server&name=BDTService&organization=ikurento.com&owner=ZX&pid=64225&retries=0&service.filter=echo&side=provider×tamp=1562076628&version=&warmup=100") configurator.Configure(&providerUrl) diff --git a/config_center/zookeeper/impl_test.go b/config_center/zookeeper/impl_test.go index b200b9cdbf4cb638bb4a8ae66d2fe5947f861046..2f620457f75b7e35f713423e3841d0272cbd0730 100644 --- a/config_center/zookeeper/impl_test.go +++ b/config_center/zookeeper/impl_test.go @@ -19,7 +19,6 @@ package zookeeper import ( "context" "fmt" - "github.com/apache/dubbo-go/config_center/parser" "sync" "testing" ) @@ -32,7 +31,7 @@ import ( import ( "github.com/apache/dubbo-go/common" "github.com/apache/dubbo-go/config_center" - "github.com/apache/dubbo-go/remoting" + "github.com/apache/dubbo-go/config_center/parser" ) func initZkData(group string, t *testing.T) (*zk.TestCluster, *zookeeperDynamicConfiguration) { @@ -162,7 +161,7 @@ type mockDataListener struct { event string } -func (l *mockDataListener) Process(configType *remoting.ConfigChangeEvent) { +func (l *mockDataListener) Process(configType *config_center.ConfigChangeEvent) { fmt.Println("process!!!!!") l.wg.Done() l.event = configType.Key diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/app/client.go b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/app/client.go index d27af7a31778403d518e6454de7ebab4b9b5cdf7..44ffbd98f691d6ffef0485bc54159662662f8b16 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/app/client.go +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/app/client.go @@ -135,7 +135,7 @@ func initSignal() { case syscall.SIGHUP: // reload() default: - go time.AfterFunc(time.Duration(survivalTimeout)*time.Second, func() { + time.AfterFunc(time.Duration(survivalTimeout)*time.Second, func() { logger.Warnf("app exit now by force...") os.Exit(1) }) diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/bin/load.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/bin/load.sh index 07d5d15eac7b7974845e36c3807e7ec55875de65..ffa240b29d9e76761a151e7462092b86908de6f6 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/bin/load.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/bin/load.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/common/app.properties b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/common/app.properties index 6bbd6db850ceeaf5ff873fee01a3578237cbd557..e10868f4d292765c7eeb2e8bb8b1684a44f56a14 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/common/app.properties +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/common/app.properties @@ -1,13 +1,19 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : dubbogo environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + export TARGET_EXEC_NAME="user_info_client" # BUILD_PACKAGE="dubbogo-examples/user-info/client/app" diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/common/build.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/common/build.sh index e72418297ad2f0ac6985476b5a8d5e03b9e7584e..c9a9e87c73ef45195d6f70acccf9374ee6cb906b 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/common/build.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/common/build.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rm -rf target/ diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/dev.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/dev.sh index 3373f01b948b708cd7bc1958c9d56a9042c60a68..eada737c8d0939d4237a6d218fc2a07efdbff381 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/dev.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/release.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/release.sh index 34867b8b3488778cd76a1dc7802393dcab6b0df0..10eb3d73f8760d394537b90b7aeff83ca2b243ed 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/release.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/test.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/test.sh index 1bbbefd1e14e08c16deaf859e2841f4d1fe88e9c..78b650c0d49483f9f6862532afa5c483b618475a 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/test.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/dev.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/dev.sh index b68ac83b6524a6713cd90c4fc5968fe64b1a9545..c8284769909e62f0142c29e3a63177bf2826593f 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/dev.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/release.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/release.sh index 688288b3b1b989e8af70a3674b34ea8e0668f3b4..91c2dfee79b1499b640420191174f980eac187bb 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/release.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/test.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/test.sh index 56d6c11ecd6a1dc5984c74b88c10be9239e57428..a7853f5e2d51df8e3e9509621952c44bca0d1a2d 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/test.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/mac/test.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/dev.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/dev.sh index 91cf6f23bcbecb26db798469a30529261aabbbb6..10a3866c0f4ed8e1070c4d5641259c04073df6cb 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/dev.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/release.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/release.sh index f317720bd53d9c9e5f8f484b6eb682c9c736af0c..21af573fa3842d47959d5726b11b81d5fff5b8df 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/release.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/test.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/test.sh index 7dd2bec5260e647b57a46aaa37acc098babff068..2104da8b5909957c165eedc2f7d6866a890e9e6d 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/test.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-client/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/app/server.go b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/app/server.go index cd982992171fdf674e560bfb4ed280c1951cccde..04c614d732d3ed39d921796050249907fbc530d5 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/app/server.go +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/app/server.go @@ -73,7 +73,7 @@ func initSignal() { case syscall.SIGHUP: // reload() default: - go time.AfterFunc(time.Duration(float64(survivalTimeout)*float64(time.Second)), func() { + time.AfterFunc(time.Duration(float64(survivalTimeout)*float64(time.Second)), func() { logger.Warnf("app exit now by force...") os.Exit(1) }) diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/bin/load.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/bin/load.sh index 47fc5e38ded155a43c30b8cbf4d2a5ae04b58d0c..90077c2471d7d5553ddea6402c7e2c06867cba8e 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/bin/load.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/bin/load.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/common/app.properties b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/common/app.properties index dffb755b0811dd140d3f04e232f5f80ff60181df..1f0827eb512b9bcb3c2428f8e0b50d76f65743ef 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/common/app.properties +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/common/app.properties @@ -1,13 +1,19 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : application environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + TARGET_EXEC_NAME="user_info_server" # BUILD_PACKAGE="dubbogo-examples/user-info/server/app" diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/common/build.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/common/build.sh index 15ac904f7c265d942d7018439719af7e7391aa41..89a95ce679ca711824a2de0888686be79d96f505 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/common/build.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/common/build.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rm -rf target/ diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/dev.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/dev.sh index 55886f09fb4873be84cfa46aae592f5f000120a4..d830ac98c2b9328791d00d5160d487b1a12b5fed 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/dev.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/release.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/release.sh index 9772ad9614583917d62beba2db9fcaefea63e1ed..99303800b0fbcd7f8dfea668dcf395f126fb99f6 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/release.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/test.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/test.sh index 2fc4a98862bee5ef11a23e1b74058627a899181d..87144bb973095acaf8c17b0ec3bf42f643d0b95f 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/test.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/dev.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/dev.sh index 5dfa78490b895ce556c809ead32b6f517a5f1450..3a7659b2d57e0e2502950d76ec6c938abf2b7513 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/dev.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/release.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/release.sh index 1ec21c7b511ccce9eddfac22a2374b57a7a697bf..1c4bce4bf825fe401823ec33025e004a476ccaaf 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/release.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/test.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/test.sh index d34914c7dbed0e442b4accf51a3ecdf7c2984db8..69206e32fed343eb87c04190b509b16482125542 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/test.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/mac/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/dev.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/dev.sh index 97fbb6f698e500ad08d971b13cc1ffd00cd97803..011fb41148f205bc329118a3c75e52854c0ecfd3 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/dev.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:34 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/release.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/release.sh index 782cb10c7828eb277b5905f10f8dd6ad1c2d6bed..679a26a7dc77a9bc0ccbf119eac3caba252cadc9 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/release.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/test.sh b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/test.sh index 2037ddecf2545f1543d5d28be728fb0899722098..4a36de0f3a26b804601de703c62a8062bd0623f4 100644 --- a/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/test.sh +++ b/examples/configcenter/zookeeper/dubbo/with-configcenter-go-server/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/app/client.go b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/app/client.go index 5b1634788c455f6b8f0fb964f25a07b525492cf0..db76d939a1a7e2bd5ae04b5968dd5af7aaf69a2e 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/app/client.go +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/app/client.go @@ -120,7 +120,7 @@ func initSignal() { case syscall.SIGHUP: // reload() default: - go time.AfterFunc(time.Duration(survivalTimeout)*time.Second, func() { + time.AfterFunc(time.Duration(survivalTimeout)*time.Second, func() { logger.Warnf("app exit now by force...") os.Exit(1) }) diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/bin/load.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/bin/load.sh index 07d5d15eac7b7974845e36c3807e7ec55875de65..ffa240b29d9e76761a151e7462092b86908de6f6 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/bin/load.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/bin/load.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/common/app.properties b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/common/app.properties index 6bbd6db850ceeaf5ff873fee01a3578237cbd557..e10868f4d292765c7eeb2e8bb8b1684a44f56a14 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/common/app.properties +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/common/app.properties @@ -1,13 +1,19 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : dubbogo environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + export TARGET_EXEC_NAME="user_info_client" # BUILD_PACKAGE="dubbogo-examples/user-info/client/app" diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/common/build.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/common/build.sh index 06b212db6c3dcc28e5e43666284662bcb7abcae4..c9a9e87c73ef45195d6f70acccf9374ee6cb906b 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/common/build.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/common/build.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rm -rf target/ @@ -15,7 +21,7 @@ PROJECT_HOME=`pwd` TARGET_FOLDER=${PROJECT_HOME}/target/${GOOS} TARGET_SBIN_NAME=${TARGET_EXEC_NAME} -version=`cat app/version.go | grep Version | grep -v "Apache" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}'` +version=`cat app/version.go | grep Version | grep -v "Apache" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}'` if [[ ${GOOS} == "windows" ]]; then TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe fi diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/dev.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/dev.sh index 3373f01b948b708cd7bc1958c9d56a9042c60a68..eada737c8d0939d4237a6d218fc2a07efdbff381 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/dev.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/release.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/release.sh index 34867b8b3488778cd76a1dc7802393dcab6b0df0..10eb3d73f8760d394537b90b7aeff83ca2b243ed 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/release.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/test.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/test.sh index 1bbbefd1e14e08c16deaf859e2841f4d1fe88e9c..78b650c0d49483f9f6862532afa5c483b618475a 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/test.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/dev.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/dev.sh index b68ac83b6524a6713cd90c4fc5968fe64b1a9545..c8284769909e62f0142c29e3a63177bf2826593f 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/dev.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/release.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/release.sh index 688288b3b1b989e8af70a3674b34ea8e0668f3b4..91c2dfee79b1499b640420191174f980eac187bb 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/release.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/test.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/test.sh index 56d6c11ecd6a1dc5984c74b88c10be9239e57428..a7853f5e2d51df8e3e9509621952c44bca0d1a2d 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/test.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/mac/test.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/dev.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/dev.sh index 91cf6f23bcbecb26db798469a30529261aabbbb6..10a3866c0f4ed8e1070c4d5641259c04073df6cb 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/dev.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/release.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/release.sh index f317720bd53d9c9e5f8f484b6eb682c9c736af0c..21af573fa3842d47959d5726b11b81d5fff5b8df 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/release.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/test.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/test.sh index 7dd2bec5260e647b57a46aaa37acc098babff068..2104da8b5909957c165eedc2f7d6866a890e9e6d 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/test.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-client/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/app/server.go b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/app/server.go index 0a0e72915fef0ca4613f78a87fa1057152c1cc9a..23cfd415533cf81b900be1982b9ceae567a845f3 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/app/server.go +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/app/server.go @@ -62,7 +62,7 @@ func initSignal() { case syscall.SIGHUP: // reload() default: - go time.AfterFunc(time.Duration(float64(survivalTimeout)*float64(time.Second)), func() { + time.AfterFunc(time.Duration(float64(survivalTimeout)*float64(time.Second)), func() { logger.Warnf("app exit now by force...") os.Exit(1) }) diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/bin/load.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/bin/load.sh index 47fc5e38ded155a43c30b8cbf4d2a5ae04b58d0c..90077c2471d7d5553ddea6402c7e2c06867cba8e 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/bin/load.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/bin/load.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/common/app.properties b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/common/app.properties index dffb755b0811dd140d3f04e232f5f80ff60181df..1f0827eb512b9bcb3c2428f8e0b50d76f65743ef 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/common/app.properties +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/common/app.properties @@ -1,13 +1,19 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : application environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + TARGET_EXEC_NAME="user_info_server" # BUILD_PACKAGE="dubbogo-examples/user-info/server/app" diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/common/build.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/common/build.sh index 15ac904f7c265d942d7018439719af7e7391aa41..89a95ce679ca711824a2de0888686be79d96f505 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/common/build.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/common/build.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rm -rf target/ diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/dev.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/dev.sh index 55886f09fb4873be84cfa46aae592f5f000120a4..d830ac98c2b9328791d00d5160d487b1a12b5fed 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/dev.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/release.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/release.sh index 9772ad9614583917d62beba2db9fcaefea63e1ed..99303800b0fbcd7f8dfea668dcf395f126fb99f6 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/release.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/test.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/test.sh index 2fc4a98862bee5ef11a23e1b74058627a899181d..87144bb973095acaf8c17b0ec3bf42f643d0b95f 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/test.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/dev.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/dev.sh index 5dfa78490b895ce556c809ead32b6f517a5f1450..3a7659b2d57e0e2502950d76ec6c938abf2b7513 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/dev.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/release.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/release.sh index 1ec21c7b511ccce9eddfac22a2374b57a7a697bf..1c4bce4bf825fe401823ec33025e004a476ccaaf 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/release.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/test.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/test.sh index d34914c7dbed0e442b4accf51a3ecdf7c2984db8..69206e32fed343eb87c04190b509b16482125542 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/test.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/mac/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/dev.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/dev.sh index 97fbb6f698e500ad08d971b13cc1ffd00cd97803..011fb41148f205bc329118a3c75e52854c0ecfd3 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/dev.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:34 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/release.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/release.sh index 782cb10c7828eb277b5905f10f8dd6ad1c2d6bed..679a26a7dc77a9bc0ccbf119eac3caba252cadc9 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/release.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/test.sh b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/test.sh index 2037ddecf2545f1543d5d28be728fb0899722098..4a36de0f3a26b804601de703c62a8062bd0623f4 100644 --- a/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/test.sh +++ b/examples/configcenter/zookeeper/jsonrpc/with-configcenter-go-server/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/consul/README.md b/examples/consul/README.md new file mode 100644 index 0000000000000000000000000000000000000000..bb475526e8c1ccc6c9cc2365caa2a06b2f69d997 --- /dev/null +++ b/examples/consul/README.md @@ -0,0 +1,44 @@ +# consul + +Examples for consul registry. Before running examples below, make sure that consul has been started. + +## requirement + +- consul +- go 1.12 +- java 8 +- maven 3.6.1 + +## go-server + +``` +$ cd examples/consul/go-server +$ export CONF_PROVIDER_FILE_PATH="config/server.yml" +$ export APP_LOG_CONF_FILE="config/log.yml" +$ go run . +``` + +## go-client + +``` +$ cd examples/consul/go-client +$ export CONF_CONSUMER_FILE_PATH="config/client.yml" +$ export APP_LOG_CONF_FILE="config/log.yml" +$ go run . +``` + +## java-server + +``` +$ cd examples/consul/java-server +$ mvn clean package +$ java -jar target/java-server-1.0.0.jar +``` + +## java-client + +``` +$ cd examples/consul/java-client +$ mvn clean package +$ java -jar target/java-client-1.0.0.jar +``` \ No newline at end of file diff --git a/examples/consul/go-client/client.go b/examples/consul/go-client/client.go new file mode 100644 index 0000000000000000000000000000000000000000..73a9bc9c3cddb7fc23cae2cd8d776bc68ef26af8 --- /dev/null +++ b/examples/consul/go-client/client.go @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "fmt" +) + +import ( + _ "github.com/apache/dubbo-go/cluster/cluster_impl" + _ "github.com/apache/dubbo-go/cluster/loadbalance" + _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" + "github.com/apache/dubbo-go/config" + _ "github.com/apache/dubbo-go/filter/impl" + _ "github.com/apache/dubbo-go/protocol/dubbo" + _ "github.com/apache/dubbo-go/registry/consul" + _ "github.com/apache/dubbo-go/registry/protocol" +) + +func main() { + config.Load() + + message, err := dubboService.SayHello([]interface{}{"world"}) + if err != nil { + panic(err) + } + fmt.Println(message) +} diff --git a/examples/consul/go-client/config/client.yml b/examples/consul/go-client/config/client.yml new file mode 100644 index 0000000000000000000000000000000000000000..8a7458c384bc80b5096aa1b3496f9f1430753a07 --- /dev/null +++ b/examples/consul/go-client/config/client.yml @@ -0,0 +1,52 @@ +application_config: + organization : "ikurento.com" + name : "BDTService" + module : "dubbogo user-info client" + version : "0.0.1" + owner : "ZX" + environment : "test" + +registries : + "consul": + protocol: "consul" + timeout : "3s" + address: "127.0.0.1:8500" + username: "" + password: "" + +references: + "DubboService": + protocol : "dubbo" + interface : "dubbo.DubboService" + cluster: "failover" + methods : + - name: "SayHello" + retries: 3 + +protocol_conf: + dubbo: + reconnect_interval: 0 + connection_number: 2 + heartbeat_period: "5s" + session_timeout: "20s" + fail_fast_timeout: "5s" + pool_size: 64 + pool_ttl: 600 + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_rq_size: 1024 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 10240 + session_name: "client" + +check: true +request_timeout : "3s" +connect_timeout : "3s" diff --git a/examples/consul/go-client/config/log.yml b/examples/consul/go-client/config/log.yml new file mode 100644 index 0000000000000000000000000000000000000000..baee0b7248484e425f88f35ab128212c931ff85e --- /dev/null +++ b/examples/consul/go-client/config/log.yml @@ -0,0 +1,28 @@ + +level: "info" +development: false +disableCaller: false +disableStacktrace: true +sampling: +encoding: "console" + +# encoder +encoderConfig: + messageKey: "message" + levelKey: "level" + timeKey: "time" + nameKey: "logger" + callerKey: "caller" + stacktraceKey: "stacktrace" + lineEnding: "" + levelEncoder: "capitalColor" + timeEncoder: "iso8601" + durationEncoder: "seconds" + callerEncoder: "short" + nameEncoder: "" + +outputPaths: + - "stderr" +errorOutputPaths: + - "stderr" +initialFields: diff --git a/examples/consul/go-client/service.go b/examples/consul/go-client/service.go new file mode 100644 index 0000000000000000000000000000000000000000..0f7cca59857f0b66e8fab51c0ec95e3adfead44a --- /dev/null +++ b/examples/consul/go-client/service.go @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "github.com/apache/dubbo-go/config" +) + +var dubboService = new(DubboService) + +func init() { + config.SetConsumerService(dubboService) +} + +type DubboService struct { + SayHello func(req interface{}) (string, error) +} + +func (s *DubboService) Reference() string { + return "DubboService" +} diff --git a/examples/consul/go-server/config/log.yml b/examples/consul/go-server/config/log.yml new file mode 100644 index 0000000000000000000000000000000000000000..baee0b7248484e425f88f35ab128212c931ff85e --- /dev/null +++ b/examples/consul/go-server/config/log.yml @@ -0,0 +1,28 @@ + +level: "info" +development: false +disableCaller: false +disableStacktrace: true +sampling: +encoding: "console" + +# encoder +encoderConfig: + messageKey: "message" + levelKey: "level" + timeKey: "time" + nameKey: "logger" + callerKey: "caller" + stacktraceKey: "stacktrace" + lineEnding: "" + levelEncoder: "capitalColor" + timeEncoder: "iso8601" + durationEncoder: "seconds" + callerEncoder: "short" + nameEncoder: "" + +outputPaths: + - "stderr" +errorOutputPaths: + - "stderr" +initialFields: diff --git a/examples/consul/go-server/config/server.yml b/examples/consul/go-server/config/server.yml new file mode 100644 index 0000000000000000000000000000000000000000..c12800e68d1c32793cb6860561f3240f196a6a78 --- /dev/null +++ b/examples/consul/go-server/config/server.yml @@ -0,0 +1,52 @@ +application_config: + organization : "ikurento.com" + name : "BDTService" + module : "dubbogo user-info server" + version : "0.0.1" + owner : "ZX" + environment : "test" + +registries : + "consul": + protocol: "consul" + timeout : "3s" + address: "127.0.0.1:8500" + username: "" + password: "" + +services: + "DubboService": + protocol : "dubbo" + interface : "dubbo.DubboService" + loadbalance: "random" + warmup: "100" + cluster: "failover" + methods: + - name: "SayHello" + retries: 1 + loadbalance: "random" + +protocols: + "dubbo1": + name: "dubbo" + port: 20000 + +protocol_conf: + dubbo: + session_number: 700 + fail_fast_timeout: "5s" + session_timeout: "20s" + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_rq_size: 1024 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 1024 + session_name: "server" diff --git a/examples/consul/go-server/server.go b/examples/consul/go-server/server.go new file mode 100644 index 0000000000000000000000000000000000000000..798fe7c7b0632bf7d366d4bf500846fd6ced73e9 --- /dev/null +++ b/examples/consul/go-server/server.go @@ -0,0 +1,70 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "fmt" + "os" + "os/signal" + "syscall" + "time" +) + +import ( + _ "github.com/apache/dubbo-go/cluster/cluster_impl" + _ "github.com/apache/dubbo-go/cluster/loadbalance" + "github.com/apache/dubbo-go/common/logger" + _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" + "github.com/apache/dubbo-go/config" + _ "github.com/apache/dubbo-go/filter/impl" + _ "github.com/apache/dubbo-go/protocol/dubbo" + _ "github.com/apache/dubbo-go/registry/consul" + _ "github.com/apache/dubbo-go/registry/protocol" +) + +var ( + survivalTimeout = int(3e9) +) + +func main() { + config.Load() + initSignal() +} + +func initSignal() { + signals := make(chan os.Signal, 1) + // It is not possible to block SIGKILL or syscall.SIGSTOP + signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) + for { + sig := <-signals + logger.Infof("get signal %s", sig.String()) + switch sig { + case syscall.SIGHUP: + // reload() + default: + go time.AfterFunc(time.Duration(float64(survivalTimeout)*float64(time.Second)), func() { + logger.Warnf("app exit now by force...") + os.Exit(1) + }) + + // The program exits normally or timeout forcibly exits. + fmt.Println("provider app exit now...") + return + } + } +} diff --git a/examples/consul/go-server/service.go b/examples/consul/go-server/service.go new file mode 100644 index 0000000000000000000000000000000000000000..7c08ec99b93ce1d383fad3e717b4fdf2da0b5d6c --- /dev/null +++ b/examples/consul/go-server/service.go @@ -0,0 +1,36 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "github.com/apache/dubbo-go/config" +) + +func init() { + config.SetProviderService(new(DubboService)) +} + +type DubboService struct{} + +func (s *DubboService) SayHello(message string) (string, error) { + return "hello " + message, nil +} + +func (s *DubboService) Reference() string { + return "DubboService" +} diff --git a/examples/consul/java-client/.gitignore b/examples/consul/java-client/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..0bbcf418ec53691d6895a6ea8eeb56a264f2b735 --- /dev/null +++ b/examples/consul/java-client/.gitignore @@ -0,0 +1,7 @@ +.idea +.gradle +*.iml +dependency-reduced-pom.xml +out/ +build/ +target/ \ No newline at end of file diff --git a/examples/consul/java-client/pom.xml b/examples/consul/java-client/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..3e54e77d492416b439c8fe441dae492eb019229a --- /dev/null +++ b/examples/consul/java-client/pom.xml @@ -0,0 +1,88 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>consul</groupId> + <artifactId>java-client</artifactId> + <version>1.0.0</version> + + <properties> + <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.target>1.8</maven.compiler.target> + </properties> + + <dependencies> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.17</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.apache.dubbo</groupId> + <artifactId>dubbo</artifactId> + <version>2.7.1</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>com.ecwid.consul</groupId> + <artifactId>consul-api</artifactId> + <version>1.4.2</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + <version>1.2</version> + <scope>compile</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>3.1.1</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <transformers> + <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <mainClass>dubbo.client.Main</mainClass> + </transformer> + </transformers> + <filters> + <filter> + <artifact>*:*</artifact> + <excludes> + <exclude>META-INF/*.SF</exclude> + <exclude>META-INF/*.DSA</exclude> + <exclude>META-INF/*.RSA</exclude> + </excludes> + </filter> + </filters> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file diff --git a/examples/consul/java-client/src/main/java/dubbo/DubboService.java b/examples/consul/java-client/src/main/java/dubbo/DubboService.java new file mode 100644 index 0000000000000000000000000000000000000000..4eb2d8c10ae76a3f15ab2619cc369ff3564b97af --- /dev/null +++ b/examples/consul/java-client/src/main/java/dubbo/DubboService.java @@ -0,0 +1,22 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package dubbo; + +public interface DubboService { + String SayHello(String message); +} diff --git a/examples/consul/java-client/src/main/java/dubbo/client/Main.java b/examples/consul/java-client/src/main/java/dubbo/client/Main.java new file mode 100644 index 0000000000000000000000000000000000000000..d9880bf2c4625dbebe0225502ebf42f98b36d896 --- /dev/null +++ b/examples/consul/java-client/src/main/java/dubbo/client/Main.java @@ -0,0 +1,43 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package dubbo.client; + +import org.apache.dubbo.config.ApplicationConfig; +import org.apache.dubbo.config.ReferenceConfig; +import org.apache.dubbo.config.RegistryConfig; +import dubbo.DubboService; + +public class Main { + public static void main(String[] args) { + ApplicationConfig applicationConfig = new ApplicationConfig(); + applicationConfig.setName("java-client"); + applicationConfig.setQosPort(33333); + + RegistryConfig registryConfig = new RegistryConfig(); + registryConfig.setAddress("consul://127.0.0.1:8500"); + + ReferenceConfig<DubboService> referenceConfig = new ReferenceConfig<>(); + referenceConfig.setApplication(applicationConfig); + referenceConfig.setRegistry(registryConfig); + referenceConfig.setInterface(DubboService.class); + + DubboService dubboService = referenceConfig.get(); + System.out.println(dubboService.SayHello("world")); + } +} diff --git a/examples/consul/java-client/src/main/resources/log4j.properties b/examples/consul/java-client/src/main/resources/log4j.properties new file mode 100644 index 0000000000000000000000000000000000000000..097fa4309c1811750de0164bfaf2ebf354615d57 --- /dev/null +++ b/examples/consul/java-client/src/main/resources/log4j.properties @@ -0,0 +1,4 @@ +log4j.appender.Stdout=org.apache.log4j.ConsoleAppender +log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.Stdout.layout.conversionPattern=[%p] %c | %m\n +log4j.rootLogger=INFO,Stdout \ No newline at end of file diff --git a/examples/consul/java-server/.gitignore b/examples/consul/java-server/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..0bbcf418ec53691d6895a6ea8eeb56a264f2b735 --- /dev/null +++ b/examples/consul/java-server/.gitignore @@ -0,0 +1,7 @@ +.idea +.gradle +*.iml +dependency-reduced-pom.xml +out/ +build/ +target/ \ No newline at end of file diff --git a/examples/consul/java-server/pom.xml b/examples/consul/java-server/pom.xml new file mode 100644 index 0000000000000000000000000000000000000000..07a1e5bc414a6a5d3688ff9ed2624f34d3622d59 --- /dev/null +++ b/examples/consul/java-server/pom.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + <modelVersion>4.0.0</modelVersion> + + <groupId>consul</groupId> + <artifactId>java-server</artifactId> + <version>1.0.0</version> + + <properties> + <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.target>1.8</maven.compiler.target> + </properties> + + <dependencies> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.17</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.apache.dubbo</groupId> + <artifactId>dubbo</artifactId> + <version>2.7.1</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>com.ecwid.consul</groupId> + <artifactId>consul-api</artifactId> + <version>1.4.2</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + <version>1.2</version> + <scope>compile</scope> + </dependency> + </dependencies> + + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-shade-plugin</artifactId> + <version>3.1.1</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>shade</goal> + </goals> + <configuration> + <transformers> + <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> + <mainClass>dubbo.server.Main</mainClass> + </transformer> + </transformers> + <filters> + <filter> + <artifact>*:*</artifact> + <excludes> + <exclude>META-INF/*.SF</exclude> + <exclude>META-INF/*.DSA</exclude> + <exclude>META-INF/*.RSA</exclude> + </excludes> + </filter> + </filters> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> \ No newline at end of file diff --git a/examples/consul/java-server/src/main/java/dubbo/DubboService.java b/examples/consul/java-server/src/main/java/dubbo/DubboService.java new file mode 100644 index 0000000000000000000000000000000000000000..de6b5b53355d72f678355de5773aeb1f00ec1751 --- /dev/null +++ b/examples/consul/java-server/src/main/java/dubbo/DubboService.java @@ -0,0 +1,5 @@ +package dubbo; + +public interface DubboService { + String SayHello(String message); +} diff --git a/examples/consul/java-server/src/main/java/dubbo/server/Impl/DubboServiceImpl.java b/examples/consul/java-server/src/main/java/dubbo/server/Impl/DubboServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..61c5e9039c1eaaad0dcebaa0c43653eb23f2f92b --- /dev/null +++ b/examples/consul/java-server/src/main/java/dubbo/server/Impl/DubboServiceImpl.java @@ -0,0 +1,11 @@ +package dubbo.server.Impl; + +import dubbo.DubboService; + +public class DubboServiceImpl implements DubboService { + + @Override + public String SayHello(String message) { + return "hello " + message; + } +} diff --git a/examples/consul/java-server/src/main/java/dubbo/server/Main.java b/examples/consul/java-server/src/main/java/dubbo/server/Main.java new file mode 100644 index 0000000000000000000000000000000000000000..91c7b0b912f4fb27e6d108d2975bcd8a6d08f4a4 --- /dev/null +++ b/examples/consul/java-server/src/main/java/dubbo/server/Main.java @@ -0,0 +1,53 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +package dubbo.server; + +import org.apache.dubbo.config.ApplicationConfig; +import org.apache.dubbo.config.ProtocolConfig; +import org.apache.dubbo.config.RegistryConfig; +import org.apache.dubbo.config.ServiceConfig; +import dubbo.DubboService; +import dubbo.server.Impl.DubboServiceImpl; + +import java.io.IOException; + +public class Main { + public static void main(String[] args) throws IOException { + ApplicationConfig applicationConfig = new ApplicationConfig(); + applicationConfig.setName("java-server"); + + RegistryConfig registryConfig = new RegistryConfig(); + registryConfig.setAddress("consul://127.0.0.1:8500"); + + ProtocolConfig protocolConfig = new ProtocolConfig(); + protocolConfig.setName("dubbo"); + protocolConfig.setHost("127.0.0.1"); + protocolConfig.setPort(12345); + + ServiceConfig<DubboService> serviceConfig = new ServiceConfig<>(); + serviceConfig.setApplication(applicationConfig); + serviceConfig.setRegistry(registryConfig); + serviceConfig.setProtocol(protocolConfig); + serviceConfig.setInterface(DubboService.class); + serviceConfig.setRef(new DubboServiceImpl()); + serviceConfig.export(); + + System.in.read(); + } +} diff --git a/examples/consul/java-server/src/main/resources/log4j.properties b/examples/consul/java-server/src/main/resources/log4j.properties new file mode 100644 index 0000000000000000000000000000000000000000..097fa4309c1811750de0164bfaf2ebf354615d57 --- /dev/null +++ b/examples/consul/java-server/src/main/resources/log4j.properties @@ -0,0 +1,4 @@ +log4j.appender.Stdout=org.apache.log4j.ConsoleAppender +log4j.appender.Stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.Stdout.layout.conversionPattern=[%p] %c | %m\n +log4j.rootLogger=INFO,Stdout \ No newline at end of file diff --git a/examples/general/dubbo/go-client/app/client.go b/examples/general/dubbo/go-client/app/client.go index e839b0b2776d8e3b2aba2756d2a622bea2b8e88d..60adad356b8a8ff843034dd8e6086a2b832c7792 100644 --- a/examples/general/dubbo/go-client/app/client.go +++ b/examples/general/dubbo/go-client/app/client.go @@ -78,7 +78,7 @@ func initSignal() { case syscall.SIGHUP: // reload() default: - go time.AfterFunc(time.Duration(survivalTimeout), func() { + time.AfterFunc(time.Duration(survivalTimeout), func() { logger.Warnf("app exit now by force...") os.Exit(1) }) diff --git a/examples/general/dubbo/go-client/assembly/bin/load.sh b/examples/general/dubbo/go-client/assembly/bin/load.sh index 07d5d15eac7b7974845e36c3807e7ec55875de65..ffa240b29d9e76761a151e7462092b86908de6f6 100644 --- a/examples/general/dubbo/go-client/assembly/bin/load.sh +++ b/examples/general/dubbo/go-client/assembly/bin/load.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/general/dubbo/go-client/assembly/common/app.properties b/examples/general/dubbo/go-client/assembly/common/app.properties index 6bbd6db850ceeaf5ff873fee01a3578237cbd557..e10868f4d292765c7eeb2e8bb8b1684a44f56a14 100644 --- a/examples/general/dubbo/go-client/assembly/common/app.properties +++ b/examples/general/dubbo/go-client/assembly/common/app.properties @@ -1,13 +1,19 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : dubbogo environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + export TARGET_EXEC_NAME="user_info_client" # BUILD_PACKAGE="dubbogo-examples/user-info/client/app" diff --git a/examples/general/dubbo/go-client/assembly/common/build.sh b/examples/general/dubbo/go-client/assembly/common/build.sh index e72418297ad2f0ac6985476b5a8d5e03b9e7584e..c9a9e87c73ef45195d6f70acccf9374ee6cb906b 100644 --- a/examples/general/dubbo/go-client/assembly/common/build.sh +++ b/examples/general/dubbo/go-client/assembly/common/build.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rm -rf target/ diff --git a/examples/general/dubbo/go-client/assembly/linux/dev.sh b/examples/general/dubbo/go-client/assembly/linux/dev.sh index 3373f01b948b708cd7bc1958c9d56a9042c60a68..eada737c8d0939d4237a6d218fc2a07efdbff381 100644 --- a/examples/general/dubbo/go-client/assembly/linux/dev.sh +++ b/examples/general/dubbo/go-client/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-client/assembly/linux/release.sh b/examples/general/dubbo/go-client/assembly/linux/release.sh index 34867b8b3488778cd76a1dc7802393dcab6b0df0..10eb3d73f8760d394537b90b7aeff83ca2b243ed 100644 --- a/examples/general/dubbo/go-client/assembly/linux/release.sh +++ b/examples/general/dubbo/go-client/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-client/assembly/linux/test.sh b/examples/general/dubbo/go-client/assembly/linux/test.sh index 1bbbefd1e14e08c16deaf859e2841f4d1fe88e9c..78b650c0d49483f9f6862532afa5c483b618475a 100644 --- a/examples/general/dubbo/go-client/assembly/linux/test.sh +++ b/examples/general/dubbo/go-client/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-client/assembly/mac/dev.sh b/examples/general/dubbo/go-client/assembly/mac/dev.sh index b68ac83b6524a6713cd90c4fc5968fe64b1a9545..c8284769909e62f0142c29e3a63177bf2826593f 100644 --- a/examples/general/dubbo/go-client/assembly/mac/dev.sh +++ b/examples/general/dubbo/go-client/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-client/assembly/mac/release.sh b/examples/general/dubbo/go-client/assembly/mac/release.sh index 688288b3b1b989e8af70a3674b34ea8e0668f3b4..91c2dfee79b1499b640420191174f980eac187bb 100644 --- a/examples/general/dubbo/go-client/assembly/mac/release.sh +++ b/examples/general/dubbo/go-client/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-client/assembly/mac/test.sh b/examples/general/dubbo/go-client/assembly/mac/test.sh index 56d6c11ecd6a1dc5984c74b88c10be9239e57428..a7853f5e2d51df8e3e9509621952c44bca0d1a2d 100644 --- a/examples/general/dubbo/go-client/assembly/mac/test.sh +++ b/examples/general/dubbo/go-client/assembly/mac/test.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -e diff --git a/examples/general/dubbo/go-client/assembly/windows/dev.sh b/examples/general/dubbo/go-client/assembly/windows/dev.sh index 91cf6f23bcbecb26db798469a30529261aabbbb6..10a3866c0f4ed8e1070c4d5641259c04073df6cb 100644 --- a/examples/general/dubbo/go-client/assembly/windows/dev.sh +++ b/examples/general/dubbo/go-client/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-client/assembly/windows/release.sh b/examples/general/dubbo/go-client/assembly/windows/release.sh index f317720bd53d9c9e5f8f484b6eb682c9c736af0c..21af573fa3842d47959d5726b11b81d5fff5b8df 100644 --- a/examples/general/dubbo/go-client/assembly/windows/release.sh +++ b/examples/general/dubbo/go-client/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-client/assembly/windows/test.sh b/examples/general/dubbo/go-client/assembly/windows/test.sh index 7dd2bec5260e647b57a46aaa37acc098babff068..2104da8b5909957c165eedc2f7d6866a890e9e6d 100644 --- a/examples/general/dubbo/go-client/assembly/windows/test.sh +++ b/examples/general/dubbo/go-client/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-server/app/app b/examples/general/dubbo/go-server/app/app deleted file mode 100755 index 43e170c50ba2e8ac2dbe6e5efa0e2bdff1b3194a..0000000000000000000000000000000000000000 Binary files a/examples/general/dubbo/go-server/app/app and /dev/null differ diff --git a/examples/general/dubbo/go-server/app/server.go b/examples/general/dubbo/go-server/app/server.go index ac92b879b15cb88ebc71fc5df90675b01760c899..0ffd6309c607168d75073c296eb60d21dadbca2d 100644 --- a/examples/general/dubbo/go-server/app/server.go +++ b/examples/general/dubbo/go-server/app/server.go @@ -74,7 +74,7 @@ func initSignal() { case syscall.SIGHUP: // reload() default: - go time.AfterFunc(time.Duration(survivalTimeout), func() { + time.AfterFunc(time.Duration(survivalTimeout), func() { logger.Warnf("app exit now by force...") os.Exit(1) }) diff --git a/examples/general/dubbo/go-server/app/user_provider.go b/examples/general/dubbo/go-server/app/user_provider.go index fdf0a3abb2ac26cc2cbfa5971db3f02b18fe0be0..87f0d85f96c9664399ab0dd22eaf4af5c742da33 100644 --- a/examples/general/dubbo/go-server/app/user_provider.go +++ b/examples/general/dubbo/go-server/app/user_provider.go @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package main import ( diff --git a/examples/general/dubbo/go-server/app/user_provider1.go b/examples/general/dubbo/go-server/app/user_provider1.go index 3edc816b592f9e165f149a792a9401a25c8c73c0..afc2a1d238752657e1b070979a6555b51dfb8d19 100644 --- a/examples/general/dubbo/go-server/app/user_provider1.go +++ b/examples/general/dubbo/go-server/app/user_provider1.go @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package main import ( diff --git a/examples/general/dubbo/go-server/app/user_provider2.go b/examples/general/dubbo/go-server/app/user_provider2.go index d28bcc33963ef73b372508e057679a5910948c25..cc19e0b5a176c186d3c593867eb90b221c01f943 100644 --- a/examples/general/dubbo/go-server/app/user_provider2.go +++ b/examples/general/dubbo/go-server/app/user_provider2.go @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package main import ( diff --git a/examples/general/dubbo/go-server/assembly/bin/load.sh b/examples/general/dubbo/go-server/assembly/bin/load.sh index 47fc5e38ded155a43c30b8cbf4d2a5ae04b58d0c..90077c2471d7d5553ddea6402c7e2c06867cba8e 100644 --- a/examples/general/dubbo/go-server/assembly/bin/load.sh +++ b/examples/general/dubbo/go-server/assembly/bin/load.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/general/dubbo/go-server/assembly/common/app.properties b/examples/general/dubbo/go-server/assembly/common/app.properties index dffb755b0811dd140d3f04e232f5f80ff60181df..1f0827eb512b9bcb3c2428f8e0b50d76f65743ef 100644 --- a/examples/general/dubbo/go-server/assembly/common/app.properties +++ b/examples/general/dubbo/go-server/assembly/common/app.properties @@ -1,13 +1,19 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : application environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + TARGET_EXEC_NAME="user_info_server" # BUILD_PACKAGE="dubbogo-examples/user-info/server/app" diff --git a/examples/general/dubbo/go-server/assembly/common/build.sh b/examples/general/dubbo/go-server/assembly/common/build.sh index 15ac904f7c265d942d7018439719af7e7391aa41..89a95ce679ca711824a2de0888686be79d96f505 100644 --- a/examples/general/dubbo/go-server/assembly/common/build.sh +++ b/examples/general/dubbo/go-server/assembly/common/build.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rm -rf target/ diff --git a/examples/general/dubbo/go-server/assembly/linux/dev.sh b/examples/general/dubbo/go-server/assembly/linux/dev.sh index 55886f09fb4873be84cfa46aae592f5f000120a4..d830ac98c2b9328791d00d5160d487b1a12b5fed 100644 --- a/examples/general/dubbo/go-server/assembly/linux/dev.sh +++ b/examples/general/dubbo/go-server/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-server/assembly/linux/release.sh b/examples/general/dubbo/go-server/assembly/linux/release.sh index 9772ad9614583917d62beba2db9fcaefea63e1ed..99303800b0fbcd7f8dfea668dcf395f126fb99f6 100644 --- a/examples/general/dubbo/go-server/assembly/linux/release.sh +++ b/examples/general/dubbo/go-server/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-server/assembly/linux/test.sh b/examples/general/dubbo/go-server/assembly/linux/test.sh index 2fc4a98862bee5ef11a23e1b74058627a899181d..87144bb973095acaf8c17b0ec3bf42f643d0b95f 100644 --- a/examples/general/dubbo/go-server/assembly/linux/test.sh +++ b/examples/general/dubbo/go-server/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-server/assembly/mac/dev.sh b/examples/general/dubbo/go-server/assembly/mac/dev.sh index 5dfa78490b895ce556c809ead32b6f517a5f1450..3a7659b2d57e0e2502950d76ec6c938abf2b7513 100644 --- a/examples/general/dubbo/go-server/assembly/mac/dev.sh +++ b/examples/general/dubbo/go-server/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-server/assembly/mac/release.sh b/examples/general/dubbo/go-server/assembly/mac/release.sh index 1ec21c7b511ccce9eddfac22a2374b57a7a697bf..1c4bce4bf825fe401823ec33025e004a476ccaaf 100644 --- a/examples/general/dubbo/go-server/assembly/mac/release.sh +++ b/examples/general/dubbo/go-server/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-server/assembly/mac/test.sh b/examples/general/dubbo/go-server/assembly/mac/test.sh index d34914c7dbed0e442b4accf51a3ecdf7c2984db8..69206e32fed343eb87c04190b509b16482125542 100644 --- a/examples/general/dubbo/go-server/assembly/mac/test.sh +++ b/examples/general/dubbo/go-server/assembly/mac/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-server/assembly/windows/dev.sh b/examples/general/dubbo/go-server/assembly/windows/dev.sh index 97fbb6f698e500ad08d971b13cc1ffd00cd97803..011fb41148f205bc329118a3c75e52854c0ecfd3 100644 --- a/examples/general/dubbo/go-server/assembly/windows/dev.sh +++ b/examples/general/dubbo/go-server/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:34 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-server/assembly/windows/release.sh b/examples/general/dubbo/go-server/assembly/windows/release.sh index 782cb10c7828eb277b5905f10f8dd6ad1c2d6bed..679a26a7dc77a9bc0ccbf119eac3caba252cadc9 100644 --- a/examples/general/dubbo/go-server/assembly/windows/release.sh +++ b/examples/general/dubbo/go-server/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/go-server/assembly/windows/test.sh b/examples/general/dubbo/go-server/assembly/windows/test.sh index 2037ddecf2545f1543d5d28be728fb0899722098..4a36de0f3a26b804601de703c62a8062bd0623f4 100644 --- a/examples/general/dubbo/go-server/assembly/windows/test.sh +++ b/examples/general/dubbo/go-server/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/dubbo/java-client/build.sh b/examples/general/dubbo/java-client/build.sh index 1286b53ee6180d73ae325ca91228c7e0accfe0c5..c869acfb45794244767305c485ecabde1548e10c 100644 --- a/examples/general/dubbo/java-client/build.sh +++ b/examples/general/dubbo/java-client/build.sh @@ -1,8 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# EMAIL : alexstocks@foxmail.com -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # rm src/main/resources/META-INF/spring/dubbo.consumer.xml # cp src/main/resources/META-INF/spring/dubbo-protocol.consumer.xml src/main/resources/META-INF/spring/dubbo.consumer.xml diff --git a/examples/general/dubbo/java-client/pom.xml b/examples/general/dubbo/java-client/pom.xml index c3e3464f2073220c765c2510aad124e0a80289e8..4065414ac598fb7bee7d14d625019d6534daba7f 100755 --- a/examples/general/dubbo/java-client/pom.xml +++ b/examples/general/dubbo/java-client/pom.xml @@ -1,18 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> diff --git a/examples/general/dubbo/java-client/src/main/assembly/assembly.xml b/examples/general/dubbo/java-client/src/main/assembly/assembly.xml index 25235d9064e299dc9a6ff976b08b7e63aedca5d3..47757d1c93d8375c0cfe15a74be3dad09317f8da 100644 --- a/examples/general/dubbo/java-client/src/main/assembly/assembly.xml +++ b/examples/general/dubbo/java-client/src/main/assembly/assembly.xml @@ -1,18 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <assembly> <id>assembly</id> <formats> diff --git a/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java b/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java index 5c9870eecacb51115b266e8e13d81e02323d5a74..dc11dba56f5ec21f62344cd7e9a96eee5fb02486 100644 --- a/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java +++ b/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java @@ -1,12 +1,19 @@ -// ***************************************************** -// DESC : dubbo consumer -// AUTHOR : writtey by 鍖呭杈�(https://github.com/baozh) -// VERSION : 1.0 -// LICENCE : Apache License 2.0 -// EMAIL : alexstocks@foxmail.com -// MOD : 2016-10-19 17:03 -// FILE : Consumer.java -// ****************************************************** +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.ikurento.user; diff --git a/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/Gender.java b/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/Gender.java index 7bcfae3b23bf6ee2cca52cef7dc37e1c880d76a0..e606be79c9f633919132570b69e4d0a6588c9c8a 100644 --- a/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/Gender.java +++ b/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/Gender.java @@ -1,10 +1,22 @@ -package com.ikurento.user; +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api +package com.ikurento.user; -/** - * Created by wuwen on 15/4/7. - */ public enum Gender { MAN, WOMAN diff --git a/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/User.java b/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/User.java index 6966210df13a5d9bf4a6f7de262d3a72470950f0..7f228b3a657af4b6d9cd78b5f61fda021a6f633e 100644 --- a/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/User.java +++ b/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/User.java @@ -1,11 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.Date; -/** - * Created by wuwen on 15/4/7. - */ public class User { private String id; diff --git a/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java b/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java index ed765d4c0c6b6b9b382666b29d90c9dd25206f8d..a330d9829aef7efff15a3d9ce004b22843890705 100644 --- a/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java +++ b/examples/general/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java @@ -1,6 +1,4 @@ /* - * Copyright 1999-2011 Alibaba Group. - * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,8 +11,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package com.ikurento.user; -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.List; diff --git a/examples/general/dubbo/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml b/examples/general/dubbo/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml index e7e5445a951614f599a63029f6d42508aaa4fccf..67c6264ea925bb60e38241f0a51e1ce7842b1d90 100644 --- a/examples/general/dubbo/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml +++ b/examples/general/dubbo/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml @@ -1,19 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + + <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" diff --git a/examples/general/dubbo/java-client/src/main/resources/META-INF/spring/service.xml b/examples/general/dubbo/java-client/src/main/resources/META-INF/spring/service.xml index db9fc3cba5a359b8835af53b81e50f8296d2e489..041d7c336558c9ea662ed2db3a3b9301c9eec4a2 100644 --- a/examples/general/dubbo/java-client/src/main/resources/META-INF/spring/service.xml +++ b/examples/general/dubbo/java-client/src/main/resources/META-INF/spring/service.xml @@ -1,19 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" diff --git a/examples/general/dubbo/java-server/build.sh b/examples/general/dubbo/java-server/build.sh index 0c197da639c1c1d9375e18c24dd73366c49deefe..7b5755be183f5b301f0963fcc4a4eace8a341574 100644 --- a/examples/general/dubbo/java-server/build.sh +++ b/examples/general/dubbo/java-server/build.sh @@ -1,8 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# EMAIL : alexstocks@foxmail.com -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # mvn dependency:sources mvn clean package -Dmaven.test.skip diff --git a/examples/general/dubbo/java-server/pom.xml b/examples/general/dubbo/java-server/pom.xml index 975157865e59f24693d755dd20b0aac4b179a793..9b811e9f78a3db3cb742ce5870b5d68b55bd681c 100644 --- a/examples/general/dubbo/java-server/pom.xml +++ b/examples/general/dubbo/java-server/pom.xml @@ -1,4 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> diff --git a/examples/general/dubbo/java-server/script/debug.sh b/examples/general/dubbo/java-server/script/debug.sh index 27c5d800d846018127e762944151aa8e9ad4495d..1038cd7ff7f65a2a07ce21414732ab891aef67ff 100644 --- a/examples/general/dubbo/java-server/script/debug.sh +++ b/examples/general/dubbo/java-server/script/debug.sh @@ -1,13 +1,19 @@ -#!/us1r/bin/env bash -# ****************************************************** -# DESC : -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-09 21:52 -# FILE : to debug user info dubbo server -# ****************************************************** +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # jdb -classpath /Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/*:/Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/ com.alibaba.dubbo.container.Main jdb -classpath /Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/* -sourcepath /Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/:/Users/alex/tmp/java-server/src/main/java com.alibaba.dubbo.container.Main diff --git a/examples/general/dubbo/java-server/src/main/assembly/assembly.xml b/examples/general/dubbo/java-server/src/main/assembly/assembly.xml index 2f01fea20f5391112cccb88c87bfe4ae1b59750a..98a2e100f18d195b8f0b44eb07080eaa9097af79 100644 --- a/examples/general/dubbo/java-server/src/main/assembly/assembly.xml +++ b/examples/general/dubbo/java-server/src/main/assembly/assembly.xml @@ -1,18 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <assembly> <id>assembly</id> <formats> diff --git a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Gender.java b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Gender.java index 72c30ae8d4bae8fc71b4cb598205141b2d1d2020..e606be79c9f633919132570b69e4d0a6588c9c8a 100644 --- a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Gender.java +++ b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Gender.java @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; public enum Gender { diff --git a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Provider.java b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Provider.java index 0031f5569fd5f16ded0da6e5426f78805fad4a42..dea1c342c2c31c51e27145e94e379b7be4106e29 100644 --- a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Provider.java +++ b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Provider.java @@ -14,6 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package com.ikurento.user; import org.springframework.context.support.ClassPathXmlApplicationContext; diff --git a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Response.java b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Response.java index 3447e5c2537625f424b54291c53783a51922ae7b..83b423dd084fe7626bc34b356ca8c6e5b540c539 100644 --- a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Response.java +++ b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/Response.java @@ -1,7 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; import java.io.*; -//import java.util.Objects; public final class Response<T> implements Serializable { private static final long serialVersionUID = 3727205004706510648L; diff --git a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/User.java b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/User.java index eafc0fe1c0e0c7b72a0fce73b6a333668797145e..a6e76cffe9c41c3b505550a5f3b15c202a13907c 100644 --- a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/User.java +++ b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/User.java @@ -1,5 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -// ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.Date; import java.io.Serializable; diff --git a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java index 24567d23be662312a4750f07b605c685a8dfa5fe..60335876436ec77563b86c39066451e6cb04c71d 100644 --- a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java +++ b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java @@ -1,5 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.List; import java.util.Map; diff --git a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java index 04729fb7a33abe9738ccfdd48a7b2b19028587da..dfa46495d80d9312b0812800e5384d0bb71805e2 100644 --- a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java +++ b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java @@ -1,10 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -//ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import org.slf4j.Logger; import org.slf4j.LoggerFactory; -// import org.apache.log4j.Logger; -// import org.apache.log4j.LoggerFactory; import java.util.*; diff --git a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java index 1efbf823740f5e3e4e82931a48bfc02ee9e78029..e2068f92350ae1cd2e4c75cd16aad5f2d9d52994 100644 --- a/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java +++ b/examples/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java @@ -1,6 +1,21 @@ -package com.ikurento.user; +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -// ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api +package com.ikurento.user; import java.util.HashMap; import java.util.List; @@ -8,8 +23,6 @@ import java.util.ArrayList; import java.util.Map; import java.util.Iterator; -// import org.apache.log4j.Logger; -// import org.apache.log4j.LoggerFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/examples/general/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/examples/general/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml index f8dd13a833e6095485d0504e21cec272a3c9a288..4ebe64b937bfcccf0ee97c948c76329272a9cca5 100644 --- a/examples/general/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml +++ b/examples/general/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml @@ -1,19 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" diff --git a/examples/general/jsonrpc/go-client/app/client.go b/examples/general/jsonrpc/go-client/app/client.go index 0d86275a8bfb46fdd0e3dfae91ea459d17012344..0248af70cc08aec6a327b2373234aabc1db5fca4 100644 --- a/examples/general/jsonrpc/go-client/app/client.go +++ b/examples/general/jsonrpc/go-client/app/client.go @@ -73,7 +73,7 @@ func initSignal() { case syscall.SIGHUP: // reload() default: - go time.AfterFunc(time.Duration(survivalTimeout), func() { + time.AfterFunc(time.Duration(survivalTimeout), func() { logger.Warnf("app exit now by force...") os.Exit(1) }) diff --git a/examples/general/jsonrpc/go-client/assembly/bin/load.sh b/examples/general/jsonrpc/go-client/assembly/bin/load.sh index 07d5d15eac7b7974845e36c3807e7ec55875de65..ffa240b29d9e76761a151e7462092b86908de6f6 100644 --- a/examples/general/jsonrpc/go-client/assembly/bin/load.sh +++ b/examples/general/jsonrpc/go-client/assembly/bin/load.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/general/jsonrpc/go-client/assembly/common/app.properties b/examples/general/jsonrpc/go-client/assembly/common/app.properties index 6bbd6db850ceeaf5ff873fee01a3578237cbd557..e10868f4d292765c7eeb2e8bb8b1684a44f56a14 100644 --- a/examples/general/jsonrpc/go-client/assembly/common/app.properties +++ b/examples/general/jsonrpc/go-client/assembly/common/app.properties @@ -1,13 +1,19 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : dubbogo environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + export TARGET_EXEC_NAME="user_info_client" # BUILD_PACKAGE="dubbogo-examples/user-info/client/app" diff --git a/examples/general/jsonrpc/go-client/assembly/common/build.sh b/examples/general/jsonrpc/go-client/assembly/common/build.sh index 06b212db6c3dcc28e5e43666284662bcb7abcae4..583edd7d9967c8a9f384c2fbba730c0729df8cee 100644 --- a/examples/general/jsonrpc/go-client/assembly/common/build.sh +++ b/examples/general/jsonrpc/go-client/assembly/common/build.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rm -rf target/ diff --git a/examples/general/jsonrpc/go-client/assembly/linux/dev.sh b/examples/general/jsonrpc/go-client/assembly/linux/dev.sh index 3373f01b948b708cd7bc1958c9d56a9042c60a68..eada737c8d0939d4237a6d218fc2a07efdbff381 100644 --- a/examples/general/jsonrpc/go-client/assembly/linux/dev.sh +++ b/examples/general/jsonrpc/go-client/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-client/assembly/linux/release.sh b/examples/general/jsonrpc/go-client/assembly/linux/release.sh index 34867b8b3488778cd76a1dc7802393dcab6b0df0..10eb3d73f8760d394537b90b7aeff83ca2b243ed 100644 --- a/examples/general/jsonrpc/go-client/assembly/linux/release.sh +++ b/examples/general/jsonrpc/go-client/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-client/assembly/linux/test.sh b/examples/general/jsonrpc/go-client/assembly/linux/test.sh index 1bbbefd1e14e08c16deaf859e2841f4d1fe88e9c..78b650c0d49483f9f6862532afa5c483b618475a 100644 --- a/examples/general/jsonrpc/go-client/assembly/linux/test.sh +++ b/examples/general/jsonrpc/go-client/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-client/assembly/mac/dev.sh b/examples/general/jsonrpc/go-client/assembly/mac/dev.sh index b68ac83b6524a6713cd90c4fc5968fe64b1a9545..c8284769909e62f0142c29e3a63177bf2826593f 100644 --- a/examples/general/jsonrpc/go-client/assembly/mac/dev.sh +++ b/examples/general/jsonrpc/go-client/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-client/assembly/mac/release.sh b/examples/general/jsonrpc/go-client/assembly/mac/release.sh index 688288b3b1b989e8af70a3674b34ea8e0668f3b4..91c2dfee79b1499b640420191174f980eac187bb 100644 --- a/examples/general/jsonrpc/go-client/assembly/mac/release.sh +++ b/examples/general/jsonrpc/go-client/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-client/assembly/mac/test.sh b/examples/general/jsonrpc/go-client/assembly/mac/test.sh index 56d6c11ecd6a1dc5984c74b88c10be9239e57428..a7853f5e2d51df8e3e9509621952c44bca0d1a2d 100644 --- a/examples/general/jsonrpc/go-client/assembly/mac/test.sh +++ b/examples/general/jsonrpc/go-client/assembly/mac/test.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -e diff --git a/examples/general/jsonrpc/go-client/assembly/windows/dev.sh b/examples/general/jsonrpc/go-client/assembly/windows/dev.sh index 91cf6f23bcbecb26db798469a30529261aabbbb6..10a3866c0f4ed8e1070c4d5641259c04073df6cb 100644 --- a/examples/general/jsonrpc/go-client/assembly/windows/dev.sh +++ b/examples/general/jsonrpc/go-client/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-client/assembly/windows/release.sh b/examples/general/jsonrpc/go-client/assembly/windows/release.sh index f317720bd53d9c9e5f8f484b6eb682c9c736af0c..21af573fa3842d47959d5726b11b81d5fff5b8df 100644 --- a/examples/general/jsonrpc/go-client/assembly/windows/release.sh +++ b/examples/general/jsonrpc/go-client/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-client/assembly/windows/test.sh b/examples/general/jsonrpc/go-client/assembly/windows/test.sh index 7dd2bec5260e647b57a46aaa37acc098babff068..2104da8b5909957c165eedc2f7d6866a890e9e6d 100644 --- a/examples/general/jsonrpc/go-client/assembly/windows/test.sh +++ b/examples/general/jsonrpc/go-client/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-server/app/server.go b/examples/general/jsonrpc/go-server/app/server.go index e36b6efe9d115d8352f09f1f5011ea00d92f0d13..de4aaed0bd56a112633ff9c4aba1c79d21b49920 100644 --- a/examples/general/jsonrpc/go-server/app/server.go +++ b/examples/general/jsonrpc/go-server/app/server.go @@ -64,7 +64,7 @@ func initSignal() { case syscall.SIGHUP: // reload() default: - go time.AfterFunc(time.Duration(survivalTimeout), func() { + time.AfterFunc(time.Duration(survivalTimeout), func() { logger.Warnf("app exit now by force...") os.Exit(1) }) diff --git a/examples/general/jsonrpc/go-server/assembly/bin/load.sh b/examples/general/jsonrpc/go-server/assembly/bin/load.sh index 47fc5e38ded155a43c30b8cbf4d2a5ae04b58d0c..90077c2471d7d5553ddea6402c7e2c06867cba8e 100644 --- a/examples/general/jsonrpc/go-server/assembly/bin/load.sh +++ b/examples/general/jsonrpc/go-server/assembly/bin/load.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/general/jsonrpc/go-server/assembly/common/app.properties b/examples/general/jsonrpc/go-server/assembly/common/app.properties index dffb755b0811dd140d3f04e232f5f80ff60181df..1f0827eb512b9bcb3c2428f8e0b50d76f65743ef 100644 --- a/examples/general/jsonrpc/go-server/assembly/common/app.properties +++ b/examples/general/jsonrpc/go-server/assembly/common/app.properties @@ -1,13 +1,19 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : application environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + TARGET_EXEC_NAME="user_info_server" # BUILD_PACKAGE="dubbogo-examples/user-info/server/app" diff --git a/examples/general/jsonrpc/go-server/assembly/common/build.sh b/examples/general/jsonrpc/go-server/assembly/common/build.sh index 15ac904f7c265d942d7018439719af7e7391aa41..89a95ce679ca711824a2de0888686be79d96f505 100644 --- a/examples/general/jsonrpc/go-server/assembly/common/build.sh +++ b/examples/general/jsonrpc/go-server/assembly/common/build.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rm -rf target/ diff --git a/examples/general/jsonrpc/go-server/assembly/linux/dev.sh b/examples/general/jsonrpc/go-server/assembly/linux/dev.sh index 55886f09fb4873be84cfa46aae592f5f000120a4..d830ac98c2b9328791d00d5160d487b1a12b5fed 100644 --- a/examples/general/jsonrpc/go-server/assembly/linux/dev.sh +++ b/examples/general/jsonrpc/go-server/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-server/assembly/linux/release.sh b/examples/general/jsonrpc/go-server/assembly/linux/release.sh index 9772ad9614583917d62beba2db9fcaefea63e1ed..99303800b0fbcd7f8dfea668dcf395f126fb99f6 100644 --- a/examples/general/jsonrpc/go-server/assembly/linux/release.sh +++ b/examples/general/jsonrpc/go-server/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-server/assembly/linux/test.sh b/examples/general/jsonrpc/go-server/assembly/linux/test.sh index 2fc4a98862bee5ef11a23e1b74058627a899181d..87144bb973095acaf8c17b0ec3bf42f643d0b95f 100644 --- a/examples/general/jsonrpc/go-server/assembly/linux/test.sh +++ b/examples/general/jsonrpc/go-server/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-server/assembly/mac/dev.sh b/examples/general/jsonrpc/go-server/assembly/mac/dev.sh index 5dfa78490b895ce556c809ead32b6f517a5f1450..3a7659b2d57e0e2502950d76ec6c938abf2b7513 100644 --- a/examples/general/jsonrpc/go-server/assembly/mac/dev.sh +++ b/examples/general/jsonrpc/go-server/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-server/assembly/mac/release.sh b/examples/general/jsonrpc/go-server/assembly/mac/release.sh index 1ec21c7b511ccce9eddfac22a2374b57a7a697bf..1c4bce4bf825fe401823ec33025e004a476ccaaf 100644 --- a/examples/general/jsonrpc/go-server/assembly/mac/release.sh +++ b/examples/general/jsonrpc/go-server/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-server/assembly/mac/test.sh b/examples/general/jsonrpc/go-server/assembly/mac/test.sh index d34914c7dbed0e442b4accf51a3ecdf7c2984db8..69206e32fed343eb87c04190b509b16482125542 100644 --- a/examples/general/jsonrpc/go-server/assembly/mac/test.sh +++ b/examples/general/jsonrpc/go-server/assembly/mac/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-server/assembly/windows/dev.sh b/examples/general/jsonrpc/go-server/assembly/windows/dev.sh index 97fbb6f698e500ad08d971b13cc1ffd00cd97803..011fb41148f205bc329118a3c75e52854c0ecfd3 100644 --- a/examples/general/jsonrpc/go-server/assembly/windows/dev.sh +++ b/examples/general/jsonrpc/go-server/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:34 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-server/assembly/windows/release.sh b/examples/general/jsonrpc/go-server/assembly/windows/release.sh index 782cb10c7828eb277b5905f10f8dd6ad1c2d6bed..679a26a7dc77a9bc0ccbf119eac3caba252cadc9 100644 --- a/examples/general/jsonrpc/go-server/assembly/windows/release.sh +++ b/examples/general/jsonrpc/go-server/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/go-server/assembly/windows/test.sh b/examples/general/jsonrpc/go-server/assembly/windows/test.sh index 2037ddecf2545f1543d5d28be728fb0899722098..4a36de0f3a26b804601de703c62a8062bd0623f4 100644 --- a/examples/general/jsonrpc/go-server/assembly/windows/test.sh +++ b/examples/general/jsonrpc/go-server/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/general/jsonrpc/java-client/build.sh b/examples/general/jsonrpc/java-client/build.sh index 1286b53ee6180d73ae325ca91228c7e0accfe0c5..c869acfb45794244767305c485ecabde1548e10c 100644 --- a/examples/general/jsonrpc/java-client/build.sh +++ b/examples/general/jsonrpc/java-client/build.sh @@ -1,8 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# EMAIL : alexstocks@foxmail.com -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # rm src/main/resources/META-INF/spring/dubbo.consumer.xml # cp src/main/resources/META-INF/spring/dubbo-protocol.consumer.xml src/main/resources/META-INF/spring/dubbo.consumer.xml diff --git a/examples/general/jsonrpc/java-client/pom.xml b/examples/general/jsonrpc/java-client/pom.xml index 79a8a7e11b3c00fa151aa2dc728320a874304bff..445b92450a440c3525676f1f945f4728f8f7c7db 100644 --- a/examples/general/jsonrpc/java-client/pom.xml +++ b/examples/general/jsonrpc/java-client/pom.xml @@ -1,18 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> diff --git a/examples/general/jsonrpc/java-client/src/main/assembly/assembly.xml b/examples/general/jsonrpc/java-client/src/main/assembly/assembly.xml index 25235d9064e299dc9a6ff976b08b7e63aedca5d3..47757d1c93d8375c0cfe15a74be3dad09317f8da 100644 --- a/examples/general/jsonrpc/java-client/src/main/assembly/assembly.xml +++ b/examples/general/jsonrpc/java-client/src/main/assembly/assembly.xml @@ -1,18 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <assembly> <id>assembly</id> <formats> diff --git a/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Consumer.java b/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Consumer.java index 1a38dbfba906a951fcf8bd481650608bd5d35c9f..cca9559cd8c3501d8d23132eaa682ecbe3e7be29 100644 --- a/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Consumer.java +++ b/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Consumer.java @@ -1,12 +1,19 @@ -// ***************************************************** -// DESC : dubbo consumer -// AUTHOR : writtey by 鍖呭杈�(https://github.com/baozh) -// VERSION : 1.0 -// LICENCE : Apache License 2.0 -// EMAIL : alexstocks@foxmail.com -// MOD : 2016-10-19 17:03 -// FILE : Consumer.java -// ****************************************************** +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ package com.ikurento.user; diff --git a/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Gender.java b/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Gender.java index 7bcfae3b23bf6ee2cca52cef7dc37e1c880d76a0..e606be79c9f633919132570b69e4d0a6588c9c8a 100644 --- a/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Gender.java +++ b/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Gender.java @@ -1,10 +1,22 @@ -package com.ikurento.user; +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api +package com.ikurento.user; -/** - * Created by wuwen on 15/4/7. - */ public enum Gender { MAN, WOMAN diff --git a/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/User.java b/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/User.java index 6966210df13a5d9bf4a6f7de262d3a72470950f0..7f228b3a657af4b6d9cd78b5f61fda021a6f633e 100644 --- a/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/User.java +++ b/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/User.java @@ -1,11 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.Date; -/** - * Created by wuwen on 15/4/7. - */ public class User { private String id; diff --git a/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/UserProvider.java b/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/UserProvider.java index 93e7aadf02a869163f41a8f3dda84d2ebf18a475..55185778e9e3af6ebcad21570b6e70916690d18f 100644 --- a/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/UserProvider.java +++ b/examples/general/jsonrpc/java-client/src/main/java/com/ikurento/user/UserProvider.java @@ -1,6 +1,4 @@ /* - * Copyright 1999-2011 Alibaba Group. - * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -13,8 +11,8 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package com.ikurento.user; -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.List; diff --git a/examples/general/jsonrpc/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml b/examples/general/jsonrpc/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml index da21e8a359c003983ebea3269d4f2dfd255e3b29..ea4fcc4f56298f85e54b4445c0edd9a1818c4b78 100644 --- a/examples/general/jsonrpc/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml +++ b/examples/general/jsonrpc/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml @@ -1,19 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" diff --git a/examples/general/jsonrpc/java-client/src/main/resources/META-INF/spring/service.xml b/examples/general/jsonrpc/java-client/src/main/resources/META-INF/spring/service.xml index db9fc3cba5a359b8835af53b81e50f8296d2e489..854d5135a5065f58ec1fdf32c215ca516bd4aee9 100644 --- a/examples/general/jsonrpc/java-client/src/main/resources/META-INF/spring/service.xml +++ b/examples/general/jsonrpc/java-client/src/main/resources/META-INF/spring/service.xml @@ -1,18 +1,16 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" diff --git a/examples/general/jsonrpc/java-server/build.sh b/examples/general/jsonrpc/java-server/build.sh index 0c197da639c1c1d9375e18c24dd73366c49deefe..7b5755be183f5b301f0963fcc4a4eace8a341574 100644 --- a/examples/general/jsonrpc/java-server/build.sh +++ b/examples/general/jsonrpc/java-server/build.sh @@ -1,8 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# EMAIL : alexstocks@foxmail.com -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # mvn dependency:sources mvn clean package -Dmaven.test.skip diff --git a/examples/general/jsonrpc/java-server/pom.xml b/examples/general/jsonrpc/java-server/pom.xml index 975157865e59f24693d755dd20b0aac4b179a793..9b811e9f78a3db3cb742ce5870b5d68b55bd681c 100644 --- a/examples/general/jsonrpc/java-server/pom.xml +++ b/examples/general/jsonrpc/java-server/pom.xml @@ -1,4 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> diff --git a/examples/general/jsonrpc/java-server/script/debug.sh b/examples/general/jsonrpc/java-server/script/debug.sh index 27c5d800d846018127e762944151aa8e9ad4495d..1038cd7ff7f65a2a07ce21414732ab891aef67ff 100644 --- a/examples/general/jsonrpc/java-server/script/debug.sh +++ b/examples/general/jsonrpc/java-server/script/debug.sh @@ -1,13 +1,19 @@ -#!/us1r/bin/env bash -# ****************************************************** -# DESC : -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-09 21:52 -# FILE : to debug user info dubbo server -# ****************************************************** +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # jdb -classpath /Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/*:/Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/ com.alibaba.dubbo.container.Main jdb -classpath /Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/* -sourcepath /Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/:/Users/alex/tmp/java-server/src/main/java com.alibaba.dubbo.container.Main diff --git a/examples/general/jsonrpc/java-server/src/main/assembly/assembly.xml b/examples/general/jsonrpc/java-server/src/main/assembly/assembly.xml index 2f01fea20f5391112cccb88c87bfe4ae1b59750a..98a2e100f18d195b8f0b44eb07080eaa9097af79 100644 --- a/examples/general/jsonrpc/java-server/src/main/assembly/assembly.xml +++ b/examples/general/jsonrpc/java-server/src/main/assembly/assembly.xml @@ -1,18 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <assembly> <id>assembly</id> <formats> diff --git a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Gender.java b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Gender.java index 72c30ae8d4bae8fc71b4cb598205141b2d1d2020..e606be79c9f633919132570b69e4d0a6588c9c8a 100644 --- a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Gender.java +++ b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Gender.java @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; public enum Gender { diff --git a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Provider.java b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Provider.java index 0031f5569fd5f16ded0da6e5426f78805fad4a42..dea1c342c2c31c51e27145e94e379b7be4106e29 100644 --- a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Provider.java +++ b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Provider.java @@ -14,6 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package com.ikurento.user; import org.springframework.context.support.ClassPathXmlApplicationContext; diff --git a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Response.java b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Response.java index 3447e5c2537625f424b54291c53783a51922ae7b..83b423dd084fe7626bc34b356ca8c6e5b540c539 100644 --- a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Response.java +++ b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Response.java @@ -1,7 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; import java.io.*; -//import java.util.Objects; public final class Response<T> implements Serializable { private static final long serialVersionUID = 3727205004706510648L; diff --git a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/User.java b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/User.java index eafc0fe1c0e0c7b72a0fce73b6a333668797145e..a6e76cffe9c41c3b505550a5f3b15c202a13907c 100644 --- a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/User.java +++ b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/User.java @@ -1,5 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -// ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.Date; import java.io.Serializable; diff --git a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProvider.java b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProvider.java index a74b2222018988e13b29f5d3b74cee00815ec40e..2958a1adeec491147c69667868642df2334b9abe 100644 --- a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProvider.java +++ b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProvider.java @@ -1,5 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.List; import java.util.Map; diff --git a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java index 9e22b78b3de2412c8aefbfdbb37d2886d016a0f4..299feb7bed37d3b2a62a548e04480a4d3d4c1647 100644 --- a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java +++ b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java @@ -1,10 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -//ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import org.slf4j.Logger; import org.slf4j.LoggerFactory; -// import org.apache.log4j.Logger; -// import org.apache.log4j.LoggerFactory; import java.util.*; diff --git a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java index 1ff8afa62220463932872df2172b35e4e16a4591..ac6c229bb47c76f8a1d2a53672295a8cc3f4919b 100644 --- a/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java +++ b/examples/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java @@ -1,6 +1,21 @@ -package com.ikurento.user; +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -// ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api +package com.ikurento.user; import java.util.HashMap; import java.util.List; diff --git a/examples/general/jsonrpc/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/examples/general/jsonrpc/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml index 6eb03bc94bbf34b23b6df890b7c70568466ffad8..f9ebc0805150ecb2e904782462697c4a86ed8a26 100644 --- a/examples/general/jsonrpc/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml +++ b/examples/general/jsonrpc/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml @@ -1,19 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" diff --git a/examples/generic/go-client/assembly/bin/load.sh b/examples/generic/go-client/assembly/bin/load.sh index 07d5d15eac7b7974845e36c3807e7ec55875de65..176a202ab8810701ac8208db0ab764f2e215d71d 100644 --- a/examples/generic/go-client/assembly/bin/load.sh +++ b/examples/generic/go-client/assembly/bin/load.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/generic/go-client/assembly/common/app.properties b/examples/generic/go-client/assembly/common/app.properties index 6bbd6db850ceeaf5ff873fee01a3578237cbd557..97eee47429e978927a03c3fb2876b3d40bfa4269 100644 --- a/examples/generic/go-client/assembly/common/app.properties +++ b/examples/generic/go-client/assembly/common/app.properties @@ -1,13 +1,20 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : dubbogo environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + export TARGET_EXEC_NAME="user_info_client" # BUILD_PACKAGE="dubbogo-examples/user-info/client/app" diff --git a/examples/generic/go-client/assembly/common/build.sh b/examples/generic/go-client/assembly/common/build.sh index e72418297ad2f0ac6985476b5a8d5e03b9e7584e..0f0b22f5f42a01fffa48efa4cae5d953fb44d7ed 100644 --- a/examples/generic/go-client/assembly/common/build.sh +++ b/examples/generic/go-client/assembly/common/build.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + rm -rf target/ diff --git a/examples/generic/go-client/assembly/linux/dev.sh b/examples/generic/go-client/assembly/linux/dev.sh index 3373f01b948b708cd7bc1958c9d56a9042c60a68..4f659a7c383853b45b7d80d516c10e0c51e6cede 100644 --- a/examples/generic/go-client/assembly/linux/dev.sh +++ b/examples/generic/go-client/assembly/linux/dev.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -e diff --git a/examples/generic/go-client/assembly/linux/release.sh b/examples/generic/go-client/assembly/linux/release.sh index 34867b8b3488778cd76a1dc7802393dcab6b0df0..10eb3d73f8760d394537b90b7aeff83ca2b243ed 100644 --- a/examples/generic/go-client/assembly/linux/release.sh +++ b/examples/generic/go-client/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/generic/go-client/assembly/linux/test.sh b/examples/generic/go-client/assembly/linux/test.sh index 1bbbefd1e14e08c16deaf859e2841f4d1fe88e9c..78b650c0d49483f9f6862532afa5c483b618475a 100644 --- a/examples/generic/go-client/assembly/linux/test.sh +++ b/examples/generic/go-client/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/generic/go-client/assembly/mac/dev.sh b/examples/generic/go-client/assembly/mac/dev.sh index b68ac83b6524a6713cd90c4fc5968fe64b1a9545..0d21ec4aab54676837e0a909467cbf56f6bfc275 100644 --- a/examples/generic/go-client/assembly/mac/dev.sh +++ b/examples/generic/go-client/assembly/mac/dev.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -e diff --git a/examples/generic/go-client/assembly/mac/release.sh b/examples/generic/go-client/assembly/mac/release.sh index 688288b3b1b989e8af70a3674b34ea8e0668f3b4..91c2dfee79b1499b640420191174f980eac187bb 100644 --- a/examples/generic/go-client/assembly/mac/release.sh +++ b/examples/generic/go-client/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/generic/go-client/assembly/mac/test.sh b/examples/generic/go-client/assembly/mac/test.sh index 56d6c11ecd6a1dc5984c74b88c10be9239e57428..2fac89d0f6b9feb95b79359b38078135f15d90e3 100644 --- a/examples/generic/go-client/assembly/mac/test.sh +++ b/examples/generic/go-client/assembly/mac/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/generic/go-client/assembly/windows/dev.sh b/examples/generic/go-client/assembly/windows/dev.sh index 91cf6f23bcbecb26db798469a30529261aabbbb6..10a3866c0f4ed8e1070c4d5641259c04073df6cb 100644 --- a/examples/generic/go-client/assembly/windows/dev.sh +++ b/examples/generic/go-client/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/generic/go-client/assembly/windows/release.sh b/examples/generic/go-client/assembly/windows/release.sh index f317720bd53d9c9e5f8f484b6eb682c9c736af0c..21af573fa3842d47959d5726b11b81d5fff5b8df 100644 --- a/examples/generic/go-client/assembly/windows/release.sh +++ b/examples/generic/go-client/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/generic/go-client/assembly/windows/test.sh b/examples/generic/go-client/assembly/windows/test.sh index 7dd2bec5260e647b57a46aaa37acc098babff068..2104da8b5909957c165eedc2f7d6866a890e9e6d 100644 --- a/examples/generic/go-client/assembly/windows/test.sh +++ b/examples/generic/go-client/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/generic/java-server/build.sh b/examples/generic/java-server/build.sh index 0c197da639c1c1d9375e18c24dd73366c49deefe..7b5755be183f5b301f0963fcc4a4eace8a341574 100644 --- a/examples/generic/java-server/build.sh +++ b/examples/generic/java-server/build.sh @@ -1,8 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# EMAIL : alexstocks@foxmail.com -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # mvn dependency:sources mvn clean package -Dmaven.test.skip diff --git a/examples/generic/java-server/pom.xml b/examples/generic/java-server/pom.xml index 975157865e59f24693d755dd20b0aac4b179a793..9b811e9f78a3db3cb742ce5870b5d68b55bd681c 100644 --- a/examples/generic/java-server/pom.xml +++ b/examples/generic/java-server/pom.xml @@ -1,4 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> diff --git a/examples/generic/java-server/script/debug.sh b/examples/generic/java-server/script/debug.sh index 27c5d800d846018127e762944151aa8e9ad4495d..1038cd7ff7f65a2a07ce21414732ab891aef67ff 100644 --- a/examples/generic/java-server/script/debug.sh +++ b/examples/generic/java-server/script/debug.sh @@ -1,13 +1,19 @@ -#!/us1r/bin/env bash -# ****************************************************** -# DESC : -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-09 21:52 -# FILE : to debug user info dubbo server -# ****************************************************** +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # jdb -classpath /Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/*:/Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/ com.alibaba.dubbo.container.Main jdb -classpath /Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/* -sourcepath /Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/:/Users/alex/tmp/java-server/src/main/java com.alibaba.dubbo.container.Main diff --git a/examples/generic/java-server/src/main/assembly/assembly.xml b/examples/generic/java-server/src/main/assembly/assembly.xml index 2f01fea20f5391112cccb88c87bfe4ae1b59750a..98a2e100f18d195b8f0b44eb07080eaa9097af79 100644 --- a/examples/generic/java-server/src/main/assembly/assembly.xml +++ b/examples/generic/java-server/src/main/assembly/assembly.xml @@ -1,18 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <assembly> <id>assembly</id> <formats> diff --git a/examples/generic/java-server/src/main/java/com/ikurento/user/Gender.java b/examples/generic/java-server/src/main/java/com/ikurento/user/Gender.java index 72c30ae8d4bae8fc71b4cb598205141b2d1d2020..e606be79c9f633919132570b69e4d0a6588c9c8a 100644 --- a/examples/generic/java-server/src/main/java/com/ikurento/user/Gender.java +++ b/examples/generic/java-server/src/main/java/com/ikurento/user/Gender.java @@ -1,3 +1,20 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; public enum Gender { diff --git a/examples/generic/java-server/src/main/java/com/ikurento/user/Response.java b/examples/generic/java-server/src/main/java/com/ikurento/user/Response.java index 3447e5c2537625f424b54291c53783a51922ae7b..83b423dd084fe7626bc34b356ca8c6e5b540c539 100644 --- a/examples/generic/java-server/src/main/java/com/ikurento/user/Response.java +++ b/examples/generic/java-server/src/main/java/com/ikurento/user/Response.java @@ -1,7 +1,23 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; import java.io.*; -//import java.util.Objects; public final class Response<T> implements Serializable { private static final long serialVersionUID = 3727205004706510648L; diff --git a/examples/generic/java-server/src/main/java/com/ikurento/user/User.java b/examples/generic/java-server/src/main/java/com/ikurento/user/User.java index eafc0fe1c0e0c7b72a0fce73b6a333668797145e..a6e76cffe9c41c3b505550a5f3b15c202a13907c 100644 --- a/examples/generic/java-server/src/main/java/com/ikurento/user/User.java +++ b/examples/generic/java-server/src/main/java/com/ikurento/user/User.java @@ -1,5 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -// ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.Date; import java.io.Serializable; diff --git a/examples/generic/java-server/src/main/java/com/ikurento/user/UserProvider.java b/examples/generic/java-server/src/main/java/com/ikurento/user/UserProvider.java index 24567d23be662312a4750f07b605c685a8dfa5fe..60335876436ec77563b86c39066451e6cb04c71d 100644 --- a/examples/generic/java-server/src/main/java/com/ikurento/user/UserProvider.java +++ b/examples/generic/java-server/src/main/java/com/ikurento/user/UserProvider.java @@ -1,5 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.List; import java.util.Map; diff --git a/examples/generic/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java b/examples/generic/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java index d600545c5084a40f1318e47a6a1c20bfcd6d36bc..05611fc9a8de061543982261697a25f4cac0d98f 100644 --- a/examples/generic/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java +++ b/examples/generic/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java @@ -1,5 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -//ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/examples/generic/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/examples/generic/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java index 47a4e2d9732aa8d8d9279d47af5bb4fb3db37195..1984d169aac651e2d8534e789810d4c910e48152 100644 --- a/examples/generic/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java +++ b/examples/generic/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java @@ -1,6 +1,21 @@ -package com.ikurento.user; +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -// ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api +package com.ikurento.user; import java.util.HashMap; import java.util.List; diff --git a/examples/generic/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/examples/generic/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml index f8dd13a833e6095485d0504e21cec272a3c9a288..4ebe64b937bfcccf0ee97c948c76329272a9cca5 100644 --- a/examples/generic/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml +++ b/examples/generic/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml @@ -1,19 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" diff --git a/examples/helloworld/dubbo/go-client/assembly/bin/load.sh b/examples/helloworld/dubbo/go-client/assembly/bin/load.sh index 07d5d15eac7b7974845e36c3807e7ec55875de65..176a202ab8810701ac8208db0ab764f2e215d71d 100644 --- a/examples/helloworld/dubbo/go-client/assembly/bin/load.sh +++ b/examples/helloworld/dubbo/go-client/assembly/bin/load.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/helloworld/dubbo/go-client/assembly/common/app.properties b/examples/helloworld/dubbo/go-client/assembly/common/app.properties index 6bbd6db850ceeaf5ff873fee01a3578237cbd557..97eee47429e978927a03c3fb2876b3d40bfa4269 100644 --- a/examples/helloworld/dubbo/go-client/assembly/common/app.properties +++ b/examples/helloworld/dubbo/go-client/assembly/common/app.properties @@ -1,13 +1,20 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : dubbogo environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + export TARGET_EXEC_NAME="user_info_client" # BUILD_PACKAGE="dubbogo-examples/user-info/client/app" diff --git a/examples/helloworld/dubbo/go-client/assembly/common/build.sh b/examples/helloworld/dubbo/go-client/assembly/common/build.sh index e72418297ad2f0ac6985476b5a8d5e03b9e7584e..0f0b22f5f42a01fffa48efa4cae5d953fb44d7ed 100644 --- a/examples/helloworld/dubbo/go-client/assembly/common/build.sh +++ b/examples/helloworld/dubbo/go-client/assembly/common/build.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + rm -rf target/ diff --git a/examples/helloworld/dubbo/go-client/assembly/linux/dev.sh b/examples/helloworld/dubbo/go-client/assembly/linux/dev.sh index 3373f01b948b708cd7bc1958c9d56a9042c60a68..eada737c8d0939d4237a6d218fc2a07efdbff381 100644 --- a/examples/helloworld/dubbo/go-client/assembly/linux/dev.sh +++ b/examples/helloworld/dubbo/go-client/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-client/assembly/linux/release.sh b/examples/helloworld/dubbo/go-client/assembly/linux/release.sh index 34867b8b3488778cd76a1dc7802393dcab6b0df0..13b19f48a8ccb448041feb636fa6b3cc4c9997a7 100644 --- a/examples/helloworld/dubbo/go-client/assembly/linux/release.sh +++ b/examples/helloworld/dubbo/go-client/assembly/linux/release.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -e diff --git a/examples/helloworld/dubbo/go-client/assembly/linux/test.sh b/examples/helloworld/dubbo/go-client/assembly/linux/test.sh index 1bbbefd1e14e08c16deaf859e2841f4d1fe88e9c..c6c31b3b7985d3b91fdeab39c2cd9954968fb227 100644 --- a/examples/helloworld/dubbo/go-client/assembly/linux/test.sh +++ b/examples/helloworld/dubbo/go-client/assembly/linux/test.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -e diff --git a/examples/helloworld/dubbo/go-client/assembly/mac/dev.sh b/examples/helloworld/dubbo/go-client/assembly/mac/dev.sh index b68ac83b6524a6713cd90c4fc5968fe64b1a9545..c8284769909e62f0142c29e3a63177bf2826593f 100644 --- a/examples/helloworld/dubbo/go-client/assembly/mac/dev.sh +++ b/examples/helloworld/dubbo/go-client/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-client/assembly/mac/release.sh b/examples/helloworld/dubbo/go-client/assembly/mac/release.sh index 688288b3b1b989e8af70a3674b34ea8e0668f3b4..91c2dfee79b1499b640420191174f980eac187bb 100644 --- a/examples/helloworld/dubbo/go-client/assembly/mac/release.sh +++ b/examples/helloworld/dubbo/go-client/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-client/assembly/mac/test.sh b/examples/helloworld/dubbo/go-client/assembly/mac/test.sh index 56d6c11ecd6a1dc5984c74b88c10be9239e57428..a7853f5e2d51df8e3e9509621952c44bca0d1a2d 100644 --- a/examples/helloworld/dubbo/go-client/assembly/mac/test.sh +++ b/examples/helloworld/dubbo/go-client/assembly/mac/test.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. set -e diff --git a/examples/helloworld/dubbo/go-client/assembly/windows/dev.sh b/examples/helloworld/dubbo/go-client/assembly/windows/dev.sh index 91cf6f23bcbecb26db798469a30529261aabbbb6..10a3866c0f4ed8e1070c4d5641259c04073df6cb 100644 --- a/examples/helloworld/dubbo/go-client/assembly/windows/dev.sh +++ b/examples/helloworld/dubbo/go-client/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-18 13:24 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-client/assembly/windows/release.sh b/examples/helloworld/dubbo/go-client/assembly/windows/release.sh index f317720bd53d9c9e5f8f484b6eb682c9c736af0c..21af573fa3842d47959d5726b11b81d5fff5b8df 100644 --- a/examples/helloworld/dubbo/go-client/assembly/windows/release.sh +++ b/examples/helloworld/dubbo/go-client/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-client/assembly/windows/test.sh b/examples/helloworld/dubbo/go-client/assembly/windows/test.sh index 7dd2bec5260e647b57a46aaa37acc098babff068..2104da8b5909957c165eedc2f7d6866a890e9e6d 100644 --- a/examples/helloworld/dubbo/go-client/assembly/windows/test.sh +++ b/examples/helloworld/dubbo/go-client/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-server/app/server.go b/examples/helloworld/dubbo/go-server/app/server.go index f02a6ba05e8723410c985823caafe88192f5af7e..dc3a40f14f43e8dce616b3cd79a5a6b6fde38580 100644 --- a/examples/helloworld/dubbo/go-server/app/server.go +++ b/examples/helloworld/dubbo/go-server/app/server.go @@ -64,7 +64,7 @@ func initSignal() { case syscall.SIGHUP: // reload() default: - go time.AfterFunc(time.Duration(survivalTimeout), func() { + time.AfterFunc(time.Duration(survivalTimeout), func() { logger.Warnf("app exit now by force...") os.Exit(1) }) diff --git a/examples/helloworld/dubbo/go-server/assembly/bin/load.sh b/examples/helloworld/dubbo/go-server/assembly/bin/load.sh index 47fc5e38ded155a43c30b8cbf4d2a5ae04b58d0c..2e127ac652ec2b418d74efa1abfd159250cb44d1 100644 --- a/examples/helloworld/dubbo/go-server/assembly/bin/load.sh +++ b/examples/helloworld/dubbo/go-server/assembly/bin/load.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : dubbogo app devops script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-05-13 02:01 -# FILE : load.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. APP_NAME="APPLICATION_NAME" APP_ARGS="" diff --git a/examples/helloworld/dubbo/go-server/assembly/common/app.properties b/examples/helloworld/dubbo/go-server/assembly/common/app.properties index dffb755b0811dd140d3f04e232f5f80ff60181df..1f0827eb512b9bcb3c2428f8e0b50d76f65743ef 100644 --- a/examples/helloworld/dubbo/go-server/assembly/common/app.properties +++ b/examples/helloworld/dubbo/go-server/assembly/common/app.properties @@ -1,13 +1,19 @@ -# dubbogo application configure script -# ****************************************************** -# DESC : application environment variable -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:29 -# FILE : app.properties -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + TARGET_EXEC_NAME="user_info_server" # BUILD_PACKAGE="dubbogo-examples/user-info/server/app" diff --git a/examples/helloworld/dubbo/go-server/assembly/common/build.sh b/examples/helloworld/dubbo/go-server/assembly/common/build.sh index 15ac904f7c265d942d7018439719af7e7391aa41..89a95ce679ca711824a2de0888686be79d96f505 100644 --- a/examples/helloworld/dubbo/go-server/assembly/common/build.sh +++ b/examples/helloworld/dubbo/go-server/assembly/common/build.sh @@ -1,13 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:28 -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. rm -rf target/ diff --git a/examples/helloworld/dubbo/go-server/assembly/linux/dev.sh b/examples/helloworld/dubbo/go-server/assembly/linux/dev.sh index 55886f09fb4873be84cfa46aae592f5f000120a4..d830ac98c2b9328791d00d5160d487b1a12b5fed 100644 --- a/examples/helloworld/dubbo/go-server/assembly/linux/dev.sh +++ b/examples/helloworld/dubbo/go-server/assembly/linux/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-server/assembly/linux/release.sh b/examples/helloworld/dubbo/go-server/assembly/linux/release.sh index 9772ad9614583917d62beba2db9fcaefea63e1ed..99303800b0fbcd7f8dfea668dcf395f126fb99f6 100644 --- a/examples/helloworld/dubbo/go-server/assembly/linux/release.sh +++ b/examples/helloworld/dubbo/go-server/assembly/linux/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-server/assembly/linux/test.sh b/examples/helloworld/dubbo/go-server/assembly/linux/test.sh index 2fc4a98862bee5ef11a23e1b74058627a899181d..87144bb973095acaf8c17b0ec3bf42f643d0b95f 100644 --- a/examples/helloworld/dubbo/go-server/assembly/linux/test.sh +++ b/examples/helloworld/dubbo/go-server/assembly/linux/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-server/assembly/mac/dev.sh b/examples/helloworld/dubbo/go-server/assembly/mac/dev.sh index 5dfa78490b895ce556c809ead32b6f517a5f1450..3a7659b2d57e0e2502950d76ec6c938abf2b7513 100644 --- a/examples/helloworld/dubbo/go-server/assembly/mac/dev.sh +++ b/examples/helloworld/dubbo/go-server/assembly/mac/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:32 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-server/assembly/mac/release.sh b/examples/helloworld/dubbo/go-server/assembly/mac/release.sh index 1ec21c7b511ccce9eddfac22a2374b57a7a697bf..1c4bce4bf825fe401823ec33025e004a476ccaaf 100644 --- a/examples/helloworld/dubbo/go-server/assembly/mac/release.sh +++ b/examples/helloworld/dubbo/go-server/assembly/mac/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-server/assembly/mac/test.sh b/examples/helloworld/dubbo/go-server/assembly/mac/test.sh index d34914c7dbed0e442b4accf51a3ecdf7c2984db8..69206e32fed343eb87c04190b509b16482125542 100644 --- a/examples/helloworld/dubbo/go-server/assembly/mac/test.sh +++ b/examples/helloworld/dubbo/go-server/assembly/mac/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-server/assembly/windows/dev.sh b/examples/helloworld/dubbo/go-server/assembly/windows/dev.sh index 97fbb6f698e500ad08d971b13cc1ffd00cd97803..011fb41148f205bc329118a3c75e52854c0ecfd3 100644 --- a/examples/helloworld/dubbo/go-server/assembly/windows/dev.sh +++ b/examples/helloworld/dubbo/go-server/assembly/windows/dev.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for dev env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2018-06-24 17:34 -# FILE : dev.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-server/assembly/windows/release.sh b/examples/helloworld/dubbo/go-server/assembly/windows/release.sh index 782cb10c7828eb277b5905f10f8dd6ad1c2d6bed..679a26a7dc77a9bc0ccbf119eac3caba252cadc9 100644 --- a/examples/helloworld/dubbo/go-server/assembly/windows/release.sh +++ b/examples/helloworld/dubbo/go-server/assembly/windows/release.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for release env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:25 -# FILE : release.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/go-server/assembly/windows/test.sh b/examples/helloworld/dubbo/go-server/assembly/windows/test.sh index 2037ddecf2545f1543d5d28be728fb0899722098..4a36de0f3a26b804601de703c62a8062bd0623f4 100644 --- a/examples/helloworld/dubbo/go-server/assembly/windows/test.sh +++ b/examples/helloworld/dubbo/go-server/assembly/windows/test.sh @@ -1,13 +1,20 @@ #!/usr/bin/env bash -# ****************************************************** -# DESC : build script for test env -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2016-07-12 16:34 -# FILE : test.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + set -e diff --git a/examples/helloworld/dubbo/java-server/build.sh b/examples/helloworld/dubbo/java-server/build.sh index 0c197da639c1c1d9375e18c24dd73366c49deefe..7b5755be183f5b301f0963fcc4a4eace8a341574 100644 --- a/examples/helloworld/dubbo/java-server/build.sh +++ b/examples/helloworld/dubbo/java-server/build.sh @@ -1,8 +1,19 @@ #!/usr/bin/env bash -# ****************************************************** -# EMAIL : alexstocks@foxmail.com -# FILE : build.sh -# ****************************************************** +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. # mvn dependency:sources mvn clean package -Dmaven.test.skip diff --git a/examples/helloworld/dubbo/java-server/pom.xml b/examples/helloworld/dubbo/java-server/pom.xml index 975157865e59f24693d755dd20b0aac4b179a793..8c1322860245e874e06ee33584cb6b4d08a68058 100644 --- a/examples/helloworld/dubbo/java-server/pom.xml +++ b/examples/helloworld/dubbo/java-server/pom.xml @@ -1,4 +1,19 @@ <?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + + <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> diff --git a/examples/helloworld/dubbo/java-server/script/debug.sh b/examples/helloworld/dubbo/java-server/script/debug.sh index 27c5d800d846018127e762944151aa8e9ad4495d..851957ade66f7eb492f9be278bf0b6f98eed729a 100644 --- a/examples/helloworld/dubbo/java-server/script/debug.sh +++ b/examples/helloworld/dubbo/java-server/script/debug.sh @@ -1,13 +1,20 @@ -#!/us1r/bin/env bash -# ****************************************************** -# DESC : -# AUTHOR : Alex Stocks -# VERSION : 1.0 -# LICENCE : Apache License 2.0 -# EMAIL : alexstocks@foxmail.com -# MOD : 2017-10-09 21:52 -# FILE : to debug user info dubbo server -# ****************************************************** +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + # jdb -classpath /Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/*:/Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/ com.alibaba.dubbo.container.Main jdb -classpath /Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/* -sourcepath /Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/:/Users/alex/tmp/java-server/src/main/java com.alibaba.dubbo.container.Main diff --git a/examples/helloworld/dubbo/java-server/src/main/assembly/assembly.xml b/examples/helloworld/dubbo/java-server/src/main/assembly/assembly.xml index 2f01fea20f5391112cccb88c87bfe4ae1b59750a..98a2e100f18d195b8f0b44eb07080eaa9097af79 100644 --- a/examples/helloworld/dubbo/java-server/src/main/assembly/assembly.xml +++ b/examples/helloworld/dubbo/java-server/src/main/assembly/assembly.xml @@ -1,18 +1,18 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <assembly> <id>assembly</id> <formats> diff --git a/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/User.java b/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/User.java index 06f3f18f0a8ae940000fae3155e448c3181a0054..fd2cafb31f3cc976ffc70e58eb9e393d771a1b2a 100644 --- a/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/User.java +++ b/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/User.java @@ -1,5 +1,21 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.ikurento.user; -// ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api import java.util.Date; import java.io.Serializable; diff --git a/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java b/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java index f3301cd642ca58a57ac5e2041ec5f958d383b7fb..b1eeab82f6d2bda7e3e6bac7be220e249f72f6ba 100644 --- a/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java +++ b/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java @@ -1,6 +1,21 @@ -package com.ikurento.user; -// https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.ikurento.user; public interface UserProvider { diff --git a/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java index 4a394b80a4b767f25e2ff13b2d4cfe7a500f759a..0d66c430052ac5a8aa3c914b9c9f0a4ab116d46a 100644 --- a/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java +++ b/examples/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java @@ -1,6 +1,21 @@ -package com.ikurento.user; +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ -// ref: https://github.com/JoeCao/dubbo_jsonrpc_example/tree/master/dubbo_server/src/main/java/com/ofpay/demo/api +package com.ikurento.user; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/examples/helloworld/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/examples/helloworld/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml index fe23e1f3e91d841c30534c82d8d69e6628f6b528..edd01dc870b3bb16ffd7525387e994ea11da9b8e 100644 --- a/examples/helloworld/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml +++ b/examples/helloworld/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml @@ -1,19 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!-- - - Copyright 1999-2011 Alibaba Group. - - - - Licensed under the Apache License, Version 2.0 (the "License"); - - you may not use this file except in compliance with the License. - - You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, software - - distributed under the License is distributed on an "AS IS" BASIS, - - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - - See the License for the specific language governing permissions and - - limitations under the License. + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. --> + <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/client.go b/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/client.go new file mode 100644 index 0000000000000000000000000000000000000000..0d8d7d2ffd6b7ea5db3831b55fa4dc45ace302c5 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/client.go @@ -0,0 +1,130 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "context" + "fmt" + "os" + "os/signal" + "syscall" + "time" +) + +import ( + "github.com/apache/dubbo-go-hessian2" +) + +import ( + "github.com/apache/dubbo-go/common/logger" + _ "github.com/apache/dubbo-go/common/proxy/proxy_factory" + "github.com/apache/dubbo-go/config" + _ "github.com/apache/dubbo-go/protocol/dubbo" + _ "github.com/apache/dubbo-go/registry/protocol" + + _ "github.com/apache/dubbo-go/filter/impl" + + _ "github.com/apache/dubbo-go/cluster/cluster_impl" + _ "github.com/apache/dubbo-go/cluster/loadbalance" + _ "github.com/apache/dubbo-go/registry/zookeeper" +) + +var ( + survivalTimeout int = 10e9 +) + +// they are necessary: +// export CONF_CONSUMER_FILE_PATH="xxx" +// export APP_LOG_CONF_FILE="xxx" +func main() { + + hessian.RegisterJavaEnum(Gender(MAN)) + hessian.RegisterJavaEnum(Gender(WOMAN)) + hessian.RegisterPOJO(&User{}) + getUserChan := make(chan string, 32) + getErrChan := make(chan string, 32) + getUser1Chan := make(chan string, 32) + + config.Load() + logger.Debugf("[Start to test GetUser]") + for i := 0; i < 32; i++ { + go func() { + user := &User{} + err := userProvider.GetUser(context.TODO(), []interface{}{"A003"}, user) + getUserChan <- fmt.Sprintf("Result: %s ; Error: %v", user.Name, err) + }() + } + time.Sleep(time.Second * 4) + + logger.Debugf("[Start to test GetErr, without error whitelist]") + for i := 0; i < 32; i++ { + go func() { + user := &User{} + err := userProvider.GetErr(context.TODO(), []interface{}{"A003"}, user) + getErrChan <- fmt.Sprintf("Result: %s ; Error: %v", user.Name, err) + }() + } + time.Sleep(time.Second * 4) + + logger.Debugf("[Start to test illegal method GetUser1, with error whitelist]") + for i := 0; i < 32; i++ { + go func() { + user := &User{} + err := userProvider.GetUser1(context.TODO(), []interface{}{"A003"}, user) + getUser1Chan <- fmt.Sprintf("Result: %s ; Error: %v", user.Name, err) + }() + } + time.Sleep(time.Second * 4) + for i := 1; i < 32; i++ { + resGot := <-getUserChan + logger.Infof("[GetUser] %v", resGot) + } + for i := 1; i < 32; i++ { + resGot := <-getErrChan + logger.Infof("[GetErr] %v", resGot) + } + for i := 1; i < 32; i++ { + resGot := <-getUser1Chan + logger.Infof("[GetUser1] %v", resGot) + } + //initSignal() +} + +func initSignal() { + signals := make(chan os.Signal, 1) + // It is not possible to block SIGKILL or syscall.SIGSTOP + signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP, + syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT) + for { + sig := <-signals + logger.Infof("get signal %s", sig.String()) + switch sig { + case syscall.SIGHUP: + // reload() + default: + go time.AfterFunc(time.Duration(survivalTimeout)*time.Second, func() { + logger.Warnf("app exit now by force...") + os.Exit(1) + }) + + // 瑕佷箞fastFailTimeout鏃堕棿鍐呮墽琛屽畬姣曚笅闈㈢殑閫昏緫鐒跺悗绋嬪簭閫€鍑猴紝瑕佷箞鎵ц涓婇潰鐨勮秴鏃跺嚱鏁扮▼搴忓己琛岄€€鍑� + fmt.Println("app exit now...") + return + } + } +} diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/example_fallback_filter.go b/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/example_fallback_filter.go new file mode 100644 index 0000000000000000000000000000000000000000..0e86988fd787e0df941b62ad038746b412baf314 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/example_fallback_filter.go @@ -0,0 +1,80 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package main + +import ( + "time" +) + +import ( + "github.com/apache/dubbo-go/common/extension" + "github.com/apache/dubbo-go/common/logger" + "github.com/apache/dubbo-go/filter" + "github.com/apache/dubbo-go/filter/impl" + "github.com/apache/dubbo-go/protocol" +) + +const ( + EXAMPLE_FALLBACK_FILTER = "example_fallback" +) + +//This is an example filter that handles result from hystrix filter +//Define your filters and write your service downgrade strategy like this +//TODO: Maybe a base fallback filter can be offered +type ExampleFallbackFilter struct { +} + +func GetExampleFallbackFilter() filter.Filter { + return &ExampleFallbackFilter{} +} + +//The name should be the same as in your config +//Put the filter in front of hystrix filter +func init() { + extension.SetFilter(EXAMPLE_FALLBACK_FILTER, GetExampleFallbackFilter) +} + +func (ff *ExampleFallbackFilter) Invoke(invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result { + return invoker.Invoke(invocation) + +} +func (ff *ExampleFallbackFilter) OnResponse(result protocol.Result, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result { + if err := result.Error(); err != nil { + hystrixError, ok := err.(*impl.HystrixFilterError) + if ok { + if hystrixError.FailByHystrix() { + logger.Debugf("[Example fallback filter]%s get error caused by %s", invocation.MethodName(), hystrixError.Error()) + //Handle the error caused by Hystrix, including circuit breaking, concurrency limit and timeout + //The detailed error source can be got through hystrixError.Error() + //In this example we return a mock result under this circumstance + res := User{ + "MockID", + "MockName", + 55, + time.Now(), + Gender(MAN), + } + *(invocation.Reply().(*User)) = res + result.SetResult(&res) + result.SetError(nil) + } + } + } + //If the error is not caused by hystrix, the result doesn't come from hystrix filter or there's no error, + //we just return it here. + return result +} diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/user.go b/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/user.go new file mode 100644 index 0000000000000000000000000000000000000000..affa5418a701842e890f9e2498c2ef7a769532bd --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/user.go @@ -0,0 +1,149 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +import ( + "context" + "fmt" + "strconv" + "time" +) + +import ( + hessian "github.com/apache/dubbo-go-hessian2" +) + +import ( + "github.com/apache/dubbo-go/config" +) + +type Gender hessian.JavaEnum + +var ( + userProvider = new(UserProvider) + userProvider1 = new(UserProvider1) + userProvider2 = new(UserProvider2) +) + +func init() { + config.SetConsumerService(userProvider) + config.SetConsumerService(userProvider1) + config.SetConsumerService(userProvider2) +} + +const ( + MAN hessian.JavaEnum = iota + WOMAN +) + +var genderName = map[hessian.JavaEnum]string{ + MAN: "MAN", + WOMAN: "WOMAN", +} + +var genderValue = map[string]hessian.JavaEnum{ + "MAN": MAN, + "WOMAN": WOMAN, +} + +func (g Gender) JavaClassName() string { + return "com.ikurento.user.Gender" +} + +func (g Gender) String() string { + s, ok := genderName[hessian.JavaEnum(g)] + if ok { + return s + } + + return strconv.Itoa(int(g)) +} + +func (g Gender) EnumValue(s string) hessian.JavaEnum { + v, ok := genderValue[s] + if ok { + return v + } + + return hessian.InvalidJavaEnum +} + +type User struct { + // !!! Cannot define lowercase names of variable + Id string + Name string + Age int32 + Time time.Time + Sex Gender // 娉ㄦ剰姝ゅ锛宩ava enum Object <--> go string +} + +func (u User) String() string { + return fmt.Sprintf( + "User{Id:%s, Name:%s, Age:%d, Time:%s, Sex:%s}", + u.Id, u.Name, u.Age, u.Time, u.Sex, + ) +} + +func (User) JavaClassName() string { + return "com.ikurento.user.User" +} + +type UserProvider struct { + GetUsers func(req []interface{}) ([]interface{}, error) + GetErr func(ctx context.Context, req []interface{}, rsp *User) error + GetUser func(ctx context.Context, req []interface{}, rsp *User) error + GetUser0 func(id string, name string) (User, error) + GetUser1 func(ctx context.Context, req []interface{}, rsp *User) error + GetUser2 func(ctx context.Context, req []interface{}, rsp *User) error `dubbo:"getUser"` + GetUser3 func() error + Echo func(ctx context.Context, req interface{}) (interface{}, error) // Echo represent EchoFilter will be used +} + +func (u *UserProvider) Reference() string { + return "UserProvider" +} + +type UserProvider1 struct { + GetUsers func(req []interface{}) ([]interface{}, error) + GetErr func(ctx context.Context, req []interface{}, rsp *User) error + GetUser func(ctx context.Context, req []interface{}, rsp *User) error + GetUser0 func(id string, name string) (User, error) + GetUser1 func(ctx context.Context, req []interface{}, rsp *User) error + GetUser2 func(ctx context.Context, req []interface{}, rsp *User) error `dubbo:"getUser"` + GetUser3 func() error + Echo func(ctx context.Context, req interface{}) (interface{}, error) // Echo represent EchoFilter will be used +} + +func (u *UserProvider1) Reference() string { + return "UserProvider1" +} + +type UserProvider2 struct { + GetUsers func(req []interface{}) ([]interface{}, error) + GetErr func(ctx context.Context, req []interface{}, rsp *User) error + GetUser func(ctx context.Context, req []interface{}, rsp *User) error + GetUser0 func(id string, name string) (User, error) + GetUser1 func(ctx context.Context, req []interface{}, rsp *User) error + GetUser2 func(ctx context.Context, req []interface{}, rsp *User) error `dubbo:"getUser"` + GetUser3 func() error + Echo func(ctx context.Context, req interface{}) (interface{}, error) // Echo represent EchoFilter will be used +} + +func (u *UserProvider2) Reference() string { + return "UserProvider2" +} diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/version.go b/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/version.go new file mode 100644 index 0000000000000000000000000000000000000000..c6138584f1ddeab3a4927774f44f9e78a8f08da7 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/app/version.go @@ -0,0 +1,22 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package main + +var ( + Version = "2.6.0" +) diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/bin/load.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/bin/load.sh new file mode 100644 index 0000000000000000000000000000000000000000..ffa240b29d9e76761a151e7462092b86908de6f6 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/bin/load.sh @@ -0,0 +1,203 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +APP_NAME="APPLICATION_NAME" +APP_ARGS="" +SLEEP_INTERVAL=5 +MAX_LIFETIME=4000 + +PROJECT_HOME="" +OS_NAME=`uname` +if [[ ${OS_NAME} != "Windows" ]]; then + PROJECT_HOME=`pwd` + PROJECT_HOME=${PROJECT_HOME}"/" +else + APP_NAME="APPLICATION_NAME.exe" +fi + +export CONF_CONSUMER_FILE_PATH=${PROJECT_HOME}"TARGET_CONF_FILE" +export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE" +# export GOTRACEBACK=system +# export GODEBUG=gctrace=1 + +usage() { + echo "Usage: $0 start [conf suffix]" + echo " $0 stop" + echo " $0 term" + echo " $0 restart" + echo " $0 list" + echo " $0 monitor" + echo " $0 crontab" + exit +} + +start() { + arg=$1 + if [ "$arg" = "" ];then + echo "No registry type! Default client.yml!" + else + export CONF_CONSUMER_FILE_PATH=${CONF_CONSUMER_FILE_PATH//\.yml/\_$arg\.yml} + fi + if [ ! -f "${CONF_CONSUMER_FILE_PATH}" ];then + echo $CONF_CONSUMER_FILE_PATH" is not existing!" + return + fi + APP_LOG_PATH=${PROJECT_HOME}"logs/" + mkdir -p ${APP_LOG_PATH} + APP_BIN=${PROJECT_HOME}sbin/${APP_NAME} + chmod u+x ${APP_BIN} + # CMD="nohup ${APP_BIN} ${APP_ARGS} >>${APP_NAME}.nohup.out 2>&1 &" + CMD="${APP_BIN}" + eval ${CMD} + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` + if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` + fi + CUR=`date +%FT%T` + if [ "${PID}" != "" ]; then + for p in ${PID} + do + echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR} + done + fi +} + +stop() { + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` + if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` + fi + if [ "${PID}" != "" ]; + then + for ps in ${PID} + do + echo "kill -SIGINT ${APP_NAME} ( pid =" ${ps} ")" + kill -2 ${ps} + done + fi +} + + +term() { + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` + if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` + fi + if [ "${PID}" != "" ]; + then + for ps in ${PID} + do + echo "kill -9 ${APP_NAME} ( pid =" ${ps} ")" + kill -9 ${ps} + done + fi +} + +list() { + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'` + if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'` + fi + + if [ "${PID}" != "" ]; then + echo "list ${APP_NAME}" + + if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then + echo "index: user, pid, start, duration" + else + echo "index: PID, WINPID, UID, STIME, COMMAND" + fi + idx=0 + for ps in ${PID} + do + echo "${idx}: ${ps}" + ((idx ++)) + done + fi +} + +monitor() { + idx=0 + while true; do + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` + if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` + fi + if [[ "${PID}" == "" ]]; then + start + idx=0 + fi + + ((LIFE=idx*${SLEEP_INTERVAL})) + echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds." + ((idx ++)) + sleep ${SLEEP_INTERVAL} + done +} + +crontab() { + idx=0 + while true; do + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'` + if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then + PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'` + fi + if [[ "${PID}" == "" ]]; then + start + idx=0 + fi + + ((LIFE=idx*${SLEEP_INTERVAL})) + echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds." + ((idx ++)) + sleep ${SLEEP_INTERVAL} + if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then + kill -9 ${PID} + fi + done +} + +opt=$1 +case C"$opt" in + Cstart) + start $2 + ;; + Cstop) + stop + ;; + Cterm) + term + ;; + Crestart) + term + start $2 + ;; + Clist) + list + ;; + Cmonitor) + monitor + ;; + Ccrontab) + crontab + ;; + C*) + usage + ;; +esac + diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/common/app.properties b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/common/app.properties new file mode 100644 index 0000000000000000000000000000000000000000..e10868f4d292765c7eeb2e8bb8b1684a44f56a14 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/common/app.properties @@ -0,0 +1,23 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +export TARGET_EXEC_NAME="user_info_client" +# BUILD_PACKAGE="dubbogo-examples/user-info/client/app" +export BUILD_PACKAGE="app" + +export TARGET_CONF_FILE="conf/client.yml" +export TARGET_LOG_CONF_FILE="conf/log.yml" diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/common/build.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/common/build.sh new file mode 100644 index 0000000000000000000000000000000000000000..c9a9e87c73ef45195d6f70acccf9374ee6cb906b --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/common/build.sh @@ -0,0 +1,83 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +rm -rf target/ + +PROJECT_HOME=`pwd` +TARGET_FOLDER=${PROJECT_HOME}/target/${GOOS} + +TARGET_SBIN_NAME=${TARGET_EXEC_NAME} +version=`cat app/version.go | grep Version | grep -v "Apache" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}'` +if [[ ${GOOS} == "windows" ]]; then + TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe +fi +TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME} +if [[ $PROFILE == "dev" || $PROFILE == "test" ]]; then + # GFLAGS=-gcflags "-N -l" -race -x -v # -x浼氭妸go build鐨勮缁嗚繃绋嬭緭鍑� + # GFLAGS=-gcflags "-N -l" -race -v + # GFLAGS="-gcflags \"-N -l\" -v" + cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd - +else + # -s鍘绘帀绗﹀彿琛紙鐒跺悗panic鏃跺€欑殑stack trace灏辨病鏈変换浣曟枃浠跺悕/琛屽彿淇℃伅浜嗭紝杩欎釜绛変环浜庢櫘閫欳/C++绋嬪簭琚玸trip鐨勬晥鏋滐級锛� + # -w鍘绘帀DWARF璋冭瘯淇℃伅锛屽緱鍒扮殑绋嬪簭灏变笉鑳界敤gdb璋冭瘯浜嗐€�-s鍜�-w涔熷彲浠ュ垎寮€浣跨敤锛屼竴鑸潵璇村鏋滀笉鎵撶畻鐢╣db璋冭瘯锛� + # -w鍩烘湰娌″暐鎹熷け銆�-s鐨勬崯澶卞氨鏈夌偣澶т簡銆� + cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH go build -ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd - +fi + +TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE} + +mkdir -p ${TARGET_FOLDER}/${TAR_NAME} + +SBIN_DIR=${TARGET_FOLDER}/${TAR_NAME}/sbin +BIN_DIR=${TARGET_FOLDER}/${TAR_NAME} +CONF_DIR=${TARGET_FOLDER}/${TAR_NAME}/conf + +mkdir -p ${SBIN_DIR} +mkdir -p ${CONF_DIR} + +mv ${TARGET_NAME} ${SBIN_DIR} +cp -r assembly/bin ${BIN_DIR} +cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd - + +platform=$(uname) +# modify APPLICATION_NAME +if [ ${platform} == "Darwin" ]; then + sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* +else + sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/* +fi + +# modify TARGET_CONF_FILE +if [ ${platform} == "Darwin" ]; then + sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* +else + sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/* +fi + +# modify TARGET_LOG_CONF_FILE +if [ ${platform} == "Darwin" ]; then + sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* +else + sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/* +fi + +cp -r profiles/${PROFILE}/* ${CONF_DIR} + +cd ${TARGET_FOLDER} + +tar czf ${TAR_NAME}.tar.gz ${TAR_NAME}/* + diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/linux/dev.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/linux/dev.sh new file mode 100644 index 0000000000000000000000000000000000000000..eada737c8d0939d4237a6d218fc2a07efdbff381 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/linux/dev.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + +set -e + +export GOOS=linux +export GOARCH=amd64 + +export PROFILE="dev" + +PROJECT_HOME=`pwd` + +if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then + . ${PROJECT_HOME}/assembly/common/app.properties +fi + + +if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then + sh ${PROJECT_HOME}/assembly/common/build.sh +fi diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/linux/release.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/linux/release.sh new file mode 100644 index 0000000000000000000000000000000000000000..10eb3d73f8760d394537b90b7aeff83ca2b243ed --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/linux/release.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + +set -e + +export GOOS=linux +export GOARCH=amd64 + +export PROFILE="release" +export PROJECT_HOME=`pwd` + +if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then + . ${PROJECT_HOME}/assembly/common/app.properties +fi + + +if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then + sh ${PROJECT_HOME}/assembly/common/build.sh +fi diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/linux/test.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/linux/test.sh new file mode 100644 index 0000000000000000000000000000000000000000..78b650c0d49483f9f6862532afa5c483b618475a --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/linux/test.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + +set -e + +export GOOS=linux +export GOARCH=amd64 + +export PROFILE="test" +export PROJECT_HOME=`pwd` + +if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then + . ${PROJECT_HOME}/assembly/common/app.properties +fi + + +if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then + sh ${PROJECT_HOME}/assembly/common/build.sh +fi diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/mac/dev.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/mac/dev.sh new file mode 100644 index 0000000000000000000000000000000000000000..c8284769909e62f0142c29e3a63177bf2826593f --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/mac/dev.sh @@ -0,0 +1,36 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + +set -e + +export GOOS=darwin +export GOARCH=amd64 + +export PROFILE="dev" + +export PROJECT_HOME=`pwd` + +if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then + . ${PROJECT_HOME}/assembly/common/app.properties +fi + + +if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then + sh ${PROJECT_HOME}/assembly/common/build.sh +fi diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/mac/release.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/mac/release.sh new file mode 100644 index 0000000000000000000000000000000000000000..91c2dfee79b1499b640420191174f980eac187bb --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/mac/release.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + +set -e + +export GOOS=darwin +export GOARCH=amd64 + +export PROFILE="release" +export PROJECT_HOME=`pwd` + +if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then + . ${PROJECT_HOME}/assembly/common/app.properties +fi + +if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then + sh ${PROJECT_HOME}/assembly/common/build.sh +fi diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/mac/test.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/mac/test.sh new file mode 100644 index 0000000000000000000000000000000000000000..a7853f5e2d51df8e3e9509621952c44bca0d1a2d --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/mac/test.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +set -e + +export GOOS=darwin +export GOARCH=amd64 + +export PROFILE="test" +export PROJECT_HOME=`pwd` + +if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then + . ${PROJECT_HOME}/assembly/common/app.properties +fi + + +if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then + sh ${PROJECT_HOME}/assembly/common/build.sh +fi diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/windows/dev.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/windows/dev.sh new file mode 100644 index 0000000000000000000000000000000000000000..10a3866c0f4ed8e1070c4d5641259c04073df6cb --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/windows/dev.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + +set -e + +export GOOS=linux +export GOARCH=amd64 + +export PROFILE="dev" +PROJECT_HOME=`pwd` + +if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then + . ${PROJECT_HOME}/assembly/common/app.properties +fi + +if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then + sh ${PROJECT_HOME}/assembly/common/build.sh +fi diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/windows/release.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/windows/release.sh new file mode 100644 index 0000000000000000000000000000000000000000..21af573fa3842d47959d5726b11b81d5fff5b8df --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/windows/release.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + +set -e + +export GOOS=windows +export GOARCH=amd64 + +export PROFILE="release" +export PROJECT_HOME=`pwd` + +if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then + . ${PROJECT_HOME}/assembly/common/app.properties +fi + +if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then + sh ${PROJECT_HOME}/assembly/common/build.sh +fi diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/windows/test.sh b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/windows/test.sh new file mode 100644 index 0000000000000000000000000000000000000000..2104da8b5909957c165eedc2f7d6866a890e9e6d --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/assembly/windows/test.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + + +set -e + +export GOOS=windows +export GOARCH=amd64 + +export PROFILE="test" +export PROJECT_HOME=`pwd` + +if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then + . ${PROJECT_HOME}/assembly/common/app.properties +fi + +if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then + sh ${PROJECT_HOME}/assembly/common/build.sh +fi diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/dev/client.yml b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/dev/client.yml new file mode 100644 index 0000000000000000000000000000000000000000..5b5003fb2cabde05e7d99e738afd584a635355bd --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/dev/client.yml @@ -0,0 +1,98 @@ +# dubbo client yaml configure file + + +check: true +# client +request_timeout : "3s" +# connect timeout +connect_timeout : "3s" + +# application config +application_config: + organization : "ikurento.com" + name : "BDTService" + module : "dubbogo user-info client" + version : "0.0.1" + owner : "ZX" + environment : "dev" + +registries : + "hangzhouzk": + # 瀵瑰簲java閰嶇疆涓璦ddress灞炴€х殑zookeeper <dubbo:registry address="zookeeper://127.0.0.1:2181"/> + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2181" + username: "" + password: "" + "shanghaizk": + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2182" + username: "" + password: "" + +references: + "UserProvider": + # 鍙互鎸囧畾澶氫釜registry锛屼娇鐢ㄩ€楀彿闅斿紑;涓嶆寚瀹氶粯璁ゅ悜鎵€鏈夋敞鍐屼腑蹇冩敞鍐� + registry: "hangzhouzk" + filter: "example_fallback,hystrix_consumer" + protocol : "dubbo" + interface : "com.ikurento.user.UserProvider" + cluster: "failover" + methods : + - name: "GetUser" + retries: 3 + +protocol_conf: + dubbo: + reconnect_interval: 0 + connection_number: 2 + heartbeat_period: "5s" + session_timeout: "20s" + fail_fast_timeout: "5s" + pool_size: 64 + pool_ttl: 600 + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_rq_size: 1024 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 10240 + session_name: "client" + +filter_conf: + hystrix: + configs: + "Default": + timeout : 1000 + max_concurrent_requests : 25 + sleep_window : 5000 + error_percent_threshold : 50 + request_volume_threshold: 20 + "userp": + timeout: 2000 + max_concurrent_requests: 512 + sleep_window: 4000 + error_percent_threshold: 35 + request_volume_threshold: 6 + "userp_m": + timeout : 1200 + max_concurrent_requests : 512 + sleep_window : 6000 + error_percent_threshold : 60 + request_volume_threshold: 16 + error_whitelist: [".*exception.*"] + default: "Default" + services: + "com.ikurento.user.UserProvider": + service_config: "userp" + methods: + "GetUser": "userp_m" + "GetUser1": "userp_m" \ No newline at end of file diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/dev/log.yml b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/dev/log.yml new file mode 100644 index 0000000000000000000000000000000000000000..3ed242d290148743b198e32c5823ad9aae233e8b --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/dev/log.yml @@ -0,0 +1,28 @@ + +level: "debug" +development: true +disableCaller: false +disableStacktrace: false +sampling: +encoding: "console" + +# encoder +encoderConfig: + messageKey: "message" + levelKey: "level" + timeKey: "time" + nameKey: "logger" + callerKey: "caller" + stacktraceKey: "stacktrace" + lineEnding: "" + levelEncoder: "capitalColor" + timeEncoder: "iso8601" + durationEncoder: "seconds" + callerEncoder: "short" + nameEncoder: "" + +outputPaths: + - "stderr" +errorOutputPaths: + - "stderr" +initialFields: diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/release/client.yml b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/release/client.yml new file mode 100644 index 0000000000000000000000000000000000000000..9263f2d01ff5288144876eb14c08060bdb165974 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/release/client.yml @@ -0,0 +1,98 @@ +# dubbo client yaml configure file + + +check: true +# client +request_timeout : "3s" +# connect timeout +connect_timeout : "3s" + +# application config +application_config: + organization : "ikurento.com" + name : "BDTService" + module : "dubbogo user-info client" + version : "0.0.1" + owner : "ZX" + environment : "release" + +registries : + "hangzhouzk": + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2181" + username: "" + password: "" + "shanghaizk": + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2182" + username: "" + password: "" + +references: + "UserProvider": + # 鍙互鎸囧畾澶氫釜registry锛屼娇鐢ㄩ€楀彿闅斿紑;涓嶆寚瀹氶粯璁ゅ悜鎵€鏈夋敞鍐屼腑蹇冩敞鍐� + registry: "hangzhouzk" + filter: "example_fallback,hystrix_consumer" + protocol : "dubbo" +# version: "2.0" +# group: "as" + interface : "com.ikurento.user.UserProvider" + cluster: "failover" + methods : + - name: "GetUser" + retries: 3 + +protocol_conf: + dubbo: + reconnect_interval: 0 + connection_number: 2 + heartbeat_period: "5s" + session_timeout: "20s" + fail_fast_timeout: "5s" + pool_size: 64 + pool_ttl: 600 + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_rq_size: 1024 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 10240 + session_name: "client" + +filter_conf: + hystrix: + configs: + "Default": + timeout : 1000 + max_concurrent_requests : 10 + sleep_window : 5000 + error_percent_threshold : 50 + request_volume_threshold: 20 + "userp": + timeout: 1200 + max_concurrent_requests: 8 + sleep_window: 4000 + error_percent_threshold: 45 + request_volume_threshold: 15 + "userp_m": + timeout : 1200 + max_concurrent_requests : 12 + sleep_window : 6000 + error_percent_threshold : 60 + request_volume_threshold: 30 + fallback: "exampleFallback" + default: "Default" + services: + "com.ikurento.user.UserProvider": + service_config: "userp" + methods: + "GetUser": "userp_m" diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/release/log.yml b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/release/log.yml new file mode 100644 index 0000000000000000000000000000000000000000..d8606247b8479ac5054fd2ef70a0af4bca85c4c4 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/release/log.yml @@ -0,0 +1,28 @@ + +level: "warn" +development: true +disableCaller: true +disableStacktrace: true +sampling: +encoding: "console" + +# encoder +encoderConfig: + messageKey: "message" + levelKey: "level" + timeKey: "time" + nameKey: "logger" + callerKey: "caller" + stacktraceKey: "stacktrace" + lineEnding: "" + levelEncoder: "capitalColor" + timeEncoder: "iso8601" + durationEncoder: "seconds" + callerEncoder: "short" + nameEncoder: "" + +outputPaths: + - "stderr" +errorOutputPaths: + - "stderr" +initialFields: diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/test/client.yml b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/test/client.yml new file mode 100644 index 0000000000000000000000000000000000000000..048703b6bb130fbd26f5be88650e950f70355a24 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/test/client.yml @@ -0,0 +1,99 @@ +# dubbo client yaml configure file + + +check: true +# client +request_timeout : "3s" +# connect timeout +connect_timeout : "3s" + +# application config +application_config: + organization : "ikurento.com" + name : "BDTService" + module : "dubbogo user-info client" + version : "0.0.1" + owner : "ZX" + environment : "test" + +registries : + "hangzhouzk": + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2181" + username: "" + password: "" + "shanghaizk": + protocol: "zookeeper" + timeout : "3s" + address: "127.0.0.1:2182" + username: "" + password: "" + +references: + "UserProvider": + # 鍙互鎸囧畾澶氫釜registry锛屼娇鐢ㄩ€楀彿闅斿紑;涓嶆寚瀹氶粯璁ゅ悜鎵€鏈夋敞鍐屼腑蹇冩敞鍐� + registry: "hangzhouzk" + filter: "example_fallback,hystrix_consumer" + protocol : "dubbo" +# version: "2.0" +# group: "as" + interface : "com.ikurento.user.UserProvider" + cluster: "failover" + methods : + - name: "GetUser" + retries: 3 + +protocol_conf: + dubbo: + reconnect_interval: 0 + connection_number: 2 + heartbeat_period: "5s" + session_timeout: "20s" + fail_fast_timeout: "5s" + pool_size: 64 + pool_ttl: 600 + getty_session_param: + compress_encoding: false + tcp_no_delay: true + tcp_keep_alive: true + keep_alive_period: "120s" + tcp_r_buf_size: 262144 + tcp_w_buf_size: 65536 + pkg_rq_size: 1024 + pkg_wq_size: 512 + tcp_read_timeout: "1s" + tcp_write_timeout: "5s" + wait_timeout: "1s" + max_msg_len: 10240 + session_name: "client" + +filter_conf: + hystrix: + configs: + "Default": + timeout : 1000 + max_concurrent_requests : 25 + sleep_window : 5000 + error_percent_threshold : 50 + request_volume_threshold: 20 + "userp": + timeout: 2000 + max_concurrent_requests: 512 + sleep_window: 4000 + error_percent_threshold: 35 + request_volume_threshold: 6 + "userp_m": + timeout : 1200 + max_concurrent_requests : 512 + sleep_window : 6000 + error_percent_threshold : 60 + request_volume_threshold: 16 + error_whitelist: [".*exception.*"] + default: "Default" + services: + "com.ikurento.user.UserProvider": + service_config: "userp" + methods: + "GetUser": "userp_m" + "GetUser1": "userp_m" \ No newline at end of file diff --git a/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/test/log.yml b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/test/log.yml new file mode 100644 index 0000000000000000000000000000000000000000..f93d3c7fccadec845059460befb2e0b1076881e2 --- /dev/null +++ b/examples/hystrixfilter/dubbo/with-hystrix-go-client/profiles/test/log.yml @@ -0,0 +1,28 @@ + +level: "info" +development: false +disableCaller: false +disableStacktrace: true +sampling: +encoding: "console" + +# encoder +encoderConfig: + messageKey: "message" + levelKey: "level" + timeKey: "time" + nameKey: "logger" + callerKey: "caller" + stacktraceKey: "stacktrace" + lineEnding: "" + levelEncoder: "capitalColor" + timeEncoder: "iso8601" + durationEncoder: "seconds" + callerEncoder: "short" + nameEncoder: "" + +outputPaths: + - "stderr" +errorOutputPaths: + - "stderr" +initialFields: diff --git a/filter/impl/hystrix_filter.go b/filter/impl/hystrix_filter.go new file mode 100644 index 0000000000000000000000000000000000000000..3fd9f87168616b69d5ec72460767890d6956c154 --- /dev/null +++ b/filter/impl/hystrix_filter.go @@ -0,0 +1,269 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package impl + +import ( + "fmt" + "regexp" + "sync" +) +import ( + "github.com/afex/hystrix-go/hystrix" + perrors "github.com/pkg/errors" + "gopkg.in/yaml.v2" +) +import ( + "github.com/apache/dubbo-go/common/extension" + "github.com/apache/dubbo-go/common/logger" + "github.com/apache/dubbo-go/config" + "github.com/apache/dubbo-go/filter" + "github.com/apache/dubbo-go/protocol" +) + +const ( + HYSTRIX_CONSUMER = "hystrix_consumer" + HYSTRIX_PROVIDER = "hystrix_provider" + HYSTRIX = "hystrix" +) + +var ( + confConsumer = &HystrixFilterConfig{} + confProvider = &HystrixFilterConfig{} + configLoadMutex = sync.RWMutex{} + consumerConfigOnce sync.Once + providerConfigOnce sync.Once +) + +//The filter in the server end of dubbo-go can't get the invoke result for now, +//this filter ONLY works in CLIENT end (consumer side) temporarily +//Only after the callService logic is integrated into the filter chain of server end can this filter be used, +//which will be done soon +func init() { + extension.SetFilter(HYSTRIX_CONSUMER, GetHystrixFilterConsumer) + extension.SetFilter(HYSTRIX_PROVIDER, GetHystrixFilterProvider) +} + +type HystrixFilterError struct { + err error + failByHystrix bool +} + +func (hfError *HystrixFilterError) Error() string { + return hfError.err.Error() +} + +func (hfError *HystrixFilterError) FailByHystrix() bool { + return hfError.failByHystrix +} +func NewHystrixFilterError(err error, failByHystrix bool) error { + return &HystrixFilterError{ + err: err, + failByHystrix: failByHystrix, + } +} + +type HystrixFilter struct { + COrP bool //true for consumer + res map[string][]*regexp.Regexp + ifNewMap sync.Map +} + +func (hf *HystrixFilter) Invoke(invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result { + + cmdName := fmt.Sprintf("%s&method=%s", invoker.GetUrl().Key(), invocation.MethodName()) + + // Do the configuration if the circuit breaker is created for the first time + if _, load := hf.ifNewMap.LoadOrStore(cmdName, true); !load { + configLoadMutex.Lock() + filterConf := getConfig(invoker.GetUrl().Service(), invocation.MethodName(), hf.COrP) + for _, ptn := range filterConf.Error { + reg, err := regexp.Compile(ptn) + if err != nil { + logger.Warnf("[Hystrix Filter]Errors occurred parsing error omit regexp: %s, %v", ptn, err) + } else { + if hf.res == nil { + hf.res = make(map[string][]*regexp.Regexp) + } + hf.res[invocation.MethodName()] = append(hf.res[invocation.MethodName()], reg) + } + } + hystrix.ConfigureCommand(cmdName, hystrix.CommandConfig{ + Timeout: filterConf.Timeout, + MaxConcurrentRequests: filterConf.MaxConcurrentRequests, + SleepWindow: filterConf.SleepWindow, + ErrorPercentThreshold: filterConf.ErrorPercentThreshold, + RequestVolumeThreshold: filterConf.RequestVolumeThreshold, + }) + configLoadMutex.Unlock() + } + configLoadMutex.RLock() + _, _, err := hystrix.GetCircuit(cmdName) + configLoadMutex.RUnlock() + if err != nil { + logger.Errorf("[Hystrix Filter]Errors occurred getting circuit for %s , will invoke without hystrix, error is: ", cmdName, err) + return invoker.Invoke(invocation) + } + logger.Infof("[Hystrix Filter]Using hystrix filter: %s", cmdName) + var result protocol.Result + _ = hystrix.Do(cmdName, func() error { + result = invoker.Invoke(invocation) + err := result.Error() + if err != nil { + result.SetError(NewHystrixFilterError(err, false)) + for _, reg := range hf.res[invocation.MethodName()] { + if reg.MatchString(err.Error()) { + logger.Debugf("[Hystrix Filter]Error in invocation but omitted in circuit breaker: %v; %s", err, cmdName) + return nil + } + } + } + return err + }, func(err error) error { + //Return error and if it is caused by hystrix logic, so that it can be handled by previous filters. + _, ok := err.(hystrix.CircuitError) + logger.Debugf("[Hystrix Filter]Hystrix health check counted, error is: %v, failed by hystrix: %v; %s", err, ok, cmdName) + result = &protocol.RPCResult{} + result.SetResult(nil) + result.SetError(NewHystrixFilterError(err, ok)) + return err + }) + return result +} + +func (hf *HystrixFilter) OnResponse(result protocol.Result, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result { + return result +} +func GetHystrixFilterConsumer() filter.Filter { + //When first called, load the config in + consumerConfigOnce.Do(func() { + if err := initHystrixConfigConsumer(); err != nil { + logger.Warnf("[Hystrix Filter]Config load failed for consumer, error is: %v , will use default", err) + } + }) + return &HystrixFilter{COrP: true} +} + +func GetHystrixFilterProvider() filter.Filter { + providerConfigOnce.Do(func() { + if err := initHystrixConfigProvider(); err != nil { + logger.Warnf("[Hystrix Filter]Config load failed for provider, error is: %v , will use default", err) + } + }) + return &HystrixFilter{COrP: false} +} + +func getConfig(service string, method string, cOrP bool) CommandConfigWithError { + //Find method level config + var conf *HystrixFilterConfig + if cOrP { + conf = confConsumer + } else { + conf = confProvider + } + getConf := conf.Configs[conf.Services[service].Methods[method]] + if getConf != nil { + logger.Infof("[Hystrix Filter]Found method-level config for %s - %s", service, method) + return *getConf + } + //Find service level config + getConf = conf.Configs[conf.Services[service].ServiceConfig] + if getConf != nil { + logger.Infof("[Hystrix Filter]Found service-level config for %s - %s", service, method) + return *getConf + } + //Find default config + getConf = conf.Configs[conf.Default] + if getConf != nil { + logger.Infof("[Hystrix Filter]Found global default config for %s - %s", service, method) + return *getConf + } + getConf = &CommandConfigWithError{} + logger.Infof("[Hystrix Filter]No config found for %s - %s, using default", service, method) + return *getConf + +} + +func initHystrixConfigConsumer() error { + if config.GetConsumerConfig().FilterConf == nil { + return perrors.Errorf("no config for hystrix") + } + filterConfig := config.GetConsumerConfig().FilterConf.(map[interface{}]interface{})[HYSTRIX] + if filterConfig == nil { + return perrors.Errorf("no config for hystrix") + } + hystrixConfByte, err := yaml.Marshal(filterConfig) + if err != nil { + return err + } + err = yaml.Unmarshal(hystrixConfByte, confConsumer) + if err != nil { + return err + } + return nil +} +func initHystrixConfigProvider() error { + if config.GetProviderConfig().FilterConf == nil { + return perrors.Errorf("no config for hystrix") + } + filterConfig := config.GetConsumerConfig().FilterConf.(map[interface{}]interface{})[HYSTRIX] + if filterConfig == nil { + return perrors.Errorf("no config for hystrix") + } + hystrixConfByte, err := yaml.Marshal(filterConfig) + if err != nil { + return err + } + err = yaml.Unmarshal(hystrixConfByte, confProvider) + if err != nil { + return err + } + return nil +} + +//For sake of dynamic config +//func RefreshHystrix() error { +// conf = &HystrixFilterConfig{} +// hystrix.Flush() +// return initHystrixConfig() +//} + +type CommandConfigWithError struct { + Timeout int `yaml:"timeout"` + MaxConcurrentRequests int `yaml:"max_concurrent_requests"` + RequestVolumeThreshold int `yaml:"request_volume_threshold"` + SleepWindow int `yaml:"sleep_window"` + ErrorPercentThreshold int `yaml:"error_percent_threshold"` + Error []string `yaml:"error_whitelist"` +} + +//Config: +//- Timeout: how long to wait for command to complete, in milliseconds +//- MaxConcurrentRequests: how many commands of the same type can run at the same time +//- RequestVolumeThreshold: the minimum number of requests needed before a circuit can be tripped due to health +//- SleepWindow: how long, in milliseconds, to wait after a circuit opens before testing for recovery +//- ErrorPercentThreshold: it causes circuits to open once the rolling measure of errors exceeds this percent of requests +//See hystrix doc + +type HystrixFilterConfig struct { + Configs map[string]*CommandConfigWithError + Default string + Services map[string]ServiceHystrixConfig +} +type ServiceHystrixConfig struct { + ServiceConfig string `yaml:"service_config"` + Methods map[string]string +} diff --git a/filter/impl/hystrix_filter_test.go b/filter/impl/hystrix_filter_test.go new file mode 100644 index 0000000000000000000000000000000000000000..d3a5183ede25d8a325bb1c73020edddd2ffbc638 --- /dev/null +++ b/filter/impl/hystrix_filter_test.go @@ -0,0 +1,217 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package impl + +import ( + "regexp" + "testing" +) +import ( + "github.com/afex/hystrix-go/hystrix" + "github.com/pkg/errors" + "github.com/stretchr/testify/assert" +) +import ( + "github.com/apache/dubbo-go/protocol" + "github.com/apache/dubbo-go/protocol/invocation" +) + +func init() { + mockInitHystrixConfig() +} + +func TestNewHystrixFilterError(t *testing.T) { + get := NewHystrixFilterError(errors.New("test"), true) + assert.True(t, get.(*HystrixFilterError).FailByHystrix()) + assert.Equal(t, "test", get.Error()) +} + +func mockInitHystrixConfig() { + //Mock config + confConsumer = &HystrixFilterConfig{ + make(map[string]*CommandConfigWithError), + "Default", + make(map[string]ServiceHystrixConfig), + } + confConsumer.Configs["Default"] = &CommandConfigWithError{ + Timeout: 1000, + MaxConcurrentRequests: 600, + RequestVolumeThreshold: 5, + SleepWindow: 5000, + ErrorPercentThreshold: 5, + Error: nil, + } + confConsumer.Configs["userp"] = &CommandConfigWithError{ + Timeout: 2000, + MaxConcurrentRequests: 64, + RequestVolumeThreshold: 15, + SleepWindow: 4000, + ErrorPercentThreshold: 45, + Error: nil, + } + confConsumer.Configs["userp_m"] = &CommandConfigWithError{ + Timeout: 1200, + MaxConcurrentRequests: 64, + RequestVolumeThreshold: 5, + SleepWindow: 6000, + ErrorPercentThreshold: 60, + Error: []string{ + "exception", + }, + } + confConsumer.Services["com.ikurento.user.UserProvider"] = ServiceHystrixConfig{ + "userp", + map[string]string{ + "GetUser": "userp_m", + }, + } + +} + +func TestGetHystrixFilter(t *testing.T) { + filterGot := GetHystrixFilterConsumer() + assert.NotNil(t, filterGot) +} + +func TestGetConfig_1(t *testing.T) { + mockInitHystrixConfig() + configGot := getConfig("com.ikurento.user.UserProvider", "GetUser", true) + assert.NotNil(t, configGot) + assert.Equal(t, 1200, configGot.Timeout) + assert.Equal(t, 64, configGot.MaxConcurrentRequests) + assert.Equal(t, 6000, configGot.SleepWindow) + assert.Equal(t, 60, configGot.ErrorPercentThreshold) + assert.Equal(t, 5, configGot.RequestVolumeThreshold) +} + +func TestGetConfig_2(t *testing.T) { + mockInitHystrixConfig() + configGot := getConfig("com.ikurento.user.UserProvider", "GetUser0", true) + assert.NotNil(t, configGot) + assert.Equal(t, 2000, configGot.Timeout) + assert.Equal(t, 64, configGot.MaxConcurrentRequests) + assert.Equal(t, 4000, configGot.SleepWindow) + assert.Equal(t, 45, configGot.ErrorPercentThreshold) + assert.Equal(t, 15, configGot.RequestVolumeThreshold) +} + +func TestGetConfig_3(t *testing.T) { + mockInitHystrixConfig() + //This should use default + configGot := getConfig("Mock.Service", "GetMock", true) + assert.NotNil(t, configGot) + assert.Equal(t, 1000, configGot.Timeout) + assert.Equal(t, 600, configGot.MaxConcurrentRequests) + assert.Equal(t, 5000, configGot.SleepWindow) + assert.Equal(t, 5, configGot.ErrorPercentThreshold) + assert.Equal(t, 5, configGot.RequestVolumeThreshold) +} + +type testMockSuccessInvoker struct { + protocol.BaseInvoker +} + +func (iv *testMockSuccessInvoker) Invoke(invocation protocol.Invocation) protocol.Result { + return &protocol.RPCResult{ + Rest: "Sucess", + Err: nil, + } +} + +type testMockFailInvoker struct { + protocol.BaseInvoker +} + +func (iv *testMockFailInvoker) Invoke(invocation protocol.Invocation) protocol.Result { + return &protocol.RPCResult{ + Err: errors.Errorf("exception"), + } +} + +func TestHystrixFilter_Invoke_Success(t *testing.T) { + hf := &HystrixFilter{} + result := hf.Invoke(&testMockSuccessInvoker{}, &invocation.RPCInvocation{}) + assert.NotNil(t, result) + assert.NoError(t, result.Error()) + assert.NotNil(t, result.Result()) +} + +func TestHystrixFilter_Invoke_Fail(t *testing.T) { + hf := &HystrixFilter{} + result := hf.Invoke(&testMockFailInvoker{}, &invocation.RPCInvocation{}) + assert.NotNil(t, result) + assert.Error(t, result.Error()) +} + +func TestHystricFilter_Invoke_CircuitBreak(t *testing.T) { + mockInitHystrixConfig() + hystrix.Flush() + hf := &HystrixFilter{COrP: true} + resChan := make(chan protocol.Result, 50) + for i := 0; i < 50; i++ { + go func() { + result := hf.Invoke(&testMockFailInvoker{}, &invocation.RPCInvocation{}) + resChan <- result + }() + } + //This can not always pass the test when on travis due to concurrency, you can uncomment the code below and test it locally + + //var lastRest bool + //for i := 0; i < 50; i++ { + // lastRest = (<-resChan).Error().(*HystrixFilterError).FailByHystrix() + //} + //Normally the last result should be true, which means the circuit has been opened + // + //assert.True(t, lastRest) + +} + +func TestHystricFilter_Invoke_CircuitBreak_Omit_Exception(t *testing.T) { + mockInitHystrixConfig() + hystrix.Flush() + reg, _ := regexp.Compile(".*exception.*") + regs := []*regexp.Regexp{reg} + hf := &HystrixFilter{res: map[string][]*regexp.Regexp{"": regs}, COrP: true} + resChan := make(chan protocol.Result, 50) + for i := 0; i < 50; i++ { + go func() { + result := hf.Invoke(&testMockFailInvoker{}, &invocation.RPCInvocation{}) + resChan <- result + }() + } + //This can not always pass the test when on travis due to concurrency, you can uncomment the code below and test it locally + + //time.Sleep(time.Second * 6) + //var lastRest bool + //for i := 0; i < 50; i++ { + // lastRest = (<-resChan).Error().(*HystrixFilterError).FailByHystrix() + //} + // + //assert.False(t, lastRest) + +} + +func TestGetHystrixFilterConsumer(t *testing.T) { + get := GetHystrixFilterConsumer() + assert.NotNil(t, get) + assert.True(t, get.(*HystrixFilter).COrP) +} +func TestGetHystrixFilterProvider(t *testing.T) { + get := GetHystrixFilterProvider() + assert.NotNil(t, get) + assert.False(t, get.(*HystrixFilter).COrP) +} diff --git a/go.mod b/go.mod index 52785aa5f5cfbc8158a49c90a369d179a332f5f0..f88e82a6d2f1248af44444078a3fd89d9b46e84e 100644 --- a/go.mod +++ b/go.mod @@ -2,6 +2,7 @@ module github.com/apache/dubbo-go require ( github.com/Workiva/go-datastructures v1.0.50 + github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190802083043-4cd0c391755e // indirect github.com/apache/dubbo-go-hessian2 v1.2.5-0.20190731020727-1697039810c8 github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23 // indirect @@ -10,18 +11,18 @@ require ( github.com/coreos/go-semver v0.3.0 // indirect github.com/coreos/go-systemd v0.0.0-20190719114852-fd7a80b32e1f // indirect github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect - github.com/dgrijalva/jwt-go v3.2.0+incompatible // indirect github.com/dubbogo/getty v1.2.2 github.com/dubbogo/gost v1.1.1 github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 // indirect github.com/go-errors/errors v1.0.1 // indirect - github.com/gogo/protobuf v1.2.1 // indirect github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6 // indirect github.com/golang/mock v1.3.1 github.com/google/btree v1.0.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect github.com/grpc-ecosystem/grpc-gateway v1.9.5 // indirect + github.com/hashicorp/consul v1.5.3 + github.com/hashicorp/consul/api v1.1.0 github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869 // indirect github.com/jinzhu/copier v0.0.0-20190625015134-976e0346caa8 github.com/jonboulle/clockwork v0.1.0 // indirect @@ -29,11 +30,13 @@ require ( github.com/lestrrat/go-file-rotatelogs v0.0.0-20180223000712-d3151e2a480f // indirect github.com/lestrrat/go-strftime v0.0.0-20180220042222-ba3bf9c1d042 // indirect github.com/magiconair/properties v1.8.1 - github.com/modern-go/reflect2 v1.0.1 // indirect + github.com/mitchellh/copystructure v1.0.0 + github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 github.com/nacos-group/nacos-sdk-go v0.0.0-20190723125407-0242d42e3dbb github.com/pkg/errors v0.8.1 github.com/prometheus/client_golang v1.1.0 // indirect github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec + github.com/smartystreets/goconvey v0.0.0-20190710185942-9d28bd7c0945 // indirect github.com/soheilhy/cmux v0.1.4 // indirect github.com/stretchr/testify v1.3.0 github.com/tebeka/strftime v0.1.3 // indirect diff --git a/go.sum b/go.sum index e70701ff96cccb0026edaa36135f3ed785863159..0ac707c33b60e135832c1a5adfdd6b3039129c98 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,35 @@ +cloud.google.com/go v0.26.0 h1:e0WKqKTd5BnrG8aKH3J3h+QvEIQtSUcf2n5UZ5ZgLtQ= cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/Azure/azure-sdk-for-go v16.0.0+incompatible h1:gr1qKY/Ll72VjFTZmaBwRK1yQHAxCnV25ekOKroc9ws= +github.com/Azure/azure-sdk-for-go v16.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78 h1:w+iIsaOQNcT7OZ575w+acHgRric5iCyQh+xv+KJ4HB8= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-autorest v10.7.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v10.15.3+incompatible h1:nhKI/bvazIs3C3TFGoSqKY6hZ8f5od5mb5/UcS6HVIY= +github.com/Azure/go-autorest v10.15.3+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/DataDog/datadog-go v2.2.0+incompatible h1:V5BKkxACZLjzHjSgBbr2gvLA2Ae49yhc6CSY7MLy5k4= +github.com/DataDog/datadog-go v2.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= +github.com/Jeffail/gabs v1.1.0 h1:kw5zCcl9tlJNHTDme7qbi21fDHZmXrnjMoXos3Jw/NI= +github.com/Jeffail/gabs v1.1.0/go.mod h1:6xMvQMK4k33lb7GUUpaAPh6nKMmemQeg5d4gn7/bOXc= +github.com/Microsoft/go-winio v0.4.3 h1:M3NHMuPgMSUPdE5epwNUHlRPSVzHs8HpRTrVXhR0myo= +github.com/Microsoft/go-winio v0.4.3/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/NYTimes/gziphandler v1.0.1 h1:iLrQrdwjDd52kHDA5op2UBJFjmOb9g+7scBan4RN8F0= +github.com/NYTimes/gziphandler v1.0.1/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= +github.com/SAP/go-hdb v0.12.0 h1:5hBQZ2jjyZ268qjDmoDZJuCyLzR6oRLI60eYzmTW9m4= +github.com/SAP/go-hdb v0.12.0/go.mod h1:etBT+FAi1t5k3K3tf5vQTnosgYmhDkRi8jEnQqCnxF0= +github.com/SermoDigital/jose v0.0.0-20180104203859-803625baeddc h1:LkkwnbY+S8WmwkWq1SVyRWMH9nYWO1P5XN3OD1tts/w= +github.com/SermoDigital/jose v0.0.0-20180104203859-803625baeddc/go.mod h1:ARgCUhI1MHQH+ONky/PAtmVHQrP5JlGY0F3poXOp/fA= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6 h1:fLjPD/aNc3UIOA6tDi6QXUemppXK3P9BI7mr2hd6gx8= +github.com/StackExchange/wmi v0.0.0-20180116203802-5d049714c4a6/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/Workiva/go-datastructures v1.0.50 h1:slDmfW6KCHcC7U+LP3DDBbm4fqTwZGn1beOFPfGaLvo= github.com/Workiva/go-datastructures v1.0.50/go.mod h1:Z+F2Rca0qCsVYDS8z7bAGm8f3UkzuWYS/oBZz5a7VVA= +github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af h1:DBNMBMuMiWYu0b+8KMJuWmfCkcxl09JwdlqwDZZ6U14= +github.com/abdullin/seq v0.0.0-20160510034733-d5467c17e7af/go.mod h1:5Jv4cbFiHJMsVxt52+i0Ha45fjshj6wxYr1r19tB9bw= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5 h1:rFw4nCn9iMW+Vajsk51NtYIcwSTkXr+JGrMd36kTDJw= +github.com/afex/hystrix-go v0.0.0-20180502004556-fa1af6a1f4f5/go.mod h1:SkGFH1ia65gfNATL8TAiHDNxPzPdmEL5uirI2Uyuz6c= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190802083043-4cd0c391755e h1:MSuLXx/mveDbpDNhVrcWTMeV4lbYWKcyO4rH+jAxmX0= @@ -9,14 +37,44 @@ github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20190802083043-4cd0c391755e/go.mod github.com/aliyun/aliyun-oss-go-sdk v0.0.0-20190307165228-86c17b95fcd5/go.mod h1:T/Aws4fEfogEE9v+HPhhw+CntffsBHJ8nXQCwKr0/g8= github.com/apache/dubbo-go-hessian2 v1.2.5-0.20190731020727-1697039810c8 h1:7zJlM+8bpCAUhv03TZnXkT4MLlLWng1s7An8CLuN73E= github.com/apache/dubbo-go-hessian2 v1.2.5-0.20190731020727-1697039810c8/go.mod h1:LWnndnrFXZmJLAzoyNAPNHSIJ1KOHVkTSsHgC3YYWlo= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e h1:QEF07wC0T1rKkctt1RINW/+RMTVmiwxETico2l3gxJA= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da h1:8GUt8eRujhVEGZFFEjBj46YV4rDjvGrNxb0KMWYkL2I= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878 h1:EFSB7Zo9Eg91v7MJPVsifUysc/wPdN+NOnVe6bWbdBM= +github.com/armon/go-metrics v0.0.0-20190430140413-ec5e00d3c878/go.mod h1:3AMJUQhVx52RsWOnlkpikZr01T/yAVN2gn0861vByNg= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310 h1:BUAU3CGlLvorLI26FmByPp2eC2qla6E1Tw+scpcg/to= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/asaskevich/govalidator v0.0.0-20180319081651-7d2e70ef918f h1:/8NcnxL60YFll4ehCwibKotx0BR9v2ND40fomga8qDs= +github.com/asaskevich/govalidator v0.0.0-20180319081651-7d2e70ef918f/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/aws/aws-sdk-go v1.15.24 h1:xLAdTA/ore6xdPAljzZRed7IGqQgC+nY+ERS5vaj4Ro= +github.com/aws/aws-sdk-go v1.15.24/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= github.com/baiyubin/aliyun-sts-go-sdk v0.0.0-20180326062324-cfa1a18b161f/go.mod h1:AuiFmCCPBSrqvVMvuqFuk0qogytodnVFVSN5CeJB8Gc= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/bgentry/speakeasy v0.1.0 h1:ByYyxL9InA1OWqxJqqp2A5pYHUrCiAL6K3J+LKSsQkY= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932 h1:mXoPYz/Ul5HYEDvkta6I8/rnYM5gSdSV2tJ6XbZuEtY= +github.com/bitly/go-hostpool v0.0.0-20171023180738-a3a6125de932/go.mod h1:NOuUCSz6Q9T7+igc/hlvDOUdtWKryOrtFyIVABv/p7k= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= +github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4= +github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps= github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23 h1:D21IyuvjDCshj1/qq+pCNd3VZOAEI9jy6Bi131YlXgI= github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/cenkalti/backoff v2.1.1+incompatible h1:tKJnvO2kl0zmb/jA5UKAt4VoEVw1qxKWjE/Bpp46npY= +github.com/cenkalti/backoff v2.1.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible h1:C29Ae4G5GtYyYMm1aztcyj/J5ckgJm2zwdDajFbx1NY= +github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6Dob7S7YxXgwXpfOuvO54S+tGdZdw9fuRZt25Ag= +github.com/circonus-labs/circonusllhist v0.1.3 h1:TJH+oke8D16535+jHExHj4nQvzlZrj7ug5D7I/orNUA= +github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I= github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/containerd/continuity v0.0.0-20181203112020-004b46473808 h1:4BX8f882bXEDKfWIf0wa8HRvpnBoPszJJXL+TVbBw4M= +github.com/containerd/continuity v0.0.0-20181203112020-004b46473808/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/coredns/coredns v1.1.2 h1:bAFHrSsBeTeRG5W3Nf2su3lUGw7Npw2UKeCJm/3A638= +github.com/coredns/coredns v1.1.2/go.mod h1:zASH/MVDgR6XZTbxvOnsZfffS+31vg6Ackf/wo1+AM0= github.com/coreos/bbolt v1.3.3 h1:n6AiVyVRKQFNb6mJlwESEvvLoDyiTzXX7ORAUlkeBdY= github.com/coreos/bbolt v1.3.3/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.13+incompatible h1:8F3hqu9fGYLBifCmRCJsicFqDx/D68Rt3q1JMazcgBQ= @@ -30,22 +88,60 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/denisenkom/go-mssqldb v0.0.0-20180620032804-94c9c97e8c9f h1:JtRnQbMXb3TcSIm1j452zI45lPMiAQ0puF8iK5EnY9M= +github.com/denisenkom/go-mssqldb v0.0.0-20180620032804-94c9c97e8c9f/go.mod h1:xN/JuLBIz4bjkxNmByTiV1IbhfnYb6oo99phBn4Eqhc= +github.com/denverdino/aliyungo v0.0.0-20170926055100-d3308649c661 h1:lrWnAyy/F72MbxIxFUzKmcMCdt9Oi8RzpAxzTNQHD7o= +github.com/denverdino/aliyungo v0.0.0-20170926055100-d3308649c661/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/digitalocean/godo v1.1.1/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU= +github.com/digitalocean/godo v1.10.0 h1:uW1/FcvZE/hoixnJcnlmIUvTVNdZCLjRLzmDtRi1xXY= +github.com/digitalocean/godo v1.10.0/go.mod h1:h6faOIcZ8lWIwNQ+DN7b3CgX4Kwby5T+nbpNqkUIozU= +github.com/docker/go-connections v0.3.0 h1:3lOnM9cSzgGwx8VfK/NGOW5fLQ0GjIlCkaktF+n1M6o= +github.com/docker/go-connections v0.3.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-units v0.3.3 h1:Xk8S3Xj5sLGlG5g67hJmYMmUgXv5N4PhkjJHHqrwnTk= +github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dubbogo/getty v1.2.2 h1:qDC9WXjxcs5NPvWZz2ruVKBKr2r1Jjm6i0Sq//CQwbE= github.com/dubbogo/getty v1.2.2/go.mod h1:K4b3MkGLf7T+lMgQNFgpg0dI1Wvv1PTisFs1Psf86kU= github.com/dubbogo/gost v1.1.1 h1:JCM7vx5edPIjDA5ovJTuzEEXuw2t7xLyrlgi2mi5jHI= github.com/dubbogo/gost v1.1.1/go.mod h1:R7wZm1DrmrKGr50mBZVcg6C9ekG8aL5hP+sgWcIDwQg= +github.com/duosecurity/duo_api_golang v0.0.0-20190308151101-6c680f768e74 h1:2MIhn2R6oXQbgW5yHfS+d6YqyMfXiu2L55rFZC4UD/M= +github.com/duosecurity/duo_api_golang v0.0.0-20190308151101-6c680f768e74/go.mod h1:UqXY1lYT/ERa4OEAywUqdok1T4RCRdArkhic1Opuavo= +github.com/elazarl/go-bindata-assetfs v0.0.0-20160803192304-e1a2a7ec64b0 h1:ZoRgc53qJCfSLimXqJDrmBhnt5GChDsExMCK7t48o0Y= +github.com/elazarl/go-bindata-assetfs v0.0.0-20160803192304-e1a2a7ec64b0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= +github.com/envoyproxy/go-control-plane v0.8.0 h1:uE6Fp4fOcAJdc1wTQXLJ+SYistkbG1dNoi6Zs1+Ybvk= +github.com/envoyproxy/go-control-plane v0.8.0/go.mod h1:GSSbY9P1neVhdY7G4wu+IK1rk/dqhiCC/4ExuWJZVuk= +github.com/envoyproxy/protoc-gen-validate v0.0.14 h1:YBW6/cKy9prEGRYLnaGa4IDhzxZhRCtKsax8srGKDnM= +github.com/envoyproxy/protoc-gen-validate v0.0.14/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239 h1:Ghm4eQYC0nEPnSJdVkTrXpu9KtoVCSo1hg7mtI7G9KU= github.com/fastly/go-utils v0.0.0-20180712184237-d95a45783239/go.mod h1:Gdwt2ce0yfBxPvZrHkprdPPTTS3N5rwmLE8T22KBXlw= +github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/structs v0.0.0-20180123065059-ebf56d35bba7 h1:bGT+Ub6bpzHl7AAYQhBrZ5nYTAH2SF/848WducU0Ao4= +github.com/fatih/structs v0.0.0-20180123065059-ebf56d35bba7/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/go-errors/errors v1.0.1 h1:LUHzmkK3GUKUrL/1gfBUxAHzcev3apQlezX/+O7ma6w= github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-ini/ini v1.25.4 h1:Mujh4R/dH6YL8bxuISne3xX2+qcQ9p0IxKAP6ExWoUo= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-ldap/ldap v3.0.2+incompatible h1:kD5HQcAzlQ7yrhfn+h+MSABeAy/jAJhvIJ/QDllP44g= +github.com/go-ldap/ldap v3.0.2+incompatible/go.mod h1:qfd9rJvER9Q0/D/Sqn1DfHRoBp40uXYvFoEVrNEPqRc= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-ole/go-ole v1.2.1 h1:2lOsA72HgjxAuMlKpFiCbHTvu44PIVkZ5hqm3RSdI/E= +github.com/go-ole/go-ole v1.2.1/go.mod h1:7FAglXiTm7HKlQRDeOQ6ZNUHidzCWXuZWq/1dTyBNF8= +github.com/go-sql-driver/mysql v0.0.0-20180618115901-749ddf1598b4 h1:1LlmVz15APoKz9dnm5j2ePptburJlwEH+/v/pUuoxck= +github.com/go-sql-driver/mysql v0.0.0-20180618115901-749ddf1598b4/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-test/deep v1.0.2 h1:onZX1rnHT3Wv6cqNgYyFOOlgVKJrksuCMCRvJStbMYw= +github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/gocql/gocql v0.0.0-20180617115710-e06f8c1bcd78 h1:G7iRamCffNivybfZvsJjtk3k2qHa73xW+OysVkukcGk= +github.com/gocql/gocql v0.0.0-20180617115710-e06f8c1bcd78/go.mod h1:4Fw1eo5iaEhDUs8XyuhSVCVy52Jq3L+/3GJgYkwc+/0= +github.com/gogo/googleapis v1.1.0 h1:kFkMAZBNAn4j7K0GiZr8cRYzejq68VbheufiV3YuyFI= +github.com/gogo/googleapis v1.1.0/go.mod h1:gf4bu3Q80BeJ6H1S1vYPm8/ELATdvryBaNFGgqEef3s= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= @@ -61,38 +157,151 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/snappy v0.0.0-20170215233205-553a64147049/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.1 h1:Qgr9rKW7uDUkrbSmQeiDsGa8SjGyCOGtuasMWwvp2P4= github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0 h1:crn/baboCvb5fXaQ0IJ1SGTsTVrWpDsCWC8EGETZijY= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-github v17.0.0+incompatible h1:N0LgJ1j65A7kfXrZnUDaYCs/Sf4rEjNlfyDHW9dolSY= +github.com/google/go-github v17.0.0+incompatible/go.mod h1:zLgOLi98H3fifZn+44m+umXrS52loVEgC2AApnigrVQ= +github.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135 h1:zLTLjkaOFEFIOxY5BWLFLwh+cL8vOBW4XJ2aqLE/Tf0= +github.com/google/go-querystring v0.0.0-20170111101155-53e6ce116135/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/googleapis/gnostic v0.2.0 h1:l6N3VoaVzTncYYW+9yOz2LJJammFZGBO13sqgEhpy9g= +github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= +github.com/gophercloud/gophercloud v0.0.0-20180828235145-f29afc2cceca h1:wobTb8SE189AuxzEKClyYxiI4nUGWlpVtl13eLiFlOE= +github.com/gophercloud/gophercloud v0.0.0-20180828235145-f29afc2cceca/go.mod h1:3WdhXV3rUYy9p6AUW8d94kr+HS62Y4VL9mBnFxsD8q4= +github.com/gopherjs/gopherjs v0.0.0-20180825215210-0210a2f0f73c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gotestyourself/gotestyourself v2.2.0+incompatible h1:1yOKgt0XYKUg1HOKunGOSt2ocU4bxLCjmIHt0vRtVHM= +github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 h1:BWIsLfhgKhV5g/oF34aRjniBHLTZe5DNekSjbAjIS6c= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed h1:5upAirOpQc1Q53c0bnx2ufif5kANL7bfZWcc6VJWJd8= +github.com/hailocab/go-hostpool v0.0.0-20160125115350-e80d13ce29ed/go.mod h1:tMWxXQ9wFIaZeTI9F+hmhFiGpFmhOHzyShyFUhRm0H4= +github.com/hashicorp/consul v1.5.3 h1:EmTWRf/cuqZk6Ug9tgFUVE9xNgJPpmBvJwJMvm+agSk= +github.com/hashicorp/consul v1.5.3/go.mod h1:61E2GJCPEP3oq8La7sfDdWGQ66+Zbxzw5ecOdFD7xIE= +github.com/hashicorp/consul/api v1.1.0 h1:BNQPM9ytxj6jbjjdRPioQ94T6YXriSopn0i8COv6SRA= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= +github.com/hashicorp/consul/sdk v0.1.1 h1:LnuDWGNsoajlhGyHJvuWW6FVqRl8JOTPqS6CPTsYjhY= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-bexpr v0.1.0 h1:hA/9CWGPsQ6YZXvPvizD+VEEjBG4V6Un0Qcyav5ghK4= +github.com/hashicorp/go-bexpr v0.1.0/go.mod h1:ANbpTX1oAql27TZkKVeW8p1w8NTdnyzPe/0qqPCKohU= +github.com/hashicorp/go-checkpoint v0.0.0-20171009173528-1545e56e46de/go.mod h1:xIwEieBHERyEvaeKF/TcHh1Hu+lxPM+n2vT1+g9I4m4= +github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-discover v0.0.0-20190403160810-22221edb15cd h1:SynRxs8h2h7lLSA5py5a3WWkYpImhREtju0CuRd97wc= +github.com/hashicorp/go-discover v0.0.0-20190403160810-22221edb15cd/go.mod h1:ueUgD9BeIocT7QNuvxSyJyPAM9dfifBcaWmeybb67OY= +github.com/hashicorp/go-hclog v0.9.1 h1:9PZfAcVEvez4yhLH2TBU64/h/z4xlFI80cWXRrxuKuM= +github.com/hashicorp/go-hclog v0.9.1/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= +github.com/hashicorp/go-immutable-radix v1.0.0 h1:AKDB1HM5PWEA7i4nhcpwOrO2byshxBjXVn/J/3+z5/0= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-memdb v0.0.0-20180223233045-1289e7fffe71 h1:yxxFgVz31vFoKKTtRUNbXLNe4GFnbLKqg+0N7yG42L8= +github.com/hashicorp/go-memdb v0.0.0-20180223233045-1289e7fffe71/go.mod h1:kbfItVoBJwCfKXDXN4YoAXjxcFVZ7MRrJzyTX6H4giE= +github.com/hashicorp/go-msgpack v0.5.3 h1:zKjpN5BK/P5lMYrLmBHdBULWbJ0XpYR+7NGzqkZzoD4= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-msgpack v0.5.5 h1:i9R9JSrqIz0QVLz3sz+i3YJdT7TTSLcfLLzJi9aZTuI= +github.com/hashicorp/go-msgpack v0.5.5/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-plugin v0.0.0-20180331002553-e8d22c780116 h1:Y4V/yReWjQo/Ngyc0w6C3EKXKincp4YgvXeo8lI4LrI= +github.com/hashicorp/go-plugin v0.0.0-20180331002553-e8d22c780116/go.mod h1:JSqWYsict+jzcj0+xElxyrBQRPNoiWQuddnxArJ7XHQ= +github.com/hashicorp/go-raftchunking v0.6.1 h1:moEnaG3gcwsWNyIBJoD5PCByE+Ewkqxh6N05CT+MbwA= +github.com/hashicorp/go-raftchunking v0.6.1/go.mod h1:cGlg3JtDy7qy6c/3Bu660Mic1JF+7lWqIwCFSb08fX0= +github.com/hashicorp/go-retryablehttp v0.5.3 h1:QlWt0KvWT0lq8MFppF9tsJGF+ynG7ztc2KIPhzRGk7s= +github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= +github.com/hashicorp/go-rootcerts v1.0.0 h1:ueI78wUjYExhCvMLow4icJnayNNFRgy0d9EGs/a1T44= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= +github.com/hashicorp/go-sockaddr v1.0.0 h1:GeH6tui99pF4NJgfnhp+L6+FfobzVW3Ah46sLo0ICXs= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0 h1:KaodqZuhUoZereWVIYmpUgZysurB1kBLX2j0MwMrUAE= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1 h1:fv1ep09latC32wFoVwnqcnKJGnMSdBanPczbHAYm1BE= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-version v0.0.0-20170202080759-03c5bf6be031 h1:c3Xdf5fTpk+hqhxqCO+ymqjfUXV9+GZqNgTtlnVzDos= +github.com/hashicorp/go-version v0.0.0-20170202080759-03c5bf6be031/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0 h1:CL2msUPvZTLb5O648aiLNJw3hnBxN2+1Jq8rCOH9wdo= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v0.0.0-20180906183839-65a6292f0157 h1:PJ+K03hio6ADVjEc6lFu5r866o67xEEMQ73CFdI6R2U= +github.com/hashicorp/hcl v0.0.0-20180906183839-65a6292f0157/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/hil v0.0.0-20160711231837-1e86c6b523c5 h1:uk280DXEbQiCOZgCOI3elFSeNxf8YIZiNsbr2pQLYD0= +github.com/hashicorp/hil v0.0.0-20160711231837-1e86c6b523c5/go.mod h1:KHvg/R2/dPtaePb16oW4qIyzkMxXOL38xjRN64adsts= +github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/mdns v1.0.1 h1:XFSOubp8KWB+Jd2PDyaX5xUd5bhSP/+pTDZVDMzZJM8= +github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= +github.com/hashicorp/memberlist v0.1.3 h1:EmmoJme1matNzb+hMpDuR/0sbJSUisxyqBGG676r31M= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/memberlist v0.1.4 h1:gkyML/r71w3FL8gUi74Vk76avkj/9lYAY9lvg0OcoGs= +github.com/hashicorp/memberlist v0.1.4/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/net-rpc-msgpackrpc v0.0.0-20151116020338-a14192a58a69 h1:lc3c72qGlIMDqQpQH82Y4vaglRMMFdJbziYWriR4UcE= +github.com/hashicorp/net-rpc-msgpackrpc v0.0.0-20151116020338-a14192a58a69/go.mod h1:/z+jUGRBlwVpUZfjute9jWaF6/HuhjuFQuL1YXzVD1Q= +github.com/hashicorp/raft v1.1.1 h1:HJr7UE1x/JrJSc9Oy6aDBHtNHUUBHjcQjTgvUVihoZs= +github.com/hashicorp/raft v1.1.1/go.mod h1:vPAJM8Asw6u8LxC3eJCUZmRP/E4QmUGE1R7g7k8sG/8= +github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea h1:xykPFhrBAS2J0VBzVa5e80b5ZtYuNQtgXjN40qBZlD4= +github.com/hashicorp/raft-boltdb v0.0.0-20171010151810-6e5ba93211ea/go.mod h1:pNv7Wc3ycL6F5oOWn+tPGo2gWD4a5X+yp/ntwdKLjRk= +github.com/hashicorp/serf v0.8.2 h1:YZ7UKsJv+hKjqGVUUbtE3HNj79Eln2oQ75tniF6iPt0= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= +github.com/hashicorp/vault v0.10.3 h1:3Hf6mwC4rggOq6ViWSoJ2yfk1oBS5ed58LLcP33gmEg= +github.com/hashicorp/vault v0.10.3/go.mod h1:KfSyffbKxoVyspOdlaGVjIuwLobi07qD1bAbosPMpP0= +github.com/hashicorp/vault-plugin-secrets-kv v0.0.0-20190318174639-195e0e9d07f1 h1:7IvvWArBoSjStPohKqHj3ksXNjcyPsyXYDIhCQw6Vtg= +github.com/hashicorp/vault-plugin-secrets-kv v0.0.0-20190318174639-195e0e9d07f1/go.mod h1:VJHHT2SC1tAPrfENQeBhLlb5FbZoKZM+oC/ROmEftz0= +github.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443 h1:O/pT5C1Q3mVXMyuqg7yuAWUg/jMZR1/0QTzTRdNR6Uw= +github.com/hashicorp/vic v1.5.1-0.20190403131502-bbfe86ec9443/go.mod h1:bEpDU35nTu0ey1EXjwNwPjI9xErAsoOCmcMb9GKvyxo= +github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d h1:kJCB4vdITiW1eC1vq2e6IsrXKrZit1bv/TDYFGMp4BQ= +github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28= +github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da h1:FjHUJJ7oBW4G/9j1KzlHaXL09LyMVM9rupS39lncbXk= +github.com/jarcoal/httpmock v0.0.0-20180424175123-9c70cfe4a1da/go.mod h1:ks+b9deReOc7jgqp+e7LuFiCBH6Rm5hL32cLcEAArb4= +github.com/jefferai/jsonx v0.0.0-20160721235117-9cc31c3135ee h1:AQ/QmCk6x8ECPpf2pkPtA4lyncEEBbs8VFnVXPYKhIs= +github.com/jefferai/jsonx v0.0.0-20160721235117-9cc31c3135ee/go.mod h1:N0t2vlmpe8nyZB5ouIbJQPDSR+mH6oe7xHB9VZHSUzM= github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869 h1:IPJ3dvxmJ4uczJe5YQdrYB16oTJlGSC/OyZDqUk9xX4= github.com/jehiah/go-strftime v0.0.0-20171201141054-1d33003b3869/go.mod h1:cJ6Cj7dQo+O6GJNiMx+Pa94qKj+TG8ONdKHgMNIyyag= github.com/jinzhu/copier v0.0.0-20190625015134-976e0346caa8 h1:mGIXW/lubQ4B+3bXTLxcTMTjUNDqoF6T/HUW9LbFx9s= github.com/jinzhu/copier v0.0.0-20190625015134-976e0346caa8/go.mod h1:yL958EeXv8Ylng6IfnvG4oflryUi3vgA3xPs9hmII1s= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af h1:pmfjZENx5imkbgOkpRUYLnmbU7UEFbjtDA2hxJ1ichM= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0 h1:VKV+ZcuP6l3yW9doeqz6ziZGgcynBVQO+obU0+0hcPo= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/joyent/triton-go v0.0.0-20180628001255-830d2b111e62 h1:JHCT6xuyPUrbbgAPE/3dqlvUKzRHMNuTBKKUb6OeR/k= +github.com/joyent/triton-go v0.0.0-20180628001255-830d2b111e62/go.mod h1:U+RSyWxWd04xTqnuOQxnai7XGS2PrPY2cfGoDKtMHjA= github.com/json-iterator/go v1.1.5/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7 h1:KfgG9LzI+pYjr4xvmz/5H4FXjokeP+rlHLhv3iH62Fo= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jtolds/gls v4.2.1+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/keybase/go-crypto v0.0.0-20180614160407-5114a9a81e1b h1:VE6r2OwP5gj+Z9aCkSKl3MlmnZbfMAjhvR5T7abKHEo= +github.com/keybase/go-crypto v0.0.0-20180614160407-5114a9a81e1b/go.mod h1:ghbZscTyKdM07+Fw3KSi0hcJm+AlEUWj8QLlPtijN/M= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= @@ -109,62 +318,149 @@ github.com/lestrrat/go-file-rotatelogs v0.0.0-20180223000712-d3151e2a480f h1:sgU github.com/lestrrat/go-file-rotatelogs v0.0.0-20180223000712-d3151e2a480f/go.mod h1:UGmTpUd3rjbtfIpwAPrcfmGf/Z1HS95TATB+m57TPB8= github.com/lestrrat/go-strftime v0.0.0-20180220042222-ba3bf9c1d042 h1:Bvq8AziQ5jFF4BHGAEDSqwPW1NJS3XshxbRCxtjFAZc= github.com/lestrrat/go-strftime v0.0.0-20180220042222-ba3bf9c1d042/go.mod h1:TPpsiPUEh0zFL1Snz4crhMlBe60PYxRHr5oFF3rRYg0= +github.com/lib/pq v0.0.0-20180523175426-90697d60dd84 h1:it29sI2IM490luSc3RAhp5WuCYnc6RtbfLVAB7nmC5M= +github.com/lib/pq v0.0.0-20180523175426-90697d60dd84/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.0.14 h1:9jZdLNd/P4+SfEJ0TNyxYpsK8N4GtfylBLqtbYN1sbA= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/mitchellh/cli v1.0.0 h1:iGBIsUe3+HZ/AD/Vd7DErOt5sU9fa8Uj7A2s1aggv1Y= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= +github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/go-homedir v1.0.0 h1:vKb8ShqSby24Yrqr/yDYkuFz8d0WUjys40rvnGC8aR0= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0 h1:fzU/JVNcaqHQEcVFAKeR41fkiLdIPrefOvVG1VZ96U0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/hashstructure v0.0.0-20170609045927-2bca23e0e452 h1:hOY53G+kBFhbYFpRVxHl5eS7laP6B1+Cq+Z9Dry1iMU= +github.com/mitchellh/hashstructure v0.0.0-20170609045927-2bca23e0e452/go.mod h1:QjSHrPWS+BGUVBYkbTZWEnOh3G1DutKwClXU/ABz6AQ= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mitchellh/reflectwalk v1.0.1 h1:FVzMWA5RllMAKIdUSC8mdWo3XtwoecrH79BY70sEEpE= +github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9M+97sNutRR1RKhG96O6jWumTTnw= +github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nacos-group/nacos-sdk-go v0.0.0-20190723125407-0242d42e3dbb h1:lbmvw8r9W55w+aQgWn35W1nuleRIECMoqUrmwAOAvoI= github.com/nacos-group/nacos-sdk-go v0.0.0-20190723125407-0242d42e3dbb/go.mod h1:CEkSvEpoveoYjA81m4HNeYQ0sge0LFGKSEqO3JKHllo= +github.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2 h1:BQ1HW7hr4IVovMwWg0E0PYcyW8CzqDcVmaew9cujU4s= +github.com/nicolai86/scaleway-sdk v1.10.2-0.20180628010248-798f60e20bb2/go.mod h1:TLb2Sg7HQcgGdloNxkrmtgDNR9uVYF3lfdFIN4Ro6Sk= +github.com/oklog/run v0.0.0-20180308005104-6934b124db28 h1:Hbr3fbVPXea52oPQeP7KLSxP52g6SFaNY1IqAmUyEW0= +github.com/oklog/run v0.0.0-20180308005104-6934b124db28/go.mod h1:dlhp/R75TPv97u0XWUtDeV/lRKWPKSdTuV0TZvrmrQA= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/opencontainers/go-digest v1.0.0-rc1 h1:WzifXhOVOEOuFYOJAW6aQqW0TooG2iki3E3Ii+WN7gQ= +github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= +github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/runc v0.1.1 h1:GlxAyO6x8rfZYN9Tt0Kti5a/cP41iuiO2yYT0IJGY8Y= +github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/ory/dockertest v3.3.4+incompatible h1:VrpM6Gqg7CrPm3bL4Wm1skO+zFWLbh7/Xb5kGEbJRh8= +github.com/ory/dockertest v3.3.4+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= +github.com/packethost/packngo v0.1.1-0.20180711074735-b9cb5096f54c h1:vwpFWvAO8DeIZfFeqASzZfsxuWPno9ncAebBEP0N3uE= +github.com/packethost/packngo v0.1.1-0.20180711074735-b9cb5096f54c/go.mod h1:otzZQXgoO96RTzDB/Hycg0qZcXZsWJGJRSXbmEIJ+4M= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c h1:Lgl0gzECD8GnQ5QCWA8o6BtfL6mDH5rQgM4/fX3avOs= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= +github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/patrickmn/go-cache v0.0.0-20180527043350-9f6ff22cfff8 h1:BR6MM54q4W9pn0SySwg6yctZtBKlTdUq6a+b0kArBnE= +github.com/patrickmn/go-cache v0.0.0-20180527043350-9f6ff22cfff8/go.mod h1:3Qf8kWWT7OJRJbdiICTKqZju1ZixQ/KpMGzzAfe6+WQ= +github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1 h1:ccV59UEOTzVDnDUEFdT95ZzHVZ+5+158q8+SJb2QV5w= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.2/go.mod h1:OsXs2jCmiKlQ1lTBmv21f2mNfw4xf/QclQDMrYNZzcM= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0 h1:BQ53HtBmfOitExawJ6LokA4x8ov/z0SYYb0+HxJfRI8= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx/RA8rT8tKFRuGUZhuA90OyIBpPCXkcbwU8DE= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181126121408-4724e9255275/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0 h1:kRhiuYSXR3+uv2IbVbZhUxK5zVD/2pp3Gd2PpvPkpEo= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20181204211112-1dc9a6cbc91a/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3 h1:CTwfnzjQ+8dS6MhHHu4YswVAD99sL2wjPqP+VkURmKE= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03 h1:Wdi9nwnhFNAlseAOekn6B5G/+GMtks9UKbvRU/CMM/o= +github.com/renier/xmlrpc v0.0.0-20170708154548-ce4a1a486c03/go.mod h1:gRAiPF5C5Nd0eyyRdqIu9qTiFSoZzpTq727b5B8fkkU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735 h1:7YvPJVmEeFHR1Tj9sZEYsmarJEQfMVYpd/Vyy/A8dqE= +github.com/ryanuber/go-glob v0.0.0-20170128012129-256dc444b735/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIHxIXzX/Yc= github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec h1:6ncX5ko6B9LntYM0YBRXkiSaZMmLYeZ/NWcmeB43mMY= github.com/samuel/go-zookeeper v0.0.0-20180130194729-c4fab1ac1bec/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/shirou/gopsutil v0.0.0-20181107111621-48177ef5f880 h1:1Ge4j/3uB2rxzPWD3TC+daeCw+w91z8UCUL/7WH5gn8= +github.com/shirou/gopsutil v0.0.0-20181107111621-48177ef5f880/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= +github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4 h1:udFKJ0aHUL60LboW/A+DfgoHVedieIzIXE8uylPue0U= +github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/smartystreets/assertions v0.0.0-20180820201707-7c9eb446e3cf/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20180222194500-ef6db91d284a/go.mod h1:XDJAKZRPZ1CvBcN2aX5YOUTYGHki24fSF0Iv48Ibg0s= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a h1:pa8hGb/2YqsZKovtsgrwcDH1RZhVbTKCjLp47XpqCDs= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v0.0.0-20190710185942-9d28bd7c0945 h1:N8Bg45zpk/UcpNGnfJt2y/3lRWASHNTUET8owPYCgYI= +github.com/smartystreets/goconvey v0.0.0-20190710185942-9d28bd7c0945/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/softlayer/softlayer-go v0.0.0-20180806151055-260589d94c7d h1:bVQRCxQvfjNUeRqaY/uT0tFuvuFY0ulgnczuR684Xic= +github.com/softlayer/softlayer-go v0.0.0-20180806151055-260589d94c7d/go.mod h1:Cw4GTlQccdRGSEf6KiMju767x0NEHE0YIVPJSaXjlsw= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/tebeka/strftime v0.1.3 h1:5HQXOqWKYRFfNyBMNVc9z5+QzuBtIXy03psIhtdJYto= github.com/tebeka/strftime v0.1.3/go.mod h1:7wJm3dZlpr4l/oVK0t1HYIc4rMzQ2XJlOMIUJUJH6XQ= +github.com/tent/http-link-go v0.0.0-20130702225549-ac974c61c2f9/go.mod h1:RHkNRtSLfOK7qBTHaeSX1D6BNpI3qw7NTxsmNr4RvN8= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/toolkits/concurrent v0.0.0-20150624120057-a4371d70e3e3 h1:kF/7m/ZU+0D4Jj5eZ41Zm3IH/J8OElK1Qtd7tVKAwLk= github.com/toolkits/concurrent v0.0.0-20150624120057-a4371d70e3e3/go.mod h1:QDlpd3qS71vYtakd2hmdpqhJ9nwv6mD6A30bQ1BPBFE= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926 h1:G3dpKMzFDjgEh2q1Z7zUUtKa8ViPtH+ocF0bE0g00O8= +github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= +github.com/vmware/govmomi v0.18.0 h1:f7QxSmP7meCtoAmiKZogvVbLInT+CZx6Px6K5rYsJZo= +github.com/vmware/govmomi v0.18.0/go.mod h1:URlwyTFZX72RmxtxuaFL2Uj3fD1JTvZdx59bHWk6aFU= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= go.etcd.io/bbolt v1.3.3 h1:MUGmc65QhB3pIlaQ5bB4LwqSj6GIonVJXpZiaKNyaKk= @@ -178,55 +474,103 @@ go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/ go.uber.org/zap v1.10.0 h1:ORx85nbTijNz8ljznvCMR1ZBIPKFn3jQrag10X2AsuM= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2 h1:VklqNMn3ovrHsnt90PveolxSbWFaJdECFbxSq0Mqo2M= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c h1:Vj5n4GlwjmQteupaxJ9+0FNOmBrHfq7vN4btdGoDZgI= +golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190320064053-1272bf9dcd53/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20170807180024-9a379c6b3e95/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be h1:vEDujvNQGv4jgYKudGeI/+DAX4Jffq6hpD55MmoEvKs= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58 h1:8gQV6CLnAEikrhgkHFbMAEhagSSnXWGV915qUMm9mrU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190508220229-2d0786266e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190523142557-0e01d883c5c5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3 h1:4y9KwBHBgBNwDbtu44R5o1fdOCQUEXhbk/P4A9WmJq0= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4 h1:SvFZT6jyqRaOeXpc5h/JSfZenJ2O330aBsf7JfSUXmQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +google.golang.org/api v0.0.0-20180829000535-087779f1d2c9 h1:z1TeLUmxf9ws9KLICfmX+KGXTs+rjm+aGWzfsv7MZ9w= +google.golang.org/api v0.0.0-20180829000535-087779f1d2c9/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/appengine v1.1.0 h1:igQkv0AAhEIvTEpD5LIpAfav2eeVO9HBTjvKHVJPRSs= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8 h1:Nw54tB0rB7hY/N0NQvRW8DG4Yk3Q6T9cu9RcFQDu1tc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.22.1 h1:/7cs52RnTJmD43s3uxzlq2U7nqVTd/37viQwMrMNlOM= google.golang.org/grpc v1.22.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d h1:TxyelI5cVkbREznMhfzycHdkp5cLA7DpE+GKjSslYhM= +gopkg.in/asn1-ber.v1 v1.0.0-20181015200546-f715ec2f112d/go.mod h1:cuepJuh7vyXfUyUwEgHQXw849cJrilpS5NeIjOWESAw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.42.0 h1:7N3gPTt50s8GuLortA00n8AqRTk75qOP98+mTPpgzRk= gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/mgo.v2 v2.0.0-20160818020120-3f83fa500528 h1:/saqWwm73dLmuzbNhe92F0QsZ/KiFND+esHco2v1hiY= +gopkg.in/mgo.v2 v2.0.0-20160818020120-3f83fa500528/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= +gopkg.in/ory-am/dockertest.v3 v3.3.4 h1:oen8RiwxVNxtQ1pRoV4e4jqh6UjNsOuIZ1NXns6jdcw= +gopkg.in/ory-am/dockertest.v3 v3.3.4/go.mod h1:s9mmoLkaGeAh97qygnNj4xWkiN7e1SKekYC6CovU+ek= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.3.1 h1:SK5KegNXmKmqE342YYN2qPHEnUYeoMiXXl1poUlI+o4= +gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gotest.tools v2.2.0+incompatible h1:y0IMTfclpMdsdIbr6uwmJn5/WZ7vFuObxDMdrylFM3A= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +istio.io/gogo-genproto v0.0.0-20190124151557-6d926a6e6feb/go.mod h1:eIDJ6jNk/IeJz6ODSksHl5Aiczy5JUq6vFhJWI5OtiI= +k8s.io/api v0.0.0-20180806132203-61b11ee65332/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= +k8s.io/api v0.0.0-20190325185214-7544f9db76f6 h1:9MWtbqhwTyDvF4cS1qAhxDb9Mi8taXiAu+5nEacl7gY= +k8s.io/api v0.0.0-20190325185214-7544f9db76f6/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= +k8s.io/apimachinery v0.0.0-20180821005732-488889b0007f/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= +k8s.io/apimachinery v0.0.0-20190223001710-c182ff3b9841 h1:Q4RZrHNtlC/mSdC1sTrcZ5RchC/9vxLVj57pWiCBKv4= +k8s.io/apimachinery v0.0.0-20190223001710-c182ff3b9841/go.mod h1:ccL7Eh7zubPUSh9A3USN90/OzHNSVN6zxzde07TDCL0= +k8s.io/client-go v8.0.0+incompatible h1:tTI4hRmb1DRMl4fG6Vclfdi6nTM82oIrTT7HfitmxC4= +k8s.io/client-go v8.0.0+incompatible/go.mod h1:7vJpHMYJwNQCWgzmNV+VYUl1zCObLyodBc8nIyt8L5s= diff --git a/protocol/dubbo/pool.go b/protocol/dubbo/pool.go index 546a5b335aee3e71a6e00e49888710edb20c694a..ecd57e466a01b361a429cfd7d6eef4a3345574df 100644 --- a/protocol/dubbo/pool.go +++ b/protocol/dubbo/pool.go @@ -275,6 +275,7 @@ func (p *gettyRPCClientPool) close() { func (p *gettyRPCClientPool) getGettyRpcClient(protocol, addr string) (*gettyRPCClient, error) { p.Lock() + defer p.Unlock() if p.conns == nil { return nil, errClientPoolClosed } @@ -290,12 +291,9 @@ func (p *gettyRPCClientPool) getGettyRpcClient(protocol, addr string) (*gettyRPC continue } conn.created = now //update created time - - p.Unlock() return conn, nil } // create new conn - p.Unlock() return newGettyRPCClientConn(p, protocol, addr) } diff --git a/protocol/jsonrpc/http.go b/protocol/jsonrpc/http.go index 46e2da06b77c070cf15ff6ee6b4781c453022747..b64a3a344e95164b8f49556cdc155bf34642a83b 100644 --- a/protocol/jsonrpc/http.go +++ b/protocol/jsonrpc/http.go @@ -146,7 +146,6 @@ func (c *HTTPClient) Call(ctx context.Context, service common.URL, req *Request, // !!The high level of complexity and the likelihood that the fasthttp client has not been extensively used // in production means that you would need to expect a very large benefit to justify the adoption of fasthttp today. -// from: http://big-elephants.com/2016-12/fasthttp-client/ func (c *HTTPClient) Do(addr, path string, httpHeader http.Header, body []byte) ([]byte, error) { u := url.URL{Host: strings.TrimSuffix(addr, ":"), Path: path} httpReq, err := http.NewRequest("POST", u.String(), bytes.NewBuffer(body)) diff --git a/protocol/protocolwrapper/protocol_filter_wrapper_test.go b/protocol/protocolwrapper/protocol_filter_wrapper_test.go index 8a332490f71ead601d151fe5e27390eadcc1cbd8..98bd206325ffd38a325b667f7f0bc2684bbf626f 100644 --- a/protocol/protocolwrapper/protocol_filter_wrapper_test.go +++ b/protocol/protocolwrapper/protocol_filter_wrapper_test.go @@ -30,7 +30,9 @@ import ( "github.com/apache/dubbo-go/common" "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/common/extension" - "github.com/apache/dubbo-go/filter/impl" + "github.com/apache/dubbo-go/common/logger" + "github.com/apache/dubbo-go/filter" + //"github.com/apache/dubbo-go/filter/impl" "github.com/apache/dubbo-go/protocol" ) @@ -40,7 +42,7 @@ func TestProtocolFilterWrapper_Export(t *testing.T) { u := common.NewURLWithOptions( common.WithParams(url.Values{}), - common.WithParamsValue(constant.SERVICE_FILTER_KEY, impl.ECHO)) + common.WithParamsValue(constant.SERVICE_FILTER_KEY, "echo")) exporter := filtProto.Export(protocol.NewBaseInvoker(*u)) _, ok := exporter.GetInvoker().(*FilterInvoker) assert.True(t, ok) @@ -52,8 +54,35 @@ func TestProtocolFilterWrapper_Refer(t *testing.T) { u := common.NewURLWithOptions( common.WithParams(url.Values{}), - common.WithParamsValue(constant.REFERENCE_FILTER_KEY, impl.ECHO)) + common.WithParamsValue(constant.REFERENCE_FILTER_KEY, "echo")) invoker := filtProto.Refer(*u) _, ok := invoker.(*FilterInvoker) assert.True(t, ok) } + +//the same as echo filter, for test +func init() { + extension.SetFilter("echo", GetFilter) +} + +type EchoFilterForTest struct{} + +func (ef *EchoFilterForTest) Invoke(invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result { + logger.Infof("invoking echo filter.") + logger.Debugf("%v,%v", invocation.MethodName(), len(invocation.Arguments())) + if invocation.MethodName() == constant.ECHO && len(invocation.Arguments()) == 1 { + return &protocol.RPCResult{ + Rest: invocation.Arguments()[0], + } + } + + return invoker.Invoke(invocation) +} + +func (ef *EchoFilterForTest) OnResponse(result protocol.Result, invoker protocol.Invoker, invocation protocol.Invocation) protocol.Result { + return result +} + +func GetFilter() filter.Filter { + return &EchoFilterForTest{} +} diff --git a/protocol/RpcStatus.go b/protocol/rpc_status.go similarity index 98% rename from protocol/RpcStatus.go rename to protocol/rpc_status.go index 78796b6beaf24dac33d7e0210703a9027f9fe568..3a8bfbc87f285e0e86269d44c47d6771566d97b1 100644 --- a/protocol/RpcStatus.go +++ b/protocol/rpc_status.go @@ -15,7 +15,6 @@ * limitations under the License. */ -// @author yiji@apache.org package protocol import ( diff --git a/registry/base_configuration_listener.go b/registry/base_configuration_listener.go index f209049877900edfb3739f34be037354654dda0d..791996340d6b34e024a2f21554d48bd38ace52cd 100644 --- a/registry/base_configuration_listener.go +++ b/registry/base_configuration_listener.go @@ -21,16 +21,22 @@ type BaseConfigurationListener struct { func (bcl *BaseConfigurationListener) Configurators() []config_center.Configurator { return bcl.configurators } -func (bcl *BaseConfigurationListener) InitWith(key string, listener config_center.ConfigurationListener, f func(url *common.URL) config_center.Configurator) error { +func (bcl *BaseConfigurationListener) InitWith(key string, listener config_center.ConfigurationListener, f func(url *common.URL) config_center.Configurator) { bcl.dynamicConfiguration = config.GetEnvInstance().GetDynamicConfiguration() + if bcl.dynamicConfiguration == nil { + //set configurators to empty + bcl.configurators = []config_center.Configurator{} + return + } bcl.defaultConfiguratorFunc = f bcl.dynamicConfiguration.AddListener(key, listener) if rawConfig, err := bcl.dynamicConfiguration.GetConfig(key, config_center.WithGroup(constant.DUBBO)); err != nil { - return err + //set configurators to empty + bcl.configurators = []config_center.Configurator{} + return } else if len(rawConfig) > 0 { bcl.genConfiguratorFromRawRule(rawConfig) } - return nil } func (bcl *BaseConfigurationListener) Process(event *config_center.ConfigChangeEvent) { diff --git a/registry/consul/listener.go b/registry/consul/listener.go new file mode 100644 index 0000000000000000000000000000000000000000..b047a4c08c9f6c809ed3dca8bd0d06ceaa576cae --- /dev/null +++ b/registry/consul/listener.go @@ -0,0 +1,206 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package consul + +import ( + "sync" +) + +import ( + consul "github.com/hashicorp/consul/api" + "github.com/hashicorp/consul/api/watch" + perrors "github.com/pkg/errors" +) + +import ( + "github.com/apache/dubbo-go/common" + "github.com/apache/dubbo-go/common/logger" + "github.com/apache/dubbo-go/registry" + "github.com/apache/dubbo-go/remoting" +) + +// Consul listener wraps the consul watcher, to +// listen the service information change in consul +// registry. +type consulListener struct { + // Registry url. + registryUrl common.URL + + // Consumer url. + consumerUrl common.URL + + // Consul watcher. + plan *watch.Plan + + // Most recent service urls return by + // watcher. + urls []common.URL + + // All service information changes will + // be wrapped into ServiceEvent, and be + // sent into eventCh. Then listener's + // Next method will get event from eventCh, + // and return to upstream. + eventCh chan *registry.ServiceEvent + + // All errors, happening in the listening + // period, will be caught and send into + // errCh. Then listener's Next method will + // get error from errCh, and return to + // upstream. + errCh chan error + + // Done field represents whether consul + // listener has been closed. When closing + // listener, this field will be closed, + // and will notify consul watcher to close. + done chan struct{} + + // After listener notifies consul watcher + // to close, listener will call wg.wait to + // make sure that consul watcher is closed + // before the listener closes. + wg sync.WaitGroup +} + +func newConsulListener(registryUrl common.URL, consumerUrl common.URL) (*consulListener, error) { + params := make(map[string]interface{}, 8) + params["type"] = "service" + params["service"] = consumerUrl.Service() + params["tag"] = "dubbo" + params["passingonly"] = true + plan, err := watch.Parse(params) + if err != nil { + return nil, err + } + + listener := &consulListener{ + registryUrl: registryUrl, + consumerUrl: consumerUrl, + plan: plan, + urls: make([]common.URL, 0, 8), + eventCh: make(chan *registry.ServiceEvent, 32), + errCh: make(chan error, 32), + done: make(chan struct{}), + } + + // Set handler to consul watcher, and + // make watcher begin to watch service + // information change. + listener.plan.Handler = listener.handler + listener.wg.Add(1) + go listener.run() + return listener, nil +} + +// Wrap the consul watcher run api. There are three +// conditions that will finish the run: +// - close done +// - call plan.Stop +// - close eventCh and errCh +// If run meets first two conditions, it will close +// gracefully. However, if run meets the last condition, +// run will close with panic, so use recover to cover +// this case. +func (l *consulListener) run() { + defer func() { + p := recover() + if p != nil { + logger.Warnf("consul listener finish with panic %v", p) + } + l.wg.Done() + }() + + for { + select { + case <-l.done: + return + default: + err := l.plan.Run(l.registryUrl.Location) + if err != nil { + l.errCh <- err + } + } + } +} + +func (l *consulListener) handler(idx uint64, raw interface{}) { + var ( + service *consul.ServiceEntry + event *registry.ServiceEvent + url common.URL + ok bool + err error + ) + + services, ok := raw.([]*consul.ServiceEntry) + if !ok { + err = perrors.New("handler get non ServiceEntry type parameter") + l.errCh <- err + return + } + newUrls := make([]common.URL, 0, 8) + events := make([]*registry.ServiceEvent, 0, 8) + + for _, service = range services { + url, err = retrieveURL(service) + if err != nil { + l.errCh <- err + return + } + newUrls = append(newUrls, url) + } + + for _, url = range l.urls { + ok = in(url, newUrls) + if !ok { + event := ®istry.ServiceEvent{Action: remoting.EventTypeDel, Service: url} + events = append(events, event) + } + } + + for _, url = range newUrls { + ok = in(url, l.urls) + if !ok { + event := ®istry.ServiceEvent{Action: remoting.EventTypeAdd, Service: url} + events = append(events, event) + } + } + + l.urls = newUrls + for _, event = range events { + l.eventCh <- event + } +} + +func (l *consulListener) Next() (*registry.ServiceEvent, error) { + select { + case event := <-l.eventCh: + return event, nil + case err := <-l.errCh: + return nil, err + } +} + +func (l *consulListener) Close() { + close(l.done) + l.plan.Stop() + close(l.eventCh) + close(l.errCh) + l.wg.Wait() +} diff --git a/registry/consul/listener_test.go b/registry/consul/listener_test.go new file mode 100644 index 0000000000000000000000000000000000000000..7dccbaa9f590e08d9aab539789b8348999672fde --- /dev/null +++ b/registry/consul/listener_test.go @@ -0,0 +1,33 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package consul + +import ( + "github.com/stretchr/testify/assert" +) + +import ( + "github.com/apache/dubbo-go/remoting" +) + +func (suite *consulRegistryTestSuite) testListener(action remoting.EventType) { + event, err := suite.listener.Next() + assert.NoError(suite.t, err) + assert.Equal(suite.t, action, event.Action) + assert.True(suite.t, suite.providerUrl.URLEqual(event.Service)) +} diff --git a/registry/consul/registry.go b/registry/consul/registry.go new file mode 100644 index 0000000000000000000000000000000000000000..d2e69ecec31ba796ce8e6198a0b64729f4d92f6e --- /dev/null +++ b/registry/consul/registry.go @@ -0,0 +1,186 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package consul + +import ( + "strconv" + "time" +) + +import ( + consul "github.com/hashicorp/consul/api" + perrors "github.com/pkg/errors" +) + +import ( + "github.com/apache/dubbo-go/common" + "github.com/apache/dubbo-go/common/constant" + "github.com/apache/dubbo-go/common/extension" + "github.com/apache/dubbo-go/common/logger" + "github.com/apache/dubbo-go/registry" +) + +const ( + RegistryConnDelay = 3 +) + +func init() { + extension.SetRegistry("consul", newConsulRegistry) +} + +// Consul registry wraps the consul client, to +// register and subscribe service. +type consulRegistry struct { + // Registry url. + *common.URL + + // Consul client. + client *consul.Client + + // Done field represents whether + // consul registry is closed. + done chan struct{} +} + +func newConsulRegistry(url *common.URL) (registry.Registry, error) { + config := &consul.Config{Address: url.Location} + client, err := consul.NewClient(config) + if err != nil { + return nil, err + } + + r := &consulRegistry{ + URL: url, + client: client, + done: make(chan struct{}), + } + + return r, nil +} + +func (r *consulRegistry) Register(url common.URL) error { + var err error + + role, _ := strconv.Atoi(r.URL.GetParam(constant.ROLE_KEY, "")) + if role == common.PROVIDER { + err = r.register(url) + if err != nil { + return err + } + } + return nil +} + +func (r *consulRegistry) register(url common.URL) error { + service, err := buildService(url) + if err != nil { + return err + } + return r.client.Agent().ServiceRegister(service) +} + +func (r *consulRegistry) Unregister(url common.URL) error { + var err error + + role, _ := strconv.Atoi(r.URL.GetParam(constant.ROLE_KEY, "")) + if role == common.PROVIDER { + err = r.unregister(url) + if err != nil { + return err + } + } + return nil +} + +func (r *consulRegistry) unregister(url common.URL) error { + return r.client.Agent().ServiceDeregister(buildId(url)) +} + +func (r *consulRegistry) subscribe(url *common.URL) (registry.Listener, error) { + var ( + listener registry.Listener + err error + ) + + role, _ := strconv.Atoi(r.URL.GetParam(constant.ROLE_KEY, "")) + if role == common.CONSUMER { + listener, err = r.getListener(*url) + if err != nil { + return nil, err + } + } + return listener, nil +} + +//subscibe from registry +func (r *consulRegistry) Subscribe(url *common.URL, notifyListener registry.NotifyListener) { + for { + if !r.IsAvailable() { + logger.Warnf("event listener game over.") + time.Sleep(time.Duration(RegistryConnDelay) * time.Second) + return + } + + listener, err := r.subscribe(url) + if err != nil { + if !r.IsAvailable() { + logger.Warnf("event listener game over.") + return + } + logger.Warnf("getListener() = err:%v", perrors.WithStack(err)) + time.Sleep(time.Duration(RegistryConnDelay) * time.Second) + continue + } + + for { + if serviceEvent, err := listener.Next(); err != nil { + logger.Warnf("Selector.watch() = error{%v}", perrors.WithStack(err)) + listener.Close() + time.Sleep(time.Duration(RegistryConnDelay) * time.Second) + return + } else { + logger.Infof("update begin, service event: %v", serviceEvent.String()) + notifyListener.Notify(serviceEvent) + } + + } + + } +} + +func (r *consulRegistry) getListener(url common.URL) (registry.Listener, error) { + listener, err := newConsulListener(*r.URL, url) + return listener, err +} + +func (r *consulRegistry) GetUrl() common.URL { + return *r.URL +} + +func (r *consulRegistry) IsAvailable() bool { + select { + case <-r.done: + return false + default: + return true + } +} + +func (r *consulRegistry) Destroy() { + close(r.done) +} diff --git a/registry/consul/registry_test.go b/registry/consul/registry_test.go new file mode 100644 index 0000000000000000000000000000000000000000..ff8c2e23163e85b128436bde001455f316b28dc6 --- /dev/null +++ b/registry/consul/registry_test.go @@ -0,0 +1,57 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package consul + +import ( + "github.com/stretchr/testify/assert" +) + +func (suite *consulRegistryTestSuite) testNewProviderRegistry() { + providerRegistryUrl := newProviderRegistryUrl(registryHost, registryPort) + providerRegistry, err := newConsulRegistry(providerRegistryUrl) + assert.NoError(suite.t, err) + suite.providerRegistry = providerRegistry +} + +func (suite *consulRegistryTestSuite) testNewConsumerRegistry() { + consumerRegistryUrl := newConsumerRegistryUrl(registryHost, registryPort) + consumerRegistry, err := newConsulRegistry(consumerRegistryUrl) + assert.NoError(suite.t, err) + suite.consumerRegistry = consumerRegistry.(*consulRegistry) +} + +func (suite *consulRegistryTestSuite) testRegister() { + providerUrl := newProviderUrl(providerHost, providerPort, service, protocol) + suite.providerUrl = providerUrl + err := suite.providerRegistry.Register(providerUrl) + assert.NoError(suite.t, err) +} + +func (suite *consulRegistryTestSuite) testUnregister() { + consulProviderRegistry, _ := suite.providerRegistry.(*consulRegistry) + err := consulProviderRegistry.Unregister(suite.providerUrl) + assert.NoError(suite.t, err) +} + +func (suite *consulRegistryTestSuite) testSubscribe() { + consumerUrl := newConsumerUrl(consumerHost, consumerPort, service, protocol) + suite.consumerUrl = consumerUrl + listener, err := suite.consumerRegistry.subscribe(&consumerUrl) + assert.NoError(suite.t, err) + suite.listener = listener +} diff --git a/registry/consul/utils.go b/registry/consul/utils.go new file mode 100644 index 0000000000000000000000000000000000000000..6ecb0573ec5683d66795f539a8beb2eff5b6be2c --- /dev/null +++ b/registry/consul/utils.go @@ -0,0 +1,114 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package consul + +import ( + "context" + "crypto/md5" + "encoding/hex" + "fmt" + "strconv" +) + +import ( + consul "github.com/hashicorp/consul/api" + perrors "github.com/pkg/errors" +) + +import ( + "github.com/apache/dubbo-go/common" + "github.com/apache/dubbo-go/common/utils" +) + +func buildId(url common.URL) string { + t := md5.Sum([]byte(url.String())) + return hex.EncodeToString(t[:]) +} + +func buildService(url common.URL) (*consul.AgentServiceRegistration, error) { + var err error + + // id + id := buildId(url) + + // address + if url.Ip == "" { + url.Ip, _ = utils.GetLocalIP() + } + + // port + port, err := strconv.Atoi(url.Port) + if err != nil { + return nil, err + } + + // tcp + tcp := fmt.Sprintf("%s:%d", url.Ip, port) + + // tags + tags := make([]string, 0, 8) + for k := range url.Params { + tags = append(tags, k+"="+url.Params.Get(k)) + } + tags = append(tags, "dubbo") + + // meta + meta := make(map[string]string, 8) + meta["url"] = url.String() + + // check + check := &consul.AgentServiceCheck{ + TCP: tcp, + Interval: url.GetParam("consul-check-interval", "10s"), + Timeout: url.GetParam("consul-check-timeout", "1s"), + DeregisterCriticalServiceAfter: url.GetParam("consul-deregister-critical-service-after", "20s"), + } + + service := &consul.AgentServiceRegistration{ + Name: url.Service(), + ID: id, + Address: url.Ip, + Port: port, + Tags: tags, + Meta: meta, + Check: check, + } + + return service, nil +} + +func retrieveURL(service *consul.ServiceEntry) (common.URL, error) { + url, ok := service.Service.Meta["url"] + if !ok { + return common.URL{}, perrors.New("retrieve url fails with no url key in service meta") + } + url1, err := common.NewURL(context.Background(), url) + if err != nil { + return common.URL{}, perrors.WithStack(err) + } + return url1, nil +} + +func in(url common.URL, urls []common.URL) bool { + for _, url1 := range urls { + if url.URLEqual(url1) { + return true + } + } + return false +} diff --git a/registry/consul/utils_test.go b/registry/consul/utils_test.go new file mode 100644 index 0000000000000000000000000000000000000000..d66600b773ee78b43ac3da4edf8849d0019c744d --- /dev/null +++ b/registry/consul/utils_test.go @@ -0,0 +1,226 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package consul + +import ( + "fmt" + "io/ioutil" + "net" + "net/url" + "os" + "strconv" + "sync" + "testing" +) + +import ( + "github.com/hashicorp/consul/agent" +) + +import ( + "github.com/apache/dubbo-go/common" + "github.com/apache/dubbo-go/common/constant" + "github.com/apache/dubbo-go/registry" + "github.com/apache/dubbo-go/remoting" +) + +var ( + registryHost = "localhost" + registryPort = 8500 + providerHost = "localhost" + providerPort = 8000 + consumerHost = "localhost" + consumerPort = 8001 + service = "HelloWorld" + protocol = "tcp" +) + +func newProviderRegistryUrl(host string, port int) *common.URL { + url1 := common.NewURLWithOptions( + common.WithIp(host), + common.WithPort(strconv.Itoa(port)), + common.WithParams(url.Values{}), + common.WithParamsValue(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)), + ) + return url1 +} + +func newConsumerRegistryUrl(host string, port int) *common.URL { + url1 := common.NewURLWithOptions( + common.WithIp(host), + common.WithPort(strconv.Itoa(port)), + common.WithParams(url.Values{}), + common.WithParamsValue(constant.ROLE_KEY, strconv.Itoa(common.CONSUMER)), + ) + return url1 +} + +func newProviderUrl(host string, port int, service string, protocol string) common.URL { + url1 := common.NewURLWithOptions( + common.WithIp(host), + common.WithPort(strconv.Itoa(port)), + common.WithPath(service), + common.WithProtocol(protocol), + ) + return *url1 +} + +func newConsumerUrl(host string, port int, service string, protocol string) common.URL { + url1 := common.NewURLWithOptions( + common.WithIp(host), + common.WithPort(strconv.Itoa(port)), + common.WithPath(service), + common.WithProtocol(protocol), + ) + return *url1 +} + +type testConsulAgent struct { + dataDir string + testAgent *agent.TestAgent +} + +func newConsulAgent(t *testing.T, port int) *testConsulAgent { + dataDir, _ := ioutil.TempDir("./", "agent") + hcl := ` + ports { + http = ` + strconv.Itoa(port) + ` + } + data_dir = "` + dataDir + `" + ` + testAgent := &agent.TestAgent{Name: t.Name(), DataDir: dataDir, HCL: hcl} + testAgent.Start(t) + + consulAgent := &testConsulAgent{ + dataDir: dataDir, + testAgent: testAgent, + } + return consulAgent +} + +func (consulAgent *testConsulAgent) close() { + consulAgent.testAgent.Shutdown() + os.RemoveAll(consulAgent.dataDir) +} + +type testServer struct { + listener net.Listener + wg sync.WaitGroup + done chan struct{} +} + +func newServer(host string, port int) *testServer { + addr := fmt.Sprintf("%s:%d", host, port) + tcpAddr, _ := net.ResolveTCPAddr("tcp", addr) + listener, _ := net.ListenTCP("tcp", tcpAddr) + + server := &testServer{ + listener: listener, + done: make(chan struct{}), + } + + server.wg.Add(1) + go server.serve() + return server +} + +func (server *testServer) serve() { + defer server.wg.Done() + for { + select { + case <-server.done: + return + default: + conn, err := server.listener.Accept() + if err != nil { + continue + } + conn.Write([]byte("Hello World")) + conn.Close() + } + } +} + +func (server *testServer) close() { + close(server.done) + server.listener.Close() + server.wg.Wait() +} + +type consulRegistryTestSuite struct { + t *testing.T + providerRegistry registry.Registry + consumerRegistry *consulRegistry + listener registry.Listener + providerUrl common.URL + consumerUrl common.URL +} + +func newConsulRegistryTestSuite(t *testing.T) *consulRegistryTestSuite { + suite := &consulRegistryTestSuite{t: t} + return suite +} + +func (suite *consulRegistryTestSuite) close() { + suite.listener.Close() + suite.providerRegistry.Destroy() + suite.consumerRegistry.Destroy() +} + +// register -> subscribe -> unregister +func test1(t *testing.T) { + consulAgent := newConsulAgent(t, registryPort) + defer consulAgent.close() + + server := newServer(providerHost, providerPort) + defer server.close() + + suite := newConsulRegistryTestSuite(t) + defer suite.close() + + suite.testNewProviderRegistry() + suite.testRegister() + suite.testNewConsumerRegistry() + suite.testSubscribe() + suite.testListener(remoting.EventTypeAdd) + suite.testUnregister() + suite.testListener(remoting.EventTypeDel) +} + +// subscribe -> register +func test2(t *testing.T) { + consulAgent := newConsulAgent(t, registryPort) + defer consulAgent.close() + + server := newServer(providerHost, providerPort) + defer server.close() + + suite := newConsulRegistryTestSuite(t) + defer suite.close() + + suite.testNewConsumerRegistry() + suite.testSubscribe() + suite.testNewProviderRegistry() + suite.testRegister() + suite.testListener(remoting.EventTypeAdd) +} + +func TestConsulRegistry(t *testing.T) { + t.Run("test1", test1) + t.Run("test2", test2) +} diff --git a/registry/directory/directory.go b/registry/directory/directory.go index 43bc65742b9ddfbca16800ce3a833f35630c87b1..3ea5b36fcd7c0a0b183d9b129ce227f3886c1ae5 100644 --- a/registry/directory/directory.go +++ b/registry/directory/directory.go @@ -56,7 +56,6 @@ type registryDirectory struct { serviceType string registry registry.Registry cacheInvokersMap *sync.Map //use sync.map - //cacheInvokersMap map[string]protocol.Invoker Options } @@ -95,16 +94,13 @@ func (nl *notifyListener) Notify(event *registry.ServiceEvent) { go nl.dir.update(event) } -//subscribe service from registry , and update the cacheServices +//subscribe service from registry, and update the cacheServices func (dir *registryDirectory) update(res *registry.ServiceEvent) { if res == nil { return } - logger.Debugf("registry update, result{%s}", res) - logger.Debugf("update service name: %s!", res.Service) - dir.refreshInvokers(res) } @@ -130,7 +126,6 @@ func (dir *registryDirectory) refreshInvokers(res *registry.ServiceEvent) { } func (dir *registryDirectory) toGroupInvokers() []protocol.Invoker { - newInvokersList := []protocol.Invoker{} groupInvokersMap := make(map[string][]protocol.Invoker) groupInvokersList := []protocol.Invoker{} diff --git a/registry/etcdv3/listener.go b/registry/etcdv3/listener.go index a8f2facc1aa43db4daea77c03f332df16f302431..603a30171d2e591ed1ef968250b1fea840e30f2e 100644 --- a/registry/etcdv3/listener.go +++ b/registry/etcdv3/listener.go @@ -12,16 +12,17 @@ import ( import ( "github.com/apache/dubbo-go/common" "github.com/apache/dubbo-go/common/logger" + "github.com/apache/dubbo-go/config_center" "github.com/apache/dubbo-go/registry" "github.com/apache/dubbo-go/remoting" ) type dataListener struct { interestedURL []*common.URL - listener remoting.ConfigurationListener + listener config_center.ConfigurationListener } -func NewRegistryDataListener(listener remoting.ConfigurationListener) *dataListener { +func NewRegistryDataListener(listener config_center.ConfigurationListener) *dataListener { return &dataListener{listener: listener, interestedURL: []*common.URL{}} } @@ -40,7 +41,7 @@ func (l *dataListener) DataChange(eventType remoting.Event) bool { for _, v := range l.interestedURL { if serviceURL.URLEqual(*v) { - l.listener.Process(&remoting.ConfigChangeEvent{Key: eventType.Path, Value: serviceURL, ConfigType: eventType.Action}) + l.listener.Process(&config_center.ConfigChangeEvent{Key: eventType.Path, Value: serviceURL, ConfigType: eventType.Action}) return true } } @@ -50,15 +51,15 @@ func (l *dataListener) DataChange(eventType remoting.Event) bool { type configurationListener struct { registry *etcdV3Registry - events chan *remoting.ConfigChangeEvent + events chan *config_center.ConfigChangeEvent } func NewConfigurationListener(reg *etcdV3Registry) *configurationListener { // add a new waiter reg.wg.Add(1) - return &configurationListener{registry: reg, events: make(chan *remoting.ConfigChangeEvent, 32)} + return &configurationListener{registry: reg, events: make(chan *config_center.ConfigChangeEvent, 32)} } -func (l *configurationListener) Process(configType *remoting.ConfigChangeEvent) { +func (l *configurationListener) Process(configType *config_center.ConfigChangeEvent) { l.events <- configType } diff --git a/registry/etcdv3/listener_test.go b/registry/etcdv3/listener_test.go index 0ac8fc475e454e737e0ea03301709457561e961c..00024d28949f8b517d49f45ce6f16422d67b0a6b 100644 --- a/registry/etcdv3/listener_test.go +++ b/registry/etcdv3/listener_test.go @@ -2,6 +2,7 @@ package etcdv3 import ( "context" + "github.com/apache/dubbo-go/config_center" "testing" "time" ) @@ -68,4 +69,4 @@ func TestRegistrySuite(t *testing.T) { type MockDataListener struct{} -func (*MockDataListener) Process(configType *remoting.ConfigChangeEvent) {} +func (*MockDataListener) Process(configType *config_center.ConfigChangeEvent) {} diff --git a/registry/etcdv3/registry.go b/registry/etcdv3/registry.go index 5802142989e5d8297f027ddecff3d7780070729f..4b140f893f1595a0fcf3a522766fee39e9d26a78 100644 --- a/registry/etcdv3/registry.go +++ b/registry/etcdv3/registry.go @@ -30,7 +30,10 @@ var ( localIP = "" ) -const Name = "etcdv3" +const ( + Name = "etcdv3" + RegistryConnDelay = 3 +) func init() { processID = fmt.Sprintf("%d", os.Getpid()) @@ -292,7 +295,7 @@ func (r *etcdV3Registry) registerProvider(svc common.URL) error { return nil } -func (r *etcdV3Registry) Subscribe(svc common.URL) (registry.Listener, error) { +func (r *etcdV3Registry) subscribe(svc *common.URL) (registry.Listener, error) { var ( configListener *configurationListener @@ -318,8 +321,44 @@ func (r *etcdV3Registry) Subscribe(svc common.URL) (registry.Listener, error) { } //register the svc to dataListener - r.dataListener.AddInterestedURL(&svc) + r.dataListener.AddInterestedURL(svc) go r.listener.ListenServiceEvent(fmt.Sprintf("/dubbo/%s/providers", svc.Service()), r.dataListener) return configListener, nil } + +//subscibe from registry +func (r *etcdV3Registry) Subscribe(url *common.URL, notifyListener registry.NotifyListener) { + for { + if !r.IsAvailable() { + logger.Warnf("event listener game over.") + time.Sleep(time.Duration(RegistryConnDelay) * time.Second) + return + } + + listener, err := r.subscribe(url) + if err != nil { + if !r.IsAvailable() { + logger.Warnf("event listener game over.") + return + } + logger.Warnf("getListener() = err:%v", perrors.WithStack(err)) + time.Sleep(time.Duration(RegistryConnDelay) * time.Second) + continue + } + + for { + if serviceEvent, err := listener.Next(); err != nil { + logger.Warnf("Selector.watch() = error{%v}", perrors.WithStack(err)) + listener.Close() + time.Sleep(time.Duration(RegistryConnDelay) * time.Second) + return + } else { + logger.Infof("update begin, service event: %v", serviceEvent.String()) + notifyListener.Notify(serviceEvent) + } + + } + + } +} diff --git a/registry/etcdv3/registry_test.go b/registry/etcdv3/registry_test.go index 26204c74ad4305278e33d9c8b50199cfa578bf8a..4b9fa59afab5776a8f9a979c45f2d1267c522d4c 100644 --- a/registry/etcdv3/registry_test.go +++ b/registry/etcdv3/registry_test.go @@ -67,7 +67,7 @@ func (suite *RegistryTestSuite) TestSubscribe() { reg2 := initRegistry(t) reg2.Register(url) - listener, err := reg2.Subscribe(url) + listener, err := reg2.subscribe(&url) if err != nil { t.Fatal(err) } @@ -85,7 +85,7 @@ func (suite *RegistryTestSuite) TestConsumerDestory() { url, _ := common.NewURL(context.Background(), "dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider", common.WithParamsValue(constant.CLUSTER_KEY, "mock"), common.WithMethods([]string{"GetUser", "AddUser"})) reg := initRegistry(t) - _, err := reg.Subscribe(url) + _, err := reg.subscribe(&url) if err != nil { t.Fatal(err) } diff --git a/registry/nacos/listener.go b/registry/nacos/listener.go index c42abd0bb16573da33c20c150896f85b3a7edfd0..1f264ec9e4ba9b8e970eba7da3b46d8792831dea 100644 --- a/registry/nacos/listener.go +++ b/registry/nacos/listener.go @@ -19,6 +19,7 @@ import ( "github.com/apache/dubbo-go/common" "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/common/logger" + "github.com/apache/dubbo-go/config_center" "github.com/apache/dubbo-go/registry" "github.com/apache/dubbo-go/remoting" ) @@ -26,7 +27,7 @@ import ( type nacosListener struct { namingClient naming_client.INamingClient listenUrl common.URL - events chan *remoting.ConfigChangeEvent + events chan *config_center.ConfigChangeEvent instanceMap map[string]model.Instance cacheLock sync.Mutex done chan struct{} @@ -36,7 +37,7 @@ type nacosListener struct { func NewNacosListener(url common.URL, namingClient naming_client.INamingClient) (*nacosListener, error) { listener := &nacosListener{ namingClient: namingClient, - listenUrl: url, events: make(chan *remoting.ConfigChangeEvent, 32), + listenUrl: url, events: make(chan *config_center.ConfigChangeEvent, 32), instanceMap: map[string]model.Instance{}, done: make(chan struct{}), } @@ -134,20 +135,20 @@ func (nl *nacosListener) Callback(services []model.SubscribeService, err error) for i := range addInstances { newUrl := generateUrl(addInstances[i]) if newUrl != nil { - nl.process(&remoting.ConfigChangeEvent{Value: *newUrl, ConfigType: remoting.EventTypeAdd}) + nl.process(&config_center.ConfigChangeEvent{Value: *newUrl, ConfigType: remoting.EventTypeAdd}) } } for i := range delInstances { newUrl := generateUrl(delInstances[i]) if newUrl != nil { - nl.process(&remoting.ConfigChangeEvent{Value: *newUrl, ConfigType: remoting.EventTypeDel}) + nl.process(&config_center.ConfigChangeEvent{Value: *newUrl, ConfigType: remoting.EventTypeDel}) } } for i := range updateInstances { newUrl := generateUrl(updateInstances[i]) if newUrl != nil { - nl.process(&remoting.ConfigChangeEvent{Value: *newUrl, ConfigType: remoting.EvnetTypeUpdate}) + nl.process(&config_center.ConfigChangeEvent{Value: *newUrl, ConfigType: remoting.EventTypeUpdate}) } } } @@ -175,7 +176,7 @@ func (nl *nacosListener) stopListen() error { return nl.namingClient.Unsubscribe(nl.subscribeParam) } -func (nl *nacosListener) process(configType *remoting.ConfigChangeEvent) { +func (nl *nacosListener) process(configType *config_center.ConfigChangeEvent) { nl.events <- configType } diff --git a/registry/nacos/registry.go b/registry/nacos/registry.go index f10e230bc44dba8f8007ea659db3747a237c9de1..68a2704d8a42a653ad5c2cc3afa0d82f19ad50cc 100644 --- a/registry/nacos/registry.go +++ b/registry/nacos/registry.go @@ -2,6 +2,7 @@ package nacos import ( "bytes" + "github.com/apache/dubbo-go/common/logger" "net" "strconv" "strings" @@ -27,6 +28,10 @@ var ( localIP = "" ) +const ( + RegistryConnDelay = 3 +) + func init() { localIP, _ = utils.GetLocalIP() extension.SetRegistry(constant.NACOS_KEY, newNacosRegistry) @@ -120,7 +125,7 @@ func appendParam(target *bytes.Buffer, url common.URL, key string) { func createRegisterParam(url common.URL, serviceName string) vo.RegisterInstanceParam { category := getCategory(url) params := make(map[string]string, len(url.Params)+3) - for k, _ := range url.Params { + for k := range url.Params { params[k] = url.Params.Get(k) } params[constant.NACOS_CATEGORY_KEY] = category @@ -159,10 +164,45 @@ func (nr *nacosRegistry) Register(url common.URL) error { return nil } -func (nr *nacosRegistry) Subscribe(conf common.URL) (registry.Listener, error) { - return NewNacosListener(conf, nr.namingClient) +func (nr *nacosRegistry) subscribe(conf *common.URL) (registry.Listener, error) { + return NewNacosListener(*conf, nr.namingClient) } +//subscibe from registry +func (r *nacosRegistry) Subscribe(url *common.URL, notifyListener registry.NotifyListener) { + for { + if !r.IsAvailable() { + logger.Warnf("event listener game over.") + time.Sleep(time.Duration(RegistryConnDelay) * time.Second) + return + } + + listener, err := r.subscribe(url) + if err != nil { + if !r.IsAvailable() { + logger.Warnf("event listener game over.") + return + } + logger.Warnf("getListener() = err:%v", perrors.WithStack(err)) + time.Sleep(time.Duration(RegistryConnDelay) * time.Second) + continue + } + + for { + if serviceEvent, err := listener.Next(); err != nil { + logger.Warnf("Selector.watch() = error{%v}", perrors.WithStack(err)) + listener.Close() + time.Sleep(time.Duration(RegistryConnDelay) * time.Second) + return + } else { + logger.Infof("update begin, service event: %v", serviceEvent.String()) + notifyListener.Notify(serviceEvent) + } + + } + + } +} func (nr *nacosRegistry) GetUrl() common.URL { return *nr.URL } diff --git a/registry/nacos/registry_test.go b/registry/nacos/registry_test.go index 97dea0d2b016c8f84ee7cf6f4856ba545b720a48..fc9dd25868db7040392b2d84f3b852d5306879c6 100644 --- a/registry/nacos/registry_test.go +++ b/registry/nacos/registry_test.go @@ -18,7 +18,7 @@ import ( "github.com/apache/dubbo-go/common/constant" ) -func Test_Register(t *testing.T) { +func TestNacosRegistry_Register(t *testing.T) { regurl, _ := common.NewURL(context.TODO(), "registry://console.nacos.io:80", common.WithParamsValue(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER))) urlMap := url.Values{} urlMap.Set(constant.GROUP_KEY, "guangzhou-idc") @@ -68,7 +68,7 @@ func TestNacosRegistry_Subscribe(t *testing.T) { regurl.Params.Set(constant.ROLE_KEY, strconv.Itoa(common.CONSUMER)) reg2, _ := newNacosRegistry(®url) - listener, err := reg2.Subscribe(url) + listener, err := reg2.(*nacosRegistry).subscribe(&url) assert.Nil(t, err) if err != nil { t.Errorf("subscribe error:%s \n", err.Error()) @@ -91,7 +91,7 @@ func TestNacosRegistry_Subscribe_del(t *testing.T) { urlMap.Set(constant.GROUP_KEY, "guangzhou-idc") urlMap.Set(constant.ROLE_KEY, strconv.Itoa(common.PROVIDER)) urlMap.Set(constant.INTERFACE_KEY, "com.ikurento.user.UserProvider") - urlMap.Set(constant.VERSION_KEY, "1.0.0") + urlMap.Set(constant.VERSION_KEY, "2.0.0") urlMap.Set(constant.CLUSTER_KEY, "mock") urlMap.Set(constant.NACOS_PATH_KEY, "") url1, _ := common.NewURL(context.TODO(), "dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider", common.WithParams(urlMap), common.WithMethods([]string{"GetUser", "AddUser"})) @@ -113,7 +113,7 @@ func TestNacosRegistry_Subscribe_del(t *testing.T) { regurl.Params.Set(constant.ROLE_KEY, strconv.Itoa(common.CONSUMER)) reg2, _ := newNacosRegistry(®url) - listener, err := reg2.Subscribe(url1) + listener, err := reg2.(*nacosRegistry).subscribe(&url1) assert.Nil(t, err) if err != nil { t.Errorf("subscribe error:%s \n", err.Error()) @@ -139,8 +139,8 @@ func TestNacosRegistry_Subscribe_del(t *testing.T) { assert.Regexp(t, ".*ServiceEvent{Action{add}.*", serviceEvent2.String()) nacosReg := reg.(*nacosRegistry) - //deregister instance to mock instance offline - nacosReg.namingClient.DeregisterInstance(vo.DeregisterInstanceParam{Ip: "127.0.0.2", Port: 20000, ServiceName: "providers:com.ikurento.user.UserProvider:1.0.0:guangzhou-idc"}) + //deregister instance to mock instance offline + nacosReg.namingClient.DeregisterInstance(vo.DeregisterInstanceParam{Ip: "127.0.0.2", Port: 20000, ServiceName: "providers:com.ikurento.user.UserProvider:2.0.0:guangzhou-idc"}) serviceEvent3, _ := listener.Next() assert.NoError(t, err) @@ -162,7 +162,7 @@ func TestNacosListener_Close(t *testing.T) { urlMap.Set(constant.NACOS_PATH_KEY, "") url1, _ := common.NewURL(context.TODO(), "dubbo://127.0.0.1:20000/com.ikurento.user.UserProvider2", common.WithParams(urlMap), common.WithMethods([]string{"GetUser", "AddUser"})) reg, _ := newNacosRegistry(®url) - listener, err := reg.Subscribe(url1) + listener, err := reg.(*nacosRegistry).subscribe(&url1) assert.Nil(t, err) if err != nil { t.Errorf("subscribe error:%s \n", err.Error()) diff --git a/registry/protocol/protocol.go b/registry/protocol/protocol.go index 51d4d26a6696f51d892ffc8a1e5fbfd935335baa..0289ddac56f36b3b039232c6d1c1b6090dff9ff1 100644 --- a/registry/protocol/protocol.go +++ b/registry/protocol/protocol.go @@ -20,6 +20,8 @@ package protocol import ( "github.com/apache/dubbo-go/config" "github.com/apache/dubbo-go/config_center" + "github.com/apache/dubbo-go/remoting" + "strings" "sync" ) @@ -54,6 +56,12 @@ func init() { extension.SetProtocol("registry", GetProtocol) } +func getCacheKey(url *common.URL) string { + newUrl := url.Clone() + newUrl.Params.Del("dynamic") + newUrl.Params.Del("enabled") + return newUrl.String() +} func newRegistryProtocol() *registryProtocol { overrideListeners := sync.Map{} return ®istryProtocol{ @@ -114,31 +122,31 @@ func (proto *registryProtocol) Export(invoker protocol.Invoker) protocol.Exporte registryUrl := getRegistryUrl(invoker) providerUrl := getProviderUrl(invoker) - overriderUrl := getSubscribedOverrideUrl(&providerUrl) + overriderUrl := getSubscribedOverrideUrl(providerUrl) // Deprecated! subscribe to override rules in 2.6.x or before. overrideSubscribeListener := newOverrideSubscribeListener(overriderUrl, invoker, proto) proto.overrideListeners.Store(overriderUrl, overrideSubscribeListener) - proto.providerConfigurationListener.OverrideUrl(&providerUrl) - serviceConfigurationListener := newServiceConfigurationListener(overrideSubscribeListener, &providerUrl) + proto.providerConfigurationListener.OverrideUrl(providerUrl) + serviceConfigurationListener := newServiceConfigurationListener(overrideSubscribeListener, providerUrl) proto.serviceConfigurationListeners.Store(providerUrl.ServiceKey(), serviceConfigurationListener) - serviceConfigurationListener.OverrideUrl(&providerUrl) + serviceConfigurationListener.OverrideUrl(providerUrl) var reg registry.Registry if regI, loaded := proto.registries.Load(registryUrl.Key()); !loaded { - reg = getRegistry(®istryUrl) + reg = getRegistry(registryUrl) proto.registries.Store(registryUrl.Key(), reg) } else { reg = regI.(registry.Registry) } - err := reg.Register(providerUrl) + err := reg.Register(*providerUrl) if err != nil { logger.Errorf("provider service %v register registry %v error, error message is %s", providerUrl.Key(), registryUrl.Key(), err.Error()) return nil } - key := providerUrl.Key() + key := getCacheKey(providerUrl) logger.Infof("The cached exporter keys is %v !", key) cachedExporter, loaded := proto.bounds.Load(key) if loaded { @@ -155,21 +163,17 @@ func (proto *registryProtocol) Export(invoker protocol.Invoker) protocol.Exporte } func (proto *registryProtocol) reExport(invoker protocol.Invoker, newUrl *common.URL) { - key := getProviderUrl(invoker).Key() + url := getProviderUrl(invoker) + key := getCacheKey(url) if oldExporter, loaded := proto.bounds.Load(key); loaded { - wrappedNewInvoker := newWrappedInvoker(invoker, *newUrl) - //TODO:MAY not safe + wrappedNewInvoker := newWrappedInvoker(invoker, newUrl) oldExporter.(protocol.Exporter).Unexport() proto.bounds.Delete(key) - proto.Export(wrappedNewInvoker) //TODO: unregister & unsubscribe } } -func (proto *registryProtocol) overrideWithConfig(providerUrl *common.URL, listener *overrideSubscribeListener) { - -} type overrideSubscribeListener struct { url *common.URL @@ -182,47 +186,79 @@ func newOverrideSubscribeListener(overriderUrl *common.URL, invoker protocol.Inv return &overrideSubscribeListener{url: overriderUrl, originInvoker: invoker, protocol: proto} } func (nl *overrideSubscribeListener) Notify(event *registry.ServiceEvent) { - if isMatched(&(event.Service), nl.url) { + if isMatched(&(event.Service), nl.url) && event.Action == remoting.EventTypeAdd { nl.configurator = extension.GetDefaultConfigurator(&(event.Service)) nl.doOverrideIfNecessary() } } func (nl *overrideSubscribeListener) doOverrideIfNecessary() { providerUrl := getProviderUrl(nl.originInvoker) - key := providerUrl.Key() + key := getCacheKey(providerUrl) if exporter, ok := nl.protocol.bounds.Load(key); ok { currentUrl := exporter.(protocol.Exporter).GetInvoker().GetUrl() // Compatible with the 2.6.x - nl.configurator.Configure(&providerUrl) + nl.configurator.Configure(providerUrl) // provider application level management in 2.7.x for _, v := range nl.protocol.providerConfigurationListener.Configurators() { - v.Configure(&providerUrl) + v.Configure(providerUrl) } // provider service level management in 2.7.x if serviceListener, ok := nl.protocol.serviceConfigurationListeners.Load(providerUrl.ServiceKey()); ok { for _, v := range serviceListener.(*serviceConfigurationListener).Configurators() { - v.Configure(&providerUrl) + v.Configure(providerUrl) } } - if currentUrl.String() == providerUrl.String() { + if currentUrl.String() != providerUrl.String() { newRegUrl := nl.originInvoker.GetUrl() - setProviderUrl(&newRegUrl, &providerUrl) + setProviderUrl(&newRegUrl, providerUrl) nl.protocol.reExport(nl.originInvoker, &newRegUrl) } } } -func isMatched(url *common.URL, subscribedUrl *common.URL) bool { +func isMatched(providerUrl *common.URL, consumerUrl *common.URL) bool { // Compatible with the 2.6.x - if len(url.GetParam(constant.CATEGORY_KEY, "")) == 0 && url.Protocol == constant.OVERRIDE_PROTOCOL { - url.AddParam(constant.CATEGORY_KEY, constant.CONFIGURATORS_CATEGORY) + if len(providerUrl.GetParam(constant.CATEGORY_KEY, "")) == 0 && providerUrl.Protocol == constant.OVERRIDE_PROTOCOL { + providerUrl.AddParam(constant.CATEGORY_KEY, constant.CONFIGURATORS_CATEGORY) } - if subscribedUrl.URLEqual(*url) { - return true + consumerInterface := consumerUrl.GetParam(constant.INTERFACE_KEY, consumerUrl.Path) + providerInterface := providerUrl.GetParam(constant.INTERFACE_KEY, providerUrl.Path) + + if !(constant.ANY_VALUE == consumerInterface || constant.ANY_VALUE == providerInterface || providerInterface == consumerInterface) { + return false } - return false + if !isMatchCategory(providerUrl.GetParam(constant.CATEGORY_KEY, constant.DEFAULT_CATEGORY), + consumerUrl.GetParam(constant.CATEGORY_KEY, constant.DEFAULT_CATEGORY)) { + return false + } + + if !providerUrl.GetParamBool(constant.ENABLED_KEY, true) && consumerUrl.GetParam(constant.ENABLED_KEY, "") != constant.ANY_VALUE { + return false + } + consumerGroup := consumerUrl.GetParam(constant.GROUP_KEY, "") + consumerVersion := consumerUrl.GetParam(constant.VERSION_KEY, "") + consumerClassifier := consumerUrl.GetParam(constant.CLASSIFIER_KEY, "") + + providerGroup := providerUrl.GetParam(constant.GROUP_KEY, "") + providerVersion := providerUrl.GetParam(constant.VERSION_KEY, "") + providerClassifier := providerUrl.GetParam(constant.CLASSIFIER_KEY, "") + //todo: public static boolean isContains(String values, String value) { + // return isNotEmpty(values) && isContains(COMMA_SPLIT_PATTERN.split(values), value); + // } + return (consumerGroup == constant.ANY_VALUE || consumerGroup == providerGroup || strings.Contains(consumerGroup, providerGroup)) && (consumerVersion == constant.ANY_VALUE || consumerVersion == providerVersion) && (consumerClassifier == "" || consumerClassifier == constant.ANY_VALUE || consumerClassifier == providerClassifier) +} +func isMatchCategory(category string, categories string) bool { + if categories == "" { + return category == constant.DEFAULT_CATEGORY + } else if strings.Contains(categories, constant.ANY_VALUE) { + return true + } else if strings.Contains(categories, constant.REMOVE_VALUE_PREFIX) { + return !strings.Contains(categories, constant.REMOVE_VALUE_PREFIX+category) + } else { + return strings.Contains(categories, category) + } } func getSubscribedOverrideUrl(providerUrl *common.URL) *common.URL { newUrl := providerUrl.Clone() @@ -255,7 +291,7 @@ func (proto *registryProtocol) Destroy() { }) } -func getRegistryUrl(invoker protocol.Invoker) common.URL { +func getRegistryUrl(invoker protocol.Invoker) *common.URL { //here add * for return a new url url := invoker.GetUrl() //if the protocol == registry ,set protocol the registry value in url.params @@ -263,12 +299,13 @@ func getRegistryUrl(invoker protocol.Invoker) common.URL { protocol := url.GetParam(constant.REGISTRY_KEY, "") url.Protocol = protocol } - return url + return &url } -func getProviderUrl(invoker protocol.Invoker) common.URL { +func getProviderUrl(invoker protocol.Invoker) *common.URL { url := invoker.GetUrl() - return *url.SubURL + //be careful params maps in url is map type + return url.SubURL.Clone() } func setProviderUrl(regURL *common.URL, providerURL *common.URL) { regURL.SubURL = providerURL @@ -283,11 +320,11 @@ func GetProtocol() protocol.Protocol { type wrappedInvoker struct { invoker protocol.Invoker - url common.URL + url *common.URL protocol.BaseInvoker } -func newWrappedInvoker(invoker protocol.Invoker, url common.URL) *wrappedInvoker { +func newWrappedInvoker(invoker protocol.Invoker, url *common.URL) *wrappedInvoker { return &wrappedInvoker{ invoker: invoker, url: url, @@ -295,7 +332,7 @@ func newWrappedInvoker(invoker protocol.Invoker, url common.URL) *wrappedInvoker } } func (ivk *wrappedInvoker) GetUrl() common.URL { - return ivk.url + return *ivk.url } func (ivk *wrappedInvoker) getInvoker() protocol.Invoker { return ivk.invoker @@ -310,7 +347,7 @@ func newProviderConfigurationListener(overrideListeners *sync.Map) *providerConf listener := &providerConfigurationListener{} listener.overrideListeners = overrideListeners //TODO:error handler - _ = listener.BaseConfigurationListener.InitWith(config.GetProviderConfig().ApplicationConfig.Name+constant.CONFIGURATORS_SUFFIX, listener, extension.GetDefaultConfiguratorFunc()) + listener.BaseConfigurationListener.InitWith(config.GetProviderConfig().ApplicationConfig.Name+constant.CONFIGURATORS_SUFFIX, listener, extension.GetDefaultConfiguratorFunc()) return listener } @@ -331,7 +368,7 @@ type serviceConfigurationListener struct { func newServiceConfigurationListener(overrideListener *overrideSubscribeListener, providerUrl *common.URL) *serviceConfigurationListener { listener := &serviceConfigurationListener{overrideListener: overrideListener, providerUrl: providerUrl} //TODO:error handler - _ = listener.BaseConfigurationListener.InitWith(providerUrl.EncodedServiceKey()+constant.CONFIGURATORS_SUFFIX, listener, extension.GetDefaultConfiguratorFunc()) + listener.BaseConfigurationListener.InitWith(providerUrl.EncodedServiceKey()+constant.CONFIGURATORS_SUFFIX, listener, extension.GetDefaultConfiguratorFunc()) return &serviceConfigurationListener{overrideListener: overrideListener, providerUrl: providerUrl} } diff --git a/registry/protocol/protocol_test.go b/registry/protocol/protocol_test.go index 72c0300dfcecdbb1bece198662c104f662517867..55b031bfdb1bea7bfb2aeff22ee6137dc6f4845d 100644 --- a/registry/protocol/protocol_test.go +++ b/registry/protocol/protocol_test.go @@ -19,9 +19,9 @@ package protocol import ( "context" - "github.com/apache/dubbo-go/config_center" - + "github.com/apache/dubbo-go/remoting" "testing" + "time" ) import ( @@ -31,10 +31,11 @@ import ( import ( cluster "github.com/apache/dubbo-go/cluster/cluster_impl" "github.com/apache/dubbo-go/common" - commonConfig "github.com/apache/dubbo-go/common/config" + common_cfg "github.com/apache/dubbo-go/common/config" "github.com/apache/dubbo-go/common/constant" "github.com/apache/dubbo-go/common/extension" "github.com/apache/dubbo-go/config" + "github.com/apache/dubbo-go/config_center" "github.com/apache/dubbo-go/config_center/configurator" "github.com/apache/dubbo-go/protocol" "github.com/apache/dubbo-go/protocol/protocolwrapper" @@ -44,9 +45,6 @@ import ( func init() { extension.SetDefaultConfigurator(configurator.NewMockConfigurator) config.SetProviderConfig(config.ProviderConfig{ApplicationConfig: &config.ApplicationConfig{Name: "mock"}}) - factory := &config_center.MockDynamicConfigurationFactory{} - dc, _ := factory.GetDynamicConfiguration(&common.URL{}) - commonConfig.GetEnvInstance().SetDynamicConfiguration(dc) } func referNormal(t *testing.T, regProtocol *registryProtocol) { extension.SetProtocol("registry", GetProtocol) @@ -104,12 +102,12 @@ func TestOneRegRefer(t *testing.T) { assert.Equal(t, count, 1) } -func exporterNormal(t *testing.T, regProtocol *registryProtocol) { +func exporterNormal(t *testing.T, regProtocol *registryProtocol) *common.URL { extension.SetProtocol("registry", GetProtocol) extension.SetRegistry("mock", registry.NewMockRegistry) extension.SetProtocol(protocolwrapper.FILTER, protocolwrapper.NewMockProtocolFilter) url, _ := common.NewURL(context.TODO(), "mock://127.0.0.1:1111") - suburl, _ := common.NewURL(context.TODO(), "dubbo://127.0.0.1:20000//", common.WithParamsValue(constant.CLUSTER_KEY, "mock")) + suburl, _ := common.NewURL(context.TODO(), "dubbo://127.0.0.1:20000/org.apache.dubbo-go.mockService", common.WithParamsValue(constant.CLUSTER_KEY, "mock")) url.SubURL = &suburl invoker := protocol.NewBaseInvoker(url) @@ -117,6 +115,7 @@ func exporterNormal(t *testing.T, regProtocol *registryProtocol) { assert.IsType(t, &protocol.BaseExporter{}, exporter) assert.Equal(t, exporter.GetInvoker().GetUrl().String(), suburl.String()) + return &url } func TestExporter(t *testing.T) { @@ -199,3 +198,27 @@ func TestDestry(t *testing.T) { }) assert.Equal(t, count2, 0) } + +func TestExportWithOverrideListener(t *testing.T) { + extension.SetDefaultConfigurator(configurator.NewMockConfigurator) + ccUrl, _ := common.NewURL(context.TODO(), "mock://127.0.0.1:1111") + dc, _ := (&config_center.MockDynamicConfigurationFactory{}).GetDynamicConfiguration(&ccUrl) + common_cfg.GetEnvInstance().SetDynamicConfiguration(dc) + regProtocol := newRegistryProtocol() + url := exporterNormal(t, regProtocol) + var reg *registry.MockRegistry + if regI, loaded := regProtocol.registries.Load(url.Key()); loaded { + reg = regI.(*registry.MockRegistry) + } else { + assert.Fail(t, "regProtocol.registries.Load can not be loaded") + return + } + overrideUrl, _ := common.NewURL(context.Background(), "override://0:0:0:0/org.apache.dubbo-go.mockService?cluster=mock1") + event := ®istry.ServiceEvent{Action: remoting.EventTypeAdd, Service: overrideUrl} + reg.MockEvent(event) + time.Sleep(1e9) + newUrl := url.SubURL.Clone() + newUrl.Params.Set(constant.CLUSTER_KEY, "mock1") + v2, _ := regProtocol.bounds.Load(getCacheKey(newUrl)) + assert.NotNil(t, v2) +} diff --git a/registry/zookeeper/listener_test.go b/registry/zookeeper/listener_test.go index 7ebc32b8a50bcb38d5ac859e4216065559fbd4e5..c30e5d47d2f7d1356e20ec3b7635813ad2adb0f6 100644 --- a/registry/zookeeper/listener_test.go +++ b/registry/zookeeper/listener_test.go @@ -2,10 +2,15 @@ package zookeeper import ( "context" + "testing" +) +import ( + "github.com/stretchr/testify/assert" +) +import ( "github.com/apache/dubbo-go/common" + "github.com/apache/dubbo-go/config_center" "github.com/apache/dubbo-go/remoting" - "github.com/stretchr/testify/assert" - "testing" ) func Test_DataChange(t *testing.T) { @@ -19,5 +24,5 @@ func Test_DataChange(t *testing.T) { type MockDataListener struct { } -func (*MockDataListener) Process(configType *remoting.ConfigChangeEvent) { +func (*MockDataListener) Process(configType *config_center.ConfigChangeEvent) { } diff --git a/registry/zookeeper/registry_test.go b/registry/zookeeper/registry_test.go index 5d56d4be03589b69fbc2ca258eacb5aa76353666..9cb7c011f9235f9c4840632605761a8a16278afa 100644 --- a/registry/zookeeper/registry_test.go +++ b/registry/zookeeper/registry_test.go @@ -64,7 +64,7 @@ func Test_Subscribe(t *testing.T) { _, reg2, _ := newMockZkRegistry(®url, zookeeper.WithTestCluster(ts)) reg2.Register(url) - listener, _ := reg2.subscribe(url) + listener, _ := reg2.subscribe(&url) serviceEvent, _ := listener.Next() assert.NoError(t, err) @@ -85,7 +85,7 @@ func Test_ConsumerDestory(t *testing.T) { assert.NoError(t, err) err = reg.Register(url) assert.NoError(t, err) - _, err = reg.subscribe(url) + _, err = reg.subscribe(&url) assert.NoError(t, err) //listener.Close() diff --git a/remoting/zookeeper/client.go b/remoting/zookeeper/client.go index 008848ea61ba2deb1a70aba5c29da097c3c48da9..a7fc568f567d720448d0be63c592fae5f8df9bbf 100644 --- a/remoting/zookeeper/client.go +++ b/remoting/zookeeper/client.go @@ -65,7 +65,7 @@ func StateToString(state zk.State) string { case zk.StateConnectedReadOnly: return "zookeeper connect readonly" case zk.StateSaslAuthenticated: - return "zookeeper sasl authenticaed" + return "zookeeper sasl authenticated" case zk.StateExpired: return "zookeeper connection expired" case zk.StateConnected: @@ -118,7 +118,7 @@ func ValidateZookeeperClient(container zkClientFacade, opts ...Option) error { defer lock.Unlock() if container.ZkClient() == nil { - //in dubbp ,every registry only connect one node ,so this is []string{r.Address} + //in dubbo ,every registry only connect one node ,so this is []string{r.Address} timeout, err := time.ParseDuration(url.GetParam(constant.REGISTRY_TIMEOUT_KEY, constant.DEFAULT_REG_TIMEOUT)) if err != nil { logger.Errorf("timeout config %v is invalid ,err is %v", @@ -128,7 +128,7 @@ func ValidateZookeeperClient(container zkClientFacade, opts ...Option) error { zkAddresses := strings.Split(url.Location, ",") newClient, err := newZookeeperClient(opions.zkName, zkAddresses, timeout) if err != nil { - logger.Warnf("newZookeeperClient(name{%s}, zk addresss{%v}, timeout{%d}) = error{%v}", + logger.Warnf("newZookeeperClient(name{%s}, zk address{%v}, timeout{%d}) = error{%v}", opions.zkName, url.Location, timeout.String(), err) return perrors.WithMessagef(err, "newZookeeperClient(address:%+v)", url.Location) } diff --git a/remoting/zookeeper/facade_test.go b/remoting/zookeeper/facade_test.go index 46edd49bf7cd22011bd7dfc8b89227257c5ad2ab..58e0d69dcfd9bf645c147f6e920e56ed5f3951eb 100644 --- a/remoting/zookeeper/facade_test.go +++ b/remoting/zookeeper/facade_test.go @@ -75,7 +75,7 @@ func (r *mockFacade) IsAvailable() bool { return true } -func Test_Fascade(t *testing.T) { +func Test_Facade(t *testing.T) { ts, z, event, err := NewMockZookeeperClient("test", 15*time.Second) assert.NoError(t, err) defer ts.Stop() diff --git a/remoting/zookeeper/listener.go b/remoting/zookeeper/listener.go index 30347d494c14b989c43c2f3f4ea276b35d99f71b..9521ea749027582c015ac998a6f6f68d350cc3bc 100644 --- a/remoting/zookeeper/listener.go +++ b/remoting/zookeeper/listener.go @@ -47,9 +47,11 @@ func NewZkEventListener(client *ZookeeperClient) *ZkEventListener { pathMap: make(map[string]struct{}), } } + func (l *ZkEventListener) SetClient(client *ZookeeperClient) { l.client = client } + func (l *ZkEventListener) ListenServiceNodeEvent(zkPath string, listener ...remoting.DataListener) bool { l.wg.Add(1) defer l.wg.Done() @@ -72,7 +74,6 @@ func (l *ZkEventListener) ListenServiceNodeEvent(zkPath string, listener ...remo content, _, _ := l.client.Conn.Get(zkEvent.Path) listener[0].DataChange(remoting.Event{Path: zkEvent.Path, Action: remoting.EventTypeUpdate, Content: string(content)}) } - case zk.EventNodeCreated: logger.Warnf("zk.ExistW(key{%s}) = event{EventNodeCreated}", zkPath) if len(listener) > 0 { @@ -100,7 +101,6 @@ func (l *ZkEventListener) handleZkNodeEvent(zkPath string, children []string, li return true } } - return false } @@ -130,14 +130,14 @@ func (l *ZkEventListener) handleZkNodeEvent(zkPath string, children []string, li continue } // listen l service node - go func(node string) { + go func(node string, zkPath string, listener remoting.DataListener) { logger.Infof("delete zkNode{%s}", node) if l.ListenServiceNodeEvent(node, listener) { logger.Infof("delete content{%s}", node) listener.DataChange(remoting.Event{Path: zkPath, Action: remoting.EventTypeDel}) } logger.Warnf("listenSelf(zk path{%s}) goroutine exit now", zkPath) - }(newNode) + }(newNode, zkPath, listener) } // old node was deleted @@ -205,11 +205,10 @@ func (l *ZkEventListener) listenDirEvent(zkPath string, listener remoting.DataLi } failTimes = 0 for _, c := range children { - // listen l service node dubboPath := path.Join(zkPath, c) - //Save the path to avoid listen repeatly + //Save the path to avoid listen repeatedly l.pathMapLock.Lock() _, ok := l.pathMap[dubboPath] l.pathMapLock.Unlock() @@ -231,14 +230,14 @@ func (l *ZkEventListener) listenDirEvent(zkPath string, listener remoting.DataLi continue } logger.Infof("listen dubbo service key{%s}", dubboPath) - go func(zkPath string) { - if l.ListenServiceNodeEvent(dubboPath) { - listener.DataChange(remoting.Event{Path: dubboPath, Action: remoting.EventTypeDel}) + go func(zkPath string, listener remoting.DataListener) { + if l.ListenServiceNodeEvent(zkPath) { + listener.DataChange(remoting.Event{Path: zkPath, Action: remoting.EventTypeDel}) } logger.Warnf("listenSelf(zk path{%s}) goroutine exit now", zkPath) - }(dubboPath) + }(dubboPath, listener) - //liten sub path recursive + //listen sub path recursive go func(zkPath string, listener remoting.DataListener) { l.listenDirEvent(zkPath, listener) logger.Warnf("listenDirEvent(zkPath{%s}) goroutine exit now", zkPath) @@ -259,72 +258,11 @@ func (l *ZkEventListener) listenDirEvent(zkPath string, listener remoting.DataLi } } -// -//func (l *ZkEventListener) listenFileEvent(zkPath string, listener remoting.DataListener) { -// l.wg.EventTypeAdd(1) -// defer l.wg.Done() -// -// var ( -// failTimes int -// event chan struct{} -// zkEvent zk.Event -// ) -// event = make(chan struct{}, 4) -// defer close(event) -// for { -// // get current children for a zkPath -// content,_, eventCh, err := l.client.Conn.GetW(zkPath) -// if err != nil { -// failTimes++ -// if MaxFailTimes <= failTimes { -// failTimes = MaxFailTimes -// } -// logger.Errorf("listenFileEvent(path{%s}) = error{%v}", zkPath, err) -// // clear the event channel -// CLEAR: -// for { -// select { -// case <-event: -// default: -// break CLEAR -// } -// } -// l.client.RegisterEvent(zkPath, &event) -// select { -// case <-time.After(timeSecondDuration(failTimes * ConnDelay)): -// l.client.UnregisterEvent(zkPath, &event) -// continue -// case <-l.client.Done(): -// l.client.UnregisterEvent(zkPath, &event) -// logger.Warnf("client.done(), listen(path{%s}) goroutine exit now...", zkPath) -// return -// case <-event: -// logger.Infof("get zk.EventNodeDataChange notify event") -// l.client.UnregisterEvent(zkPath, &event) -// l.handleZkNodeEvent(zkPath, nil, listener) -// continue -// } -// } -// failTimes = 0 -// -// select { -// case zkEvent = <-eventCh: -// logger.Warnf("get a zookeeper zkEvent{type:%s, server:%s, path:%s, state:%d-%s, err:%s}", -// zkEvent.Type.String(), zkEvent.Server, zkEvent.Path, zkEvent.State, StateToString(zkEvent.State), zkEvent.Err) -// -// l.handleZkNodeEvent(zkEvent.Path, children, listener) -// case <-l.client.Done(): -// logger.Warnf("client.done(), listen(path{%s}) goroutine exit now...", zkPath) -// return -// } -// } -//} - func timeSecondDuration(sec int) time.Duration { return time.Duration(sec) * time.Second } -// this func is invoked by ZkConsumerRegistry::Registe/ZkConsumerRegistry::get/ZkConsumerRegistry::getListener +// this func is invoked by ZkConsumerRegistry::Register/ZkConsumerRegistry::get/ZkConsumerRegistry::getListener // registry.go:Listen -> listenServiceEvent -> listenDirEvent -> ListenServiceNodeEvent // | // --------> ListenServiceNodeEvent @@ -355,7 +293,6 @@ func (l *ZkEventListener) ListenServiceEvent(zkPath string, listener remoting.Da } for _, c := range children { - // listen l service node dubboPath = path.Join(zkPath, c) content, _, err := l.client.Conn.Get(dubboPath) @@ -366,12 +303,12 @@ func (l *ZkEventListener) ListenServiceEvent(zkPath string, listener remoting.Da continue } logger.Infof("listen dubbo service key{%s}", dubboPath) - go func(zkPath string) { - if l.ListenServiceNodeEvent(dubboPath) { - listener.DataChange(remoting.Event{Path: dubboPath, Action: remoting.EventTypeDel}) + go func(zkPath string, listener remoting.DataListener) { + if l.ListenServiceNodeEvent(zkPath) { + listener.DataChange(remoting.Event{Path: zkPath, Action: remoting.EventTypeDel}) } logger.Warnf("listenSelf(zk path{%s}) goroutine exit now", zkPath) - }(dubboPath) + }(dubboPath, listener) } logger.Infof("listen dubbo path{%s}", zkPath)