dubbo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From joe...@apache.org
Subject [dubbo-go-samples] 07/10: fix test problems
Date Thu, 15 Oct 2020 08:14:34 GMT
This is an automated email from the ASF dual-hosted git repository.

joezou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-go-samples.git

commit 63c08ada42ed571403f93ee0456b1a5db1718736
Author: Joe Zou <yixian.zou@gmail.com>
AuthorDate: Wed Oct 14 23:28:31 2020 +0800

    fix test problems
---
 async/.travis.yml                                  |  16 +
 async/go-client/app/client.go                      |   6 +-
 async/go-client/integration_testing.sh             |  31 ++
 async/go-server/integration_testing.sh             |  31 ++
 .../apollo/dubbo/go-client/profiles/dev/log.yml    |  56 +--
 .../apollo/dubbo/go-server/profiles/dev/log.yml    |  56 +--
 configcenter/apollo/dubbo/java-client/pom.xml      | 422 +++++++++----------
 .../java-client/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/Consumer.java  | 122 +++---
 .../src/main/java/com/ikurento/user/User.java      | 152 +++----
 .../main/java/com/ikurento/user/UserProvider.java  |  36 +-
 .../src/main/resources/META-INF/spring/service.xml |  54 +--
 .../java-server/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/User.java      | 172 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  48 +--
 .../com/ikurento/user/impl/UserProviderImpl.java   |  64 +--
 .../resources/META-INF/spring/dubbo.provider.xml   |  64 +--
 .../src/main/resources/log4j.properties            |  40 +-
 .../nacos/dubbo/go-client/profiles/dev/log.yml     |  56 +--
 .../nacos/dubbo/go-server/profiles/dev/log.yml     |  56 +--
 .../zookeeper/dubbo/go-client/profiles/dev/log.yml |  56 +--
 .../zookeeper/dubbo/go-server/profiles/dev/log.yml |  56 +--
 configcenter/zookeeper/dubbo/java-client/pom.xml   | 410 +++++++++---------
 .../java-client/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/Consumer.java  | 126 +++---
 .../src/main/java/com/ikurento/user/User.java      | 152 +++----
 .../main/java/com/ikurento/user/UserProvider.java  |  36 +-
 .../src/main/resources/META-INF/spring/service.xml |  54 +--
 .../java-server/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/User.java      | 172 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  48 +--
 .../com/ikurento/user/impl/UserProviderImpl.java   |  64 +--
 .../resources/META-INF/spring/dubbo.provider.xml   |  64 +--
 .../src/main/resources/log4j.properties            |  40 +-
 direct/README.md                                   |   6 +-
 direct/dubbo/.travis.yml                           |  20 +-
 direct/dubbo/go-client/app/client.go               |   1 +
 direct/dubbo/go-client/integration_testing.sh      |  31 ++
 direct/dubbo/go-client/profiles/dev/log.yml        |  56 +--
 direct/dubbo/go-client/profiles/release/log.yml    |  56 +--
 direct/dubbo/go-client/profiles/test/log.yml       |  56 +--
 direct/dubbo/go-server/integration_testing.sh      |  31 ++
 direct/dubbo/go-server/profiles/dev/log.yml        |  56 +--
 direct/dubbo/go-server/profiles/release/log.yml    |  56 +--
 direct/dubbo/go-server/profiles/test/log.yml       |  56 +--
 .../dubbo/go-client/profiles/dev/log.yml           |  56 +--
 .../dubbo/go-client/profiles/release/log.yml       |  56 +--
 .../dubbo/go-client/profiles/test/log.yml          |  56 +--
 .../dubbo/go-server/profiles/dev/log.yml           |  56 +--
 .../dubbo/go-server/profiles/release/log.yml       |  56 +--
 .../dubbo/go-server/profiles/test/log.yml          |  56 +--
 .../tpslimit/dubbo/go-client/profiles/dev/log.yml  |  56 +--
 .../dubbo/go-client/profiles/release/log.yml       |  56 +--
 .../tpslimit/dubbo/go-client/profiles/test/log.yml |  56 +--
 .../tpslimit/dubbo/go-server/profiles/dev/log.yml  |  56 +--
 .../dubbo/go-server/profiles/release/log.yml       |  56 +--
 .../tpslimit/dubbo/go-server/profiles/test/log.yml |  56 +--
 general/dubbo/go-client/profiles/dev/log.yml       |  56 +--
 general/dubbo/go-client/profiles/release/log.yml   |  56 +--
 general/dubbo/go-client/profiles/test/log.yml      |  56 +--
 general/dubbo/go-server/profiles/dev/log.yml       |  56 +--
 general/dubbo/go-server/profiles/release/log.yml   |  56 +--
 general/dubbo/go-server/profiles/test/log.yml      |  56 +--
 general/dubbo/java-client/pom.xml                  | 460 ++++++++++-----------
 .../java-client/src/main/assembly/assembly.xml     |  76 ++--
 .../src/main/assembly/conf/dubbo.properties        |  26 +-
 .../src/main/java/com/ikurento/user/Consumer.java  | 454 ++++++++++----------
 .../src/main/java/com/ikurento/user/Gender.java    |  46 +--
 .../src/main/java/com/ikurento/user/User.java      | 166 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  54 +--
 .../src/main/resources/META-INF/spring/service.xml |  76 ++--
 .../java-server/src/main/assembly/assembly.xml     |  88 ++--
 .../src/main/assembly/conf/dubbo.properties        |  28 +-
 .../src/main/assembly/conf/log4j.properties        |  40 +-
 .../src/main/java/com/ikurento/user/Gender.java    |  46 +--
 .../src/main/java/com/ikurento/user/User.java      | 190 ++++-----
 .../main/java/com/ikurento/user/UserProvider.java  | 100 ++---
 .../com/ikurento/user/UserProviderAnotherImpl.java | 286 ++++++-------
 .../java/com/ikurento/user/UserProviderImpl.java   | 238 +++++------
 .../resources/META-INF/spring/dubbo.provider.xml   |  78 ++--
 .../src/main/resources/log4j.properties            |  40 +-
 general/grpc/go-client/profiles/dev/log.yml        |  56 +--
 general/grpc/go-client/profiles/release/log.yml    |  56 +--
 general/grpc/go-client/profiles/test/log.yml       |  56 +--
 general/grpc/go-server/profiles/dev/log.yml        |  56 +--
 general/grpc/go-server/profiles/release/log.yml    |  56 +--
 general/grpc/go-server/profiles/test/log.yml       |  56 +--
 general/jsonrpc/go-client/profiles/dev/log.yml     |  56 +--
 general/jsonrpc/go-client/profiles/release/log.yml |  56 +--
 general/jsonrpc/go-client/profiles/test/log.yml    |  56 +--
 general/jsonrpc/go-server/profiles/dev/log.yml     |  56 +--
 general/jsonrpc/go-server/profiles/release/log.yml |  56 +--
 general/jsonrpc/go-server/profiles/test/log.yml    |  56 +--
 .../java-client/src/main/assembly/assembly.xml     |  76 ++--
 .../src/main/assembly/conf/dubbo.properties        |  26 +-
 .../src/main/java/com/ikurento/user/Consumer.java  | 422 +++++++++----------
 .../src/main/java/com/ikurento/user/Gender.java    |  46 +--
 .../src/main/java/com/ikurento/user/User.java      | 166 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  50 +--
 .../src/main/resources/META-INF/spring/service.xml |  76 ++--
 .../src/main/resources/dubbo.properties            |  26 +-
 .../java-server/src/main/assembly/assembly.xml     |  88 ++--
 .../src/main/assembly/conf/dubbo.properties        |  28 +-
 .../src/main/assembly/conf/log4j.properties        |  40 +-
 .../src/main/java/com/ikurento/user/Gender.java    |  46 +--
 .../src/main/java/com/ikurento/user/User.java      | 190 ++++-----
 .../main/java/com/ikurento/user/UserProvider.java  |  92 ++---
 .../com/ikurento/user/UserProviderAnotherImpl.java | 268 ++++++------
 .../java/com/ikurento/user/UserProviderImpl.java   | 222 +++++-----
 .../resources/META-INF/spring/dubbo.provider.xml   |  78 ++--
 .../src/main/resources/log4j.properties            |  40 +-
 generic/go-client/profiles/dev/log.yml             |  56 +--
 generic/go-client/profiles/release/log.yml         |  56 +--
 generic/go-client/profiles/test/log.yml            |  56 +--
 .../src/main/resources/log4j.properties            |  40 +-
 generic/java-server/src/main/assembly/assembly.xml |  88 ++--
 .../src/main/assembly/conf/dubbo.properties        |  28 +-
 .../src/main/assembly/conf/log4j.properties        |  40 +-
 .../src/main/java/com/ikurento/user/Gender.java    |  46 +--
 .../src/main/java/com/ikurento/user/User.java      | 190 ++++-----
 .../main/java/com/ikurento/user/UserProvider.java  |  96 ++---
 .../com/ikurento/user/UserProviderAnotherImpl.java | 274 ++++++------
 .../java/com/ikurento/user/UserProviderImpl.java   | 230 +++++------
 .../resources/META-INF/spring/dubbo.provider.xml   |  76 ++--
 .../src/main/resources/log4j.properties            |  40 +-
 helloworld/dubbo/.travis.yml                       |  22 +-
 helloworld/dubbo/go-client/app/client.go           |   1 +
 helloworld/dubbo/go-client/integration_testing.sh  |  31 ++
 helloworld/dubbo/go-client/profiles/dev/log.yml    |  56 +--
 .../dubbo/go-client/profiles/release/log.yml       |  56 +--
 helloworld/dubbo/go-client/profiles/test/log.yml   |  56 +--
 helloworld/dubbo/go-server/integration_testing.sh  |  31 ++
 helloworld/dubbo/go-server/profiles/dev/log.yml    |  56 +--
 .../dubbo/go-server/profiles/release/log.yml       |  56 +--
 helloworld/dubbo/go-server/profiles/test/log.yml   |  56 +--
 helloworld/dubbo/java-client/pom.xml               | 460 ++++++++++-----------
 .../java-client/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/Consumer.java  | 120 +++---
 .../src/main/java/com/ikurento/user/User.java      | 152 +++----
 .../main/java/com/ikurento/user/UserProvider.java  |  36 +-
 .../src/main/resources/META-INF/spring/service.xml |  54 +--
 .../src/main/resources/dubbo.properties            |  26 +-
 .../java-server/src/main/assembly/assembly.xml     |  86 ++--
 .../src/main/java/com/ikurento/user/User.java      | 172 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  48 +--
 .../java/com/ikurento/user/UserProviderImpl.java   |  60 +--
 .../resources/META-INF/spring/dubbo.provider.xml   |  66 +--
 .../src/main/resources/dubbo.properties            |  28 +-
 .../src/main/resources/log4j.properties            |  40 +-
 metric/dubbo/go-client/profiles/dev/log.yml        |  56 +--
 metric/dubbo/go-client/profiles/release/log.yml    |  56 +--
 metric/dubbo/go-client/profiles/test/log.yml       |  56 +--
 metric/dubbo/go-server/profiles/dev/log.yml        |  56 +--
 metric/dubbo/go-server/profiles/release/log.yml    |  56 +--
 metric/dubbo/go-server/profiles/test/log.yml       |  56 +--
 .../dubbo/go-client/profiles/dev/log.yml           |  56 +--
 .../dubbo/go-server/profiles/dev/log.yml           |  56 +--
 multi_registry/dubbo/java-client/pom.xml           | 460 ++++++++++-----------
 .../java-client/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/Consumer.java  | 120 +++---
 .../src/main/java/com/ikurento/user/User.java      | 152 +++----
 .../main/java/com/ikurento/user/UserProvider.java  |  36 +-
 .../src/main/resources/META-INF/spring/service.xml |  54 +--
 .../src/main/resources/dubbo.properties            |  26 +-
 .../java-server/src/main/assembly/assembly.xml     |  86 ++--
 .../src/main/java/com/ikurento/user/User.java      | 172 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  48 +--
 .../java/com/ikurento/user/UserProviderImpl.java   |  60 +--
 .../resources/META-INF/spring/dubbo.provider.xml   |  66 +--
 .../src/main/resources/dubbo.properties            |  28 +-
 .../src/main/resources/log4j.properties            |  40 +-
 registry/kubernetes/README.md                      |  56 +--
 registry/nacos/README.md                           |   6 +-
 .../etcd/go-client/profiles/dev/log.yml            |  56 +--
 .../etcd/go-client/profiles/release/log.yml        |  56 +--
 .../etcd/go-client/profiles/test/log.yml           |  56 +--
 .../etcd/go-server/profiles/dev/log.yml            |  56 +--
 .../etcd/go-server/profiles/release/log.yml        |  56 +--
 .../etcd/go-server/profiles/test/log.yml           |  56 +--
 registry/servicediscovery/etcd/java-client/pom.xml | 262 ++++++------
 .../java-client/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/Consumer.java  |  72 ++--
 .../src/main/java/com/ikurento/user/User.java      | 152 +++----
 .../main/java/com/ikurento/user/UserProvider.java  |  36 +-
 .../src/main/resources/META-INF/spring/service.xml |  54 +--
 .../src/main/resources/dubbo.properties            |  26 +-
 .../java-server/src/main/assembly/assembly.xml     |  86 ++--
 .../src/main/java/com/ikurento/user/User.java      | 172 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  48 +--
 .../java/com/ikurento/user/UserProviderImpl.java   |  60 +--
 .../resources/META-INF/spring/dubbo.provider.xml   |  78 ++--
 .../src/main/resources/log4j.properties            |  40 +-
 .../nacos/go-client/profiles/dev/log.yml           |  56 +--
 .../nacos/go-client/profiles/release/log.yml       |  56 +--
 .../nacos/go-client/profiles/test/log.yml          |  56 +--
 .../nacos/go-server/profiles/dev/log.yml           |  56 +--
 .../nacos/go-server/profiles/release/log.yml       |  56 +--
 .../nacos/go-server/profiles/test/log.yml          |  56 +--
 .../servicediscovery/nacos/java-client/pom.xml     | 262 ++++++------
 .../java-client/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/Consumer.java  |  72 ++--
 .../src/main/java/com/ikurento/user/User.java      | 152 +++----
 .../main/java/com/ikurento/user/UserProvider.java  |  36 +-
 .../src/main/resources/META-INF/spring/service.xml |  54 +--
 .../src/main/resources/dubbo.properties            |  26 +-
 .../java-server/src/main/assembly/assembly.xml     |  86 ++--
 .../src/main/java/com/ikurento/user/User.java      | 172 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  48 +--
 .../java/com/ikurento/user/UserProviderImpl.java   |  60 +--
 .../resources/META-INF/spring/dubbo.provider.xml   |  78 ++--
 .../src/main/resources/log4j.properties            |  40 +-
 .../zookeeper/go-client/profiles/dev/log.yml       |  56 +--
 .../zookeeper/go-client/profiles/release/log.yml   |  56 +--
 .../zookeeper/go-client/profiles/test/log.yml      |  56 +--
 .../zookeeper/go-server/profiles/dev/log.yml       |  56 +--
 .../zookeeper/go-server/profiles/release/log.yml   |  56 +--
 .../zookeeper/go-server/profiles/test/log.yml      |  56 +--
 .../servicediscovery/zookeeper/java-client/pom.xml | 262 ++++++------
 .../java-client/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/Consumer.java  |  72 ++--
 .../src/main/java/com/ikurento/user/User.java      | 152 +++----
 .../main/java/com/ikurento/user/UserProvider.java  |  36 +-
 .../src/main/resources/META-INF/spring/service.xml |  54 +--
 .../src/main/resources/dubbo.properties            |  26 +-
 .../java-server/src/main/assembly/assembly.xml     |  86 ++--
 .../src/main/java/com/ikurento/user/User.java      | 172 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  48 +--
 .../java/com/ikurento/user/UserProviderImpl.java   |  60 +--
 .../resources/META-INF/spring/dubbo.provider.xml   |  78 ++--
 .../src/main/resources/log4j.properties            |  40 +-
 seata/client/profiles/dev/log.yml                  |  56 +--
 seata/client/profiles/release/log.yml              |  56 +--
 seata/client/profiles/test/log.yml                 |  56 +--
 seata/order-svc/profiles/dev/log.yml               |  56 +--
 seata/order-svc/profiles/release/log.yml           |  56 +--
 seata/order-svc/profiles/test/log.yml              |  56 +--
 seata/product-svc/profiles/dev/log.yml             |  56 +--
 seata/product-svc/profiles/release/log.yml         |  56 +--
 seata/product-svc/profiles/test/log.yml            |  56 +--
 tracing/dubbo/go-client/profiles/dev/log.yml       |  56 +--
 tracing/dubbo/go-client/profiles/release/log.yml   |  56 +--
 tracing/dubbo/go-client/profiles/test/log.yml      |  56 +--
 tracing/dubbo/go-server/profiles/dev/log.yml       |  56 +--
 tracing/dubbo/go-server/profiles/release/log.yml   |  56 +--
 tracing/dubbo/go-server/profiles/test/log.yml      |  56 +--
 tracing/dubbo/java-client/pom.xml                  | 460 ++++++++++-----------
 .../java-client/src/main/assembly/assembly.xml     |  84 ++--
 .../src/main/java/com/ikurento/user/Consumer.java  | 120 +++---
 .../src/main/java/com/ikurento/user/User.java      | 152 +++----
 .../main/java/com/ikurento/user/UserProvider.java  |  36 +-
 .../src/main/resources/META-INF/spring/service.xml |  54 +--
 .../src/main/resources/dubbo.properties            |  26 +-
 .../java-server/src/main/assembly/assembly.xml     |  86 ++--
 .../src/main/java/com/ikurento/user/User.java      | 172 ++++----
 .../main/java/com/ikurento/user/UserProvider.java  |  48 +--
 .../java/com/ikurento/user/UserProviderImpl.java   |  60 +--
 .../resources/META-INF/spring/dubbo.provider.xml   |  66 +--
 .../src/main/resources/dubbo.properties            |  28 +-
 .../src/main/resources/log4j.properties            |  40 +-
 tracing/jsonrpc/go-client/profiles/dev/log.yml     |  56 +--
 tracing/jsonrpc/go-client/profiles/release/log.yml |  56 +--
 tracing/jsonrpc/go-client/profiles/test/log.yml    |  56 +--
 tracing/jsonrpc/go-server/profiles/dev/log.yml     |  56 +--
 tracing/jsonrpc/go-server/profiles/release/log.yml |  56 +--
 tracing/jsonrpc/go-server/profiles/test/log.yml    |  56 +--
 265 files changed, 11052 insertions(+), 10858 deletions(-)

diff --git a/async/.travis.yml b/async/.travis.yml
new file mode 100644
index 0000000..6177f28
--- /dev/null
+++ b/async/.travis.yml
@@ -0,0 +1,16 @@
+stages:
+  - Test async
+jobs:
+  include:
+    - stage: Test async
+      script:
+        - PROJECT_HOME=$(pwd)/golang
+        - CASE_HOME=/direct/dubbo
+        - GO_SERVER=/go-server
+        - GO_CLIENT=/go-client
+        - docker run -d --network host zookeeper
+        - echo "zookeeper listen in [:]2181"
+        - cd ${PROJECT_HOME}${CASE_HOME}${GO_SERVER}
+        - ./integration_testing.sh ${PROJECT_HOME} ${GO_SERVER} true
+        - cd ${PROJECT_HOME}${CASE_HOME}${GO_CLIENT}
+        - ./integration_testing.sh ${PROJECT_HOME} ${GO_CLIENT}
\ No newline at end of file
diff --git a/async/go-client/app/client.go b/async/go-client/app/client.go
index c4e79ca..1d80808 100644
--- a/async/go-client/app/client.go
+++ b/async/go-client/app/client.go
@@ -62,10 +62,12 @@ func main() {
 	user := &User{}
 	err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
 	if err != nil {
-		panic(err)
+		gxlog.CError("error: %v\n", err)
+		os.Exit(1)
+		return
 	}
 	gxlog.CInfo("response result: %v\n", user)
-	initSignal()
+	//initSignal()
 }
 
 func initSignal() {
diff --git a/async/go-client/integration_testing.sh b/async/go-client/integration_testing.sh
new file mode 100755
index 0000000..49f7b49
--- /dev/null
+++ b/async/go-client/integration_testing.sh
@@ -0,0 +1,31 @@
+#
+#  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.
+
+#!/bin/bash
+
+set -e
+set -x
+
+rm -rf assembly
+cp -r $1/.integration/testing/$2/assembly .
+assembly/linux/dev.sh
+cd target/*/*/
+# is async
+if [[ $3 ]]; then
+	nohup bin/load.sh start > a.out&
+else
+	bin/load.sh start
+fi
\ No newline at end of file
diff --git a/async/go-server/integration_testing.sh b/async/go-server/integration_testing.sh
new file mode 100755
index 0000000..49f7b49
--- /dev/null
+++ b/async/go-server/integration_testing.sh
@@ -0,0 +1,31 @@
+#
+#  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.
+
+#!/bin/bash
+
+set -e
+set -x
+
+rm -rf assembly
+cp -r $1/.integration/testing/$2/assembly .
+assembly/linux/dev.sh
+cd target/*/*/
+# is async
+if [[ $3 ]]; then
+	nohup bin/load.sh start > a.out&
+else
+	bin/load.sh start
+fi
\ No newline at end of file
diff --git a/configcenter/apollo/dubbo/go-client/profiles/dev/log.yml b/configcenter/apollo/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/configcenter/apollo/dubbo/go-client/profiles/dev/log.yml
+++ b/configcenter/apollo/dubbo/go-client/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/configcenter/apollo/dubbo/go-server/profiles/dev/log.yml b/configcenter/apollo/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/configcenter/apollo/dubbo/go-server/profiles/dev/log.yml
+++ b/configcenter/apollo/dubbo/go-server/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/configcenter/apollo/dubbo/java-client/pom.xml b/configcenter/apollo/dubbo/java-client/pom.xml
index ce2d151..ba1f191 100644
--- a/configcenter/apollo/dubbo/java-client/pom.xml
+++ b/configcenter/apollo/dubbo/java-client/pom.xml
@@ -1,211 +1,211 @@
-<?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: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>
-
-	<groupId>com.ikurento</groupId>
-	<artifactId>user-info-client</artifactId>
-	<packaging>jar</packaging>
-	<version>0.2.0</version>
-	<description>The demo consumer module of dubbo project</description>
-
-	<properties>
-		<source.level>1.8</source.level>
-		<target.level>1.8</target.level>
-		<dubbo.version>2.7.3</dubbo.version>
-		<spring.version>4.3.16.RELEASE</spring.version>
-		<junit.version>4.12</junit.version>
-		<docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
-		<jib-maven-plugin.version>1.2.0</jib-maven-plugin.version>
-		<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
-		<maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
-		<image.name>${artifactId}:${dubbo.version}</image.name>
-		<java-image.name>openjdk:8</java-image.name>
-		<dubbo.port>20880</dubbo.port>
-		<zookeeper.port>2181</zookeeper.port>
-	</properties>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.dubbo</groupId>
-			<artifactId>dubbo</artifactId>
-			<version>${dubbo.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.dubbo</groupId>
-			<artifactId>dubbo-dependencies-zookeeper</artifactId>
-			<version>${dubbo.version}</version>
-			<type>pom</type>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.dubbo</groupId>
-			<artifactId>dubbo-configcenter-apollo</artifactId>
-			<version>${dubbo.version}</version>
-			<type>pom</type>
-		</dependency>
-
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>${junit.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-test</artifactId>
-			<version>${spring.version}</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-
-	<profiles>
-		<profile>
-			<id>dubbo-integration-test</id>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.apache.dubbo</groupId>
-						<artifactId>dubbo-maven-address-plugin</artifactId>
-						<version>1.0-SNAPSHOT</version>
-						<executions>
-							<execution>
-								<goals>
-									<goal>local-address</goal>
-								</goals>
-								<configuration>
-									<localAddress>dubbo-local-address</localAddress>
-								</configuration>
-								<phase>initialize</phase>
-							</execution>
-						</executions>
-					</plugin>
-
-					<plugin>
-						<groupId>com.google.cloud.tools</groupId>
-						<artifactId>jib-maven-plugin</artifactId>
-						<version>${jib-maven-plugin.version}</version>
-						<configuration>
-							<from>
-								<image>${java-image.name}</image>
-							</from>
-							<to>
-								<image>${image.name}</image>
-							</to>
-							<container>
-								<mainClass>${main-class}</mainClass>
-								<ports>
-									<port>${dubbo.port}</port>
-									<port>${zookeeper.port}</port>
-								</ports>
-								<environment>
-									<DUBBO_IP_TO_REGISTRY>${dubbo-local-address}</DUBBO_IP_TO_REGISTRY>
-								</environment>
-								<jvmFlags>
-									<jvmFlag>-Dzookeeper.address=${dubbo-local-address}</jvmFlag>
-								</jvmFlags>
-							</container>
-						</configuration>
-						<executions>
-							<execution>
-								<phase>package</phase>
-								<goals>
-									<goal>dockerBuild</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-
-					<plugin>
-						<groupId>io.fabric8</groupId>
-						<artifactId>docker-maven-plugin</artifactId>
-						<version>${docker-maven-plugin.version}</version>
-						<configuration>
-							<images>
-								<image>
-									<name>${image.name}</name>
-									<run>
-										<ports>
-											<port>${dubbo.port}:${dubbo.port}</port>
-											<port>${zookeeper.port}:${zookeeper.port}</port>
-										</ports>
-										<wait>
-											<log>dubbo service started</log>
-										</wait>
-									</run>
-								</image>
-							</images>
-						</configuration>
-						<executions>
-							<execution>
-								<id>start</id>
-								<phase>pre-integration-test</phase>
-								<goals>
-									<goal>start</goal>
-								</goals>
-							</execution>
-							<execution>
-								<id>stop</id>
-								<phase>post-integration-test</phase>
-								<goals>
-									<goal>stop</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-failsafe-plugin</artifactId>
-						<version>${maven-failsafe-plugin.version}</version>
-						<executions>
-							<execution>
-								<goals>
-									<goal>integration-test</goal>
-									<goal>verify</goal>
-								</goals>
-								<configuration>
-									<systemPropertyVariables>
-										<zookeeper.address>${dubbo-local-address}</zookeeper.address>
-									</systemPropertyVariables>
-									<includes>
-										<include>**/*IT.java</include>
-									</includes>
-								</configuration>
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>${maven-compiler-plugin.version}</version>
-				<configuration>
-					<source>${source.level}</source>
-					<target>${target.level}</target>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
+<?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: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>
+
+	<groupId>com.ikurento</groupId>
+	<artifactId>user-info-client</artifactId>
+	<packaging>jar</packaging>
+	<version>0.2.0</version>
+	<description>The demo consumer module of dubbo project</description>
+
+	<properties>
+		<source.level>1.8</source.level>
+		<target.level>1.8</target.level>
+		<dubbo.version>2.7.3</dubbo.version>
+		<spring.version>4.3.16.RELEASE</spring.version>
+		<junit.version>4.12</junit.version>
+		<docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
+		<jib-maven-plugin.version>1.2.0</jib-maven-plugin.version>
+		<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
+		<maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
+		<image.name>${artifactId}:${dubbo.version}</image.name>
+		<java-image.name>openjdk:8</java-image.name>
+		<dubbo.port>20880</dubbo.port>
+		<zookeeper.port>2181</zookeeper.port>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.dubbo</groupId>
+			<artifactId>dubbo</artifactId>
+			<version>${dubbo.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.dubbo</groupId>
+			<artifactId>dubbo-dependencies-zookeeper</artifactId>
+			<version>${dubbo.version}</version>
+			<type>pom</type>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.dubbo</groupId>
+			<artifactId>dubbo-configcenter-apollo</artifactId>
+			<version>${dubbo.version}</version>
+			<type>pom</type>
+		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>${junit.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-test</artifactId>
+			<version>${spring.version}</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+	<profiles>
+		<profile>
+			<id>dubbo-integration-test</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.dubbo</groupId>
+						<artifactId>dubbo-maven-address-plugin</artifactId>
+						<version>1.0-SNAPSHOT</version>
+						<executions>
+							<execution>
+								<goals>
+									<goal>local-address</goal>
+								</goals>
+								<configuration>
+									<localAddress>dubbo-local-address</localAddress>
+								</configuration>
+								<phase>initialize</phase>
+							</execution>
+						</executions>
+					</plugin>
+
+					<plugin>
+						<groupId>com.google.cloud.tools</groupId>
+						<artifactId>jib-maven-plugin</artifactId>
+						<version>${jib-maven-plugin.version}</version>
+						<configuration>
+							<from>
+								<image>${java-image.name}</image>
+							</from>
+							<to>
+								<image>${image.name}</image>
+							</to>
+							<container>
+								<mainClass>${main-class}</mainClass>
+								<ports>
+									<port>${dubbo.port}</port>
+									<port>${zookeeper.port}</port>
+								</ports>
+								<environment>
+									<DUBBO_IP_TO_REGISTRY>${dubbo-local-address}</DUBBO_IP_TO_REGISTRY>
+								</environment>
+								<jvmFlags>
+									<jvmFlag>-Dzookeeper.address=${dubbo-local-address}</jvmFlag>
+								</jvmFlags>
+							</container>
+						</configuration>
+						<executions>
+							<execution>
+								<phase>package</phase>
+								<goals>
+									<goal>dockerBuild</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+
+					<plugin>
+						<groupId>io.fabric8</groupId>
+						<artifactId>docker-maven-plugin</artifactId>
+						<version>${docker-maven-plugin.version}</version>
+						<configuration>
+							<images>
+								<image>
+									<name>${image.name}</name>
+									<run>
+										<ports>
+											<port>${dubbo.port}:${dubbo.port}</port>
+											<port>${zookeeper.port}:${zookeeper.port}</port>
+										</ports>
+										<wait>
+											<log>dubbo service started</log>
+										</wait>
+									</run>
+								</image>
+							</images>
+						</configuration>
+						<executions>
+							<execution>
+								<id>start</id>
+								<phase>pre-integration-test</phase>
+								<goals>
+									<goal>start</goal>
+								</goals>
+							</execution>
+							<execution>
+								<id>stop</id>
+								<phase>post-integration-test</phase>
+								<goals>
+									<goal>stop</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-failsafe-plugin</artifactId>
+						<version>${maven-failsafe-plugin.version}</version>
+						<executions>
+							<execution>
+								<goals>
+									<goal>integration-test</goal>
+									<goal>verify</goal>
+								</goals>
+								<configuration>
+									<systemPropertyVariables>
+										<zookeeper.address>${dubbo-local-address}</zookeeper.address>
+									</systemPropertyVariables>
+									<includes>
+										<include>**/*IT.java</include>
+									</includes>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>${maven-compiler-plugin.version}</version>
+				<configuration>
+					<source>${source.level}</source>
+					<target>${target.level}</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/configcenter/apollo/dubbo/java-client/src/main/assembly/assembly.xml b/configcenter/apollo/dubbo/java-client/src/main/assembly/assembly.xml
index 84f5499..bc00a06 100644
--- a/configcenter/apollo/dubbo/java-client/src/main/assembly/assembly.xml
+++ b/configcenter/apollo/dubbo/java-client/src/main/assembly/assembly.xml
@@ -1,43 +1,43 @@
-<?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.
--->
-
-<assembly>
-	<id>assembly</id>
-	<formats>
-		<format>tar.gz</format>
-	</formats>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<fileSets>
-		<fileSet>
-			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
-			<outputDirectory>bin</outputDirectory>
-			<fileMode>0755</fileMode>
-		</fileSet>
-		<fileSet>
-			<directory>src/main/resources</directory>
-			<includes>
-				<include>dubbo.properties</include>
-				<include>log4j.*</include>
-			</includes>
-			<outputDirectory>conf</outputDirectory>
-			<fileMode>0644</fileMode>
-		</fileSet>
-	</fileSets>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>lib</outputDirectory>
-		</dependencySet>
-	</dependencySets>
+<?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.
+-->
+
+<assembly>
+	<id>assembly</id>
+	<formats>
+		<format>tar.gz</format>
+	</formats>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+		</fileSet>
+		<fileSet>
+			<directory>src/main/resources</directory>
+			<includes>
+				<include>dubbo.properties</include>
+				<include>log4j.*</include>
+			</includes>
+			<outputDirectory>conf</outputDirectory>
+			<fileMode>0644</fileMode>
+		</fileSet>
+	</fileSets>
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>lib</outputDirectory>
+		</dependencySet>
+	</dependencySets>
 </assembly>
\ No newline at end of file
diff --git a/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java b/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
index 7714e03..1ede49f 100644
--- a/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,61 +1,61 @@
-/*
- * 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.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-
-public class Consumer {
-    // Define a private variable (Required in Spring)
-    private UserProvider userProvider;
-
-    // Spring DI (Required in Spring)
-    public void setUserProvider(UserProvider u) {
-        this.userProvider = u;
-    }
-
-    public static void main(String[] args) throws Exception {
-        new EmbeddedZooKeeper(2181, false).start();
-        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml","META-INF/spring/service.xml");
-        context.start();
-        context.getBean(Consumer.class).start();
-    }
-
-    // Start the entry function for consumer (Specified in the configuration file)
-    public void start() {
-        System.out.println("\n\ntest");
-        testGetUser();
-    }
-
-    private void testGetUser() {
-        try {
-            User user1 = userProvider.GetUser("A003");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName()
-                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
-
-        } catch (Exception e) {
-            System.out.println("*************exception***********");
-            e.printStackTrace();
-        }
-    }
-
-}
+/*
+ * 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.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+
+public class Consumer {
+    // Define a private variable (Required in Spring)
+    private UserProvider userProvider;
+
+    // Spring DI (Required in Spring)
+    public void setUserProvider(UserProvider u) {
+        this.userProvider = u;
+    }
+
+    public static void main(String[] args) throws Exception {
+        new EmbeddedZooKeeper(2181, false).start();
+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml","META-INF/spring/service.xml");
+        context.start();
+        context.getBean(Consumer.class).start();
+    }
+
+    // Start the entry function for consumer (Specified in the configuration file)
+    public void start() {
+        System.out.println("\n\ntest");
+        testGetUser();
+    }
+
+    private void testGetUser() {
+        try {
+            User user1 = userProvider.GetUser("A003");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName()
+                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
+
+        } catch (Exception e) {
+            System.out.println("*************exception***********");
+            e.printStackTrace();
+        }
+    }
+
+}
diff --git a/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/User.java b/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/User.java
index 1526244..666e904 100644
--- a/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/User.java
+++ b/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/User.java
@@ -1,76 +1,76 @@
-/*
- * 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.util.Date;
-
-public class User {
-
-    private String id;
-
-    private String name;
-
-    private int age;
-
-    private Date time = new Date();
-
-
-    public User() {
-    }
-
-
-    public User(String id, String name, int age) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public int getAge() {
-        return age;
-    }
-
-    public void setAge(int age) {
-        this.age = age;
-    }
-
-    public Date getTime() {
-        return time;
-    }
-
-    public void setTime(Date time) {
-        this.time = time;
-    }
-
-
-}
+/*
+ * 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.util.Date;
+
+public class User {
+
+    private String id;
+
+    private String name;
+
+    private int age;
+
+    private Date time = new Date();
+
+
+    public User() {
+    }
+
+
+    public User(String id, String name, int age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+
+}
diff --git a/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java b/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
index f42452d..67a836a 100644
--- a/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/configcenter/apollo/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
@@ -1,18 +1,18 @@
-/*
- * 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.
- */
-package com.ikurento.user;
-
-public interface UserProvider {
-	User GetUser(String userId);
-}
+/*
+ * 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.
+ */
+package com.ikurento.user;
+
+public interface UserProvider {
+	User GetUser(String userId);
+}
diff --git a/configcenter/apollo/dubbo/java-client/src/main/resources/META-INF/spring/service.xml b/configcenter/apollo/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
index e4f5fda..529f63e 100644
--- a/configcenter/apollo/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/configcenter/apollo/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
@@ -1,27 +1,27 @@
-<?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.
--->
-<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"
-	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
-
-	<bean class="com.ikurento.user.Consumer" init-method="start">
-		<!-- 声明这个类 要使用的服务名-->
-		<property name="userProvider" ref="userProvider" />
-	</bean>
-
-</beans>
+<?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.
+-->
+<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"
+	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
+
+	<bean class="com.ikurento.user.Consumer" init-method="start">
+		<!-- 声明这个类 要使用的服务名-->
+		<property name="userProvider" ref="userProvider" />
+	</bean>
+
+</beans>
diff --git a/configcenter/apollo/dubbo/java-server/src/main/assembly/assembly.xml b/configcenter/apollo/dubbo/java-server/src/main/assembly/assembly.xml
index ce8e7e7..5ab3425 100644
--- a/configcenter/apollo/dubbo/java-server/src/main/assembly/assembly.xml
+++ b/configcenter/apollo/dubbo/java-server/src/main/assembly/assembly.xml
@@ -1,43 +1,43 @@
-<?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.
--->
-<assembly>
-	<id>assembly</id>
-	<formats>
-		<format>tar.gz</format>
-	</formats>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<fileSets>
-		<fileSet>
-			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
-			<outputDirectory>bin</outputDirectory>
-			<fileMode>0755</fileMode>
-            <directoryMode>0755</directoryMode>
-		</fileSet>
-		<fileSet>
-            <directory>src/main/resources</directory>
-            <includes>
-                <include>log4j.*</include>
-            </includes>
-			<outputDirectory>conf</outputDirectory>
-			<fileMode>0644</fileMode>
-            <directoryMode>0755</directoryMode>
-		</fileSet>
-	</fileSets>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>lib</outputDirectory>
-		</dependencySet>
-	</dependencySets>
+<?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.
+-->
+<assembly>
+	<id>assembly</id>
+	<formats>
+		<format>tar.gz</format>
+	</formats>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+            <directoryMode>0755</directoryMode>
+		</fileSet>
+		<fileSet>
+            <directory>src/main/resources</directory>
+            <includes>
+                <include>log4j.*</include>
+            </includes>
+			<outputDirectory>conf</outputDirectory>
+			<fileMode>0644</fileMode>
+            <directoryMode>0755</directoryMode>
+		</fileSet>
+	</fileSets>
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>lib</outputDirectory>
+		</dependencySet>
+	</dependencySets>
 </assembly>
\ No newline at end of file
diff --git a/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/User.java b/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/User.java
index ac046bd..fd2cafb 100644
--- a/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/User.java
+++ b/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/User.java
@@ -1,86 +1,86 @@
-/*
- * 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.util.Date;
-import java.io.Serializable;
-
-public class User implements Serializable  {
-
-    private String id;
-
-    private String name;
-
-    private int age;
-
-    private Date time = new Date();
-
-    public User() {
-    }
-
-    public User(String id, String name, int age) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-    }
-
-    public User(String id, String name, int age, Date time) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-        this.time = time;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public int getAge() {
-        return age;
-    }
-
-    public void setAge(int age) {
-        this.age = age;
-    }
-
-    public Date getTime() {
-        return time;
-    }
-
-    public void setTime(Date time) {
-        this.time = time;
-    }
-
-
-
-    public String toString() {
-        return "User{id:" + id + ", name:" + name + ", age:" + age + ", time:" + time +"}";
-    }
-}
+/*
+ * 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.util.Date;
+import java.io.Serializable;
+
+public class User implements Serializable  {
+
+    private String id;
+
+    private String name;
+
+    private int age;
+
+    private Date time = new Date();
+
+    public User() {
+    }
+
+    public User(String id, String name, int age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    public User(String id, String name, int age, Date time) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+        this.time = time;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+
+
+    public String toString() {
+        return "User{id:" + id + ", name:" + name + ", age:" + age + ", time:" + time +"}";
+    }
+}
diff --git a/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java b/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 831588d..b1eeab8 100644
--- a/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
@@ -1,24 +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;
-
-public interface UserProvider {
-
-    User GetUser(String userId); // the first alpha is Upper case to compatible with golang.
-
-}
+/*
+ * 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 {
+
+    User GetUser(String userId); // the first alpha is Upper case to compatible with golang.
+
+}
diff --git a/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/impl/UserProviderImpl.java b/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/impl/UserProviderImpl.java
index 0caf910..57f4eba 100644
--- a/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/impl/UserProviderImpl.java
+++ b/configcenter/apollo/dubbo/java-server/src/main/java/com/ikurento/user/impl/UserProviderImpl.java
@@ -1,32 +1,32 @@
-/*
- * 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.impl;
-
-import com.ikurento.user.User;
-import com.ikurento.user.UserProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class UserProviderImpl implements UserProvider {
-    private static final Logger LOG = LoggerFactory.getLogger("UserLogger"); //Output to user-server.log
-
-    public User GetUser(String userId) {
-        return new User(userId, "zhangsan", 18);
-    }
-
-}
+/*
+ * 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.impl;
+
+import com.ikurento.user.User;
+import com.ikurento.user.UserProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class UserProviderImpl implements UserProvider {
+    private static final Logger LOG = LoggerFactory.getLogger("UserLogger"); //Output to user-server.log
+
+    public User GetUser(String userId) {
+        return new User(userId, "zhangsan", 18);
+    }
+
+}
diff --git a/configcenter/apollo/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/configcenter/apollo/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 9e1847e..b4501d6 100644
--- a/configcenter/apollo/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/configcenter/apollo/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
@@ -1,32 +1,32 @@
-<?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.
--->
-
-<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
-       xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
-       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
-
-    <context:property-placeholder/>
-    <!-- 应用名 -->
-    <dubbo:application name="user-info-server"/>
-    <dubbo:config-center protocol="apollo" address="127.0.0.1:8080"/>
-
-    <bean id="demoService" class="com.ikurento.user.impl.UserProviderImpl"/><!-- 声明需要暴露的服务接口 -->
-    <dubbo:service id="UserProvider1" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider"
-                   ref="demoService"/>
-    <dubbo:service id="UserProvider2" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider"
-                   ref="demoService"/>
-</beans>
+<?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.
+-->
+
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
+       xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+    <context:property-placeholder/>
+    <!-- 应用名 -->
+    <dubbo:application name="user-info-server"/>
+    <dubbo:config-center protocol="apollo" address="127.0.0.1:8080"/>
+
+    <bean id="demoService" class="com.ikurento.user.impl.UserProviderImpl"/><!-- 声明需要暴露的服务接口 -->
+    <dubbo:service id="UserProvider1" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider"
+                   ref="demoService"/>
+    <dubbo:service id="UserProvider2" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider"
+                   ref="demoService"/>
+</beans>
diff --git a/configcenter/apollo/dubbo/java-server/src/main/resources/log4j.properties b/configcenter/apollo/dubbo/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/configcenter/apollo/dubbo/java-server/src/main/resources/log4j.properties
+++ b/configcenter/apollo/dubbo/java-server/src/main/resources/log4j.properties
@@ -1,20 +1,20 @@
-## Logger configure file for myproject
-log.dir=logs/
-datestamp=yyyy-MM-dd/HH:mm:ss.SSS
-
-log4j.rootLogger=DEBUG, file, console
-
-log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.file.threshold=DEBUG
-log4j.appender.file.File=${log.dir}/log4j.log
-log4j.appender.file.DatePattern=-yyyyMMddHH
-log4j.appender.file.ImmediateFlush=true
-log4j.appender.file.Append=true
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.Threshold=DEBUG
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
+## Logger configure file for myproject
+log.dir=logs/
+datestamp=yyyy-MM-dd/HH:mm:ss.SSS
+
+log4j.rootLogger=DEBUG, file, console
+
+log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.file.threshold=DEBUG
+log4j.appender.file.File=${log.dir}/log4j.log
+log4j.appender.file.DatePattern=-yyyyMMddHH
+log4j.appender.file.ImmediateFlush=true
+log4j.appender.file.Append=true
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.Threshold=DEBUG
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
diff --git a/configcenter/nacos/dubbo/go-client/profiles/dev/log.yml b/configcenter/nacos/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/configcenter/nacos/dubbo/go-client/profiles/dev/log.yml
+++ b/configcenter/nacos/dubbo/go-client/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/configcenter/nacos/dubbo/go-server/profiles/dev/log.yml b/configcenter/nacos/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/configcenter/nacos/dubbo/go-server/profiles/dev/log.yml
+++ b/configcenter/nacos/dubbo/go-server/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/configcenter/zookeeper/dubbo/go-client/profiles/dev/log.yml b/configcenter/zookeeper/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/configcenter/zookeeper/dubbo/go-client/profiles/dev/log.yml
+++ b/configcenter/zookeeper/dubbo/go-client/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/configcenter/zookeeper/dubbo/go-server/profiles/dev/log.yml b/configcenter/zookeeper/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/configcenter/zookeeper/dubbo/go-server/profiles/dev/log.yml
+++ b/configcenter/zookeeper/dubbo/go-server/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/configcenter/zookeeper/dubbo/java-client/pom.xml b/configcenter/zookeeper/dubbo/java-client/pom.xml
index ea24bec..047df14 100644
--- a/configcenter/zookeeper/dubbo/java-client/pom.xml
+++ b/configcenter/zookeeper/dubbo/java-client/pom.xml
@@ -1,205 +1,205 @@
-<?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: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>
-
-	<groupId>com.ikurento</groupId>
-	<artifactId>user-info-client</artifactId>
-	<packaging>jar</packaging>
-	<version>0.2.0</version>
-	<description>The demo consumer module of dubbo project</description>
-
-	<properties>
-		<source.level>1.8</source.level>
-		<target.level>1.8</target.level>
-		<dubbo.version>2.7.3</dubbo.version>
-		<spring.version>4.3.16.RELEASE</spring.version>
-		<junit.version>4.12</junit.version>
-		<docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
-		<jib-maven-plugin.version>1.2.0</jib-maven-plugin.version>
-		<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
-		<maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
-		<image.name>${artifactId}:${dubbo.version}</image.name>
-		<java-image.name>openjdk:8</java-image.name>
-		<dubbo.port>20880</dubbo.port>
-		<zookeeper.port>2181</zookeeper.port>
-	</properties>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.dubbo</groupId>
-			<artifactId>dubbo</artifactId>
-			<version>${dubbo.version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.apache.dubbo</groupId>
-			<artifactId>dubbo-dependencies-zookeeper</artifactId>
-			<version>${dubbo.version}</version>
-			<type>pom</type>
-		</dependency>
-
-		<dependency>
-			<groupId>junit</groupId>
-			<artifactId>junit</artifactId>
-			<version>${junit.version}</version>
-			<scope>test</scope>
-		</dependency>
-
-		<dependency>
-			<groupId>org.springframework</groupId>
-			<artifactId>spring-test</artifactId>
-			<version>${spring.version}</version>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-
-	<profiles>
-		<profile>
-			<id>dubbo-integration-test</id>
-			<build>
-				<plugins>
-					<plugin>
-						<groupId>org.apache.dubbo</groupId>
-						<artifactId>dubbo-maven-address-plugin</artifactId>
-						<version>1.0-SNAPSHOT</version>
-						<executions>
-							<execution>
-								<goals>
-									<goal>local-address</goal>
-								</goals>
-								<configuration>
-									<localAddress>dubbo-local-address</localAddress>
-								</configuration>
-								<phase>initialize</phase>
-							</execution>
-						</executions>
-					</plugin>
-
-					<plugin>
-						<groupId>com.google.cloud.tools</groupId>
-						<artifactId>jib-maven-plugin</artifactId>
-						<version>${jib-maven-plugin.version}</version>
-						<configuration>
-							<from>
-								<image>${java-image.name}</image>
-							</from>
-							<to>
-								<image>${image.name}</image>
-							</to>
-							<container>
-								<mainClass>${main-class}</mainClass>
-								<ports>
-									<port>${dubbo.port}</port>
-									<port>${zookeeper.port}</port>
-								</ports>
-								<environment>
-									<DUBBO_IP_TO_REGISTRY>${dubbo-local-address}</DUBBO_IP_TO_REGISTRY>
-								</environment>
-								<jvmFlags>
-									<jvmFlag>-Dzookeeper.address=${dubbo-local-address}</jvmFlag>
-								</jvmFlags>
-							</container>
-						</configuration>
-						<executions>
-							<execution>
-								<phase>package</phase>
-								<goals>
-									<goal>dockerBuild</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-
-					<plugin>
-						<groupId>io.fabric8</groupId>
-						<artifactId>docker-maven-plugin</artifactId>
-						<version>${docker-maven-plugin.version}</version>
-						<configuration>
-							<images>
-								<image>
-									<name>${image.name}</name>
-									<run>
-										<ports>
-											<port>${dubbo.port}:${dubbo.port}</port>
-											<port>${zookeeper.port}:${zookeeper.port}</port>
-										</ports>
-										<wait>
-											<log>dubbo service started</log>
-										</wait>
-									</run>
-								</image>
-							</images>
-						</configuration>
-						<executions>
-							<execution>
-								<id>start</id>
-								<phase>pre-integration-test</phase>
-								<goals>
-									<goal>start</goal>
-								</goals>
-							</execution>
-							<execution>
-								<id>stop</id>
-								<phase>post-integration-test</phase>
-								<goals>
-									<goal>stop</goal>
-								</goals>
-							</execution>
-						</executions>
-					</plugin>
-
-					<plugin>
-						<groupId>org.apache.maven.plugins</groupId>
-						<artifactId>maven-failsafe-plugin</artifactId>
-						<version>${maven-failsafe-plugin.version}</version>
-						<executions>
-							<execution>
-								<goals>
-									<goal>integration-test</goal>
-									<goal>verify</goal>
-								</goals>
-								<configuration>
-									<systemPropertyVariables>
-										<zookeeper.address>${dubbo-local-address}</zookeeper.address>
-									</systemPropertyVariables>
-									<includes>
-										<include>**/*IT.java</include>
-									</includes>
-								</configuration>
-							</execution>
-						</executions>
-					</plugin>
-				</plugins>
-			</build>
-		</profile>
-	</profiles>
-
-	<build>
-		<plugins>
-			<plugin>
-				<groupId>org.apache.maven.plugins</groupId>
-				<artifactId>maven-compiler-plugin</artifactId>
-				<version>${maven-compiler-plugin.version}</version>
-				<configuration>
-					<source>${source.level}</source>
-					<target>${target.level}</target>
-				</configuration>
-			</plugin>
-		</plugins>
-	</build>
-</project>
+<?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: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>
+
+	<groupId>com.ikurento</groupId>
+	<artifactId>user-info-client</artifactId>
+	<packaging>jar</packaging>
+	<version>0.2.0</version>
+	<description>The demo consumer module of dubbo project</description>
+
+	<properties>
+		<source.level>1.8</source.level>
+		<target.level>1.8</target.level>
+		<dubbo.version>2.7.3</dubbo.version>
+		<spring.version>4.3.16.RELEASE</spring.version>
+		<junit.version>4.12</junit.version>
+		<docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
+		<jib-maven-plugin.version>1.2.0</jib-maven-plugin.version>
+		<maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
+		<maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
+		<image.name>${artifactId}:${dubbo.version}</image.name>
+		<java-image.name>openjdk:8</java-image.name>
+		<dubbo.port>20880</dubbo.port>
+		<zookeeper.port>2181</zookeeper.port>
+	</properties>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.dubbo</groupId>
+			<artifactId>dubbo</artifactId>
+			<version>${dubbo.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.dubbo</groupId>
+			<artifactId>dubbo-dependencies-zookeeper</artifactId>
+			<version>${dubbo.version}</version>
+			<type>pom</type>
+		</dependency>
+
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>${junit.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.springframework</groupId>
+			<artifactId>spring-test</artifactId>
+			<version>${spring.version}</version>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+
+	<profiles>
+		<profile>
+			<id>dubbo-integration-test</id>
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.dubbo</groupId>
+						<artifactId>dubbo-maven-address-plugin</artifactId>
+						<version>1.0-SNAPSHOT</version>
+						<executions>
+							<execution>
+								<goals>
+									<goal>local-address</goal>
+								</goals>
+								<configuration>
+									<localAddress>dubbo-local-address</localAddress>
+								</configuration>
+								<phase>initialize</phase>
+							</execution>
+						</executions>
+					</plugin>
+
+					<plugin>
+						<groupId>com.google.cloud.tools</groupId>
+						<artifactId>jib-maven-plugin</artifactId>
+						<version>${jib-maven-plugin.version}</version>
+						<configuration>
+							<from>
+								<image>${java-image.name}</image>
+							</from>
+							<to>
+								<image>${image.name}</image>
+							</to>
+							<container>
+								<mainClass>${main-class}</mainClass>
+								<ports>
+									<port>${dubbo.port}</port>
+									<port>${zookeeper.port}</port>
+								</ports>
+								<environment>
+									<DUBBO_IP_TO_REGISTRY>${dubbo-local-address}</DUBBO_IP_TO_REGISTRY>
+								</environment>
+								<jvmFlags>
+									<jvmFlag>-Dzookeeper.address=${dubbo-local-address}</jvmFlag>
+								</jvmFlags>
+							</container>
+						</configuration>
+						<executions>
+							<execution>
+								<phase>package</phase>
+								<goals>
+									<goal>dockerBuild</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+
+					<plugin>
+						<groupId>io.fabric8</groupId>
+						<artifactId>docker-maven-plugin</artifactId>
+						<version>${docker-maven-plugin.version}</version>
+						<configuration>
+							<images>
+								<image>
+									<name>${image.name}</name>
+									<run>
+										<ports>
+											<port>${dubbo.port}:${dubbo.port}</port>
+											<port>${zookeeper.port}:${zookeeper.port}</port>
+										</ports>
+										<wait>
+											<log>dubbo service started</log>
+										</wait>
+									</run>
+								</image>
+							</images>
+						</configuration>
+						<executions>
+							<execution>
+								<id>start</id>
+								<phase>pre-integration-test</phase>
+								<goals>
+									<goal>start</goal>
+								</goals>
+							</execution>
+							<execution>
+								<id>stop</id>
+								<phase>post-integration-test</phase>
+								<goals>
+									<goal>stop</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-failsafe-plugin</artifactId>
+						<version>${maven-failsafe-plugin.version}</version>
+						<executions>
+							<execution>
+								<goals>
+									<goal>integration-test</goal>
+									<goal>verify</goal>
+								</goals>
+								<configuration>
+									<systemPropertyVariables>
+										<zookeeper.address>${dubbo-local-address}</zookeeper.address>
+									</systemPropertyVariables>
+									<includes>
+										<include>**/*IT.java</include>
+									</includes>
+								</configuration>
+							</execution>
+						</executions>
+					</plugin>
+				</plugins>
+			</build>
+		</profile>
+	</profiles>
+
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>${maven-compiler-plugin.version}</version>
+				<configuration>
+					<source>${source.level}</source>
+					<target>${target.level}</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/configcenter/zookeeper/dubbo/java-client/src/main/assembly/assembly.xml b/configcenter/zookeeper/dubbo/java-client/src/main/assembly/assembly.xml
index 84f5499..bc00a06 100644
--- a/configcenter/zookeeper/dubbo/java-client/src/main/assembly/assembly.xml
+++ b/configcenter/zookeeper/dubbo/java-client/src/main/assembly/assembly.xml
@@ -1,43 +1,43 @@
-<?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.
--->
-
-<assembly>
-	<id>assembly</id>
-	<formats>
-		<format>tar.gz</format>
-	</formats>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<fileSets>
-		<fileSet>
-			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
-			<outputDirectory>bin</outputDirectory>
-			<fileMode>0755</fileMode>
-		</fileSet>
-		<fileSet>
-			<directory>src/main/resources</directory>
-			<includes>
-				<include>dubbo.properties</include>
-				<include>log4j.*</include>
-			</includes>
-			<outputDirectory>conf</outputDirectory>
-			<fileMode>0644</fileMode>
-		</fileSet>
-	</fileSets>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>lib</outputDirectory>
-		</dependencySet>
-	</dependencySets>
+<?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.
+-->
+
+<assembly>
+	<id>assembly</id>
+	<formats>
+		<format>tar.gz</format>
+	</formats>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+		</fileSet>
+		<fileSet>
+			<directory>src/main/resources</directory>
+			<includes>
+				<include>dubbo.properties</include>
+				<include>log4j.*</include>
+			</includes>
+			<outputDirectory>conf</outputDirectory>
+			<fileMode>0644</fileMode>
+		</fileSet>
+	</fileSets>
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>lib</outputDirectory>
+		</dependencySet>
+	</dependencySets>
 </assembly>
\ No newline at end of file
diff --git a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java b/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
index b7647f4..330028c 100644
--- a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,63 +1,63 @@
-/*
- * 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.text.SimpleDateFormat;
-import java.util.Date;
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-
-public class Consumer {
-    // Define a private variable (Required in Spring)
-    private UserProvider userProvider;
-
-    // Spring DI (Required in Spring)
-    public void setUserProvider(UserProvider u) {
-        this.userProvider = u;
-    }
-
-    public static void main(String[] args) throws Exception {
-        new EmbeddedZooKeeper(2181, false).start();
-        ZKTools.generateDubboProperties();
-        Thread.sleep(2000);
-        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml","META-INF/spring/service.xml");
-        context.start();
-        context.getBean(Consumer.class).start();
-    }
-
-    // Start the entry function for consumer (Specified in the configuration file)
-    public void start() {
-        System.out.println("\n\ntest");
-        testGetUser();
-    }
-
-    private void testGetUser() {
-        try {
-            User user1 = userProvider.GetUser("A003");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName()
-                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
-
-        } catch (Exception e) {
-            System.out.println("*************exception***********");
-            e.printStackTrace();
-        }
-    }
-
-}
+/*
+ * 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.text.SimpleDateFormat;
+import java.util.Date;
+
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+
+public class Consumer {
+    // Define a private variable (Required in Spring)
+    private UserProvider userProvider;
+
+    // Spring DI (Required in Spring)
+    public void setUserProvider(UserProvider u) {
+        this.userProvider = u;
+    }
+
+    public static void main(String[] args) throws Exception {
+        new EmbeddedZooKeeper(2181, false).start();
+        ZKTools.generateDubboProperties();
+        Thread.sleep(2000);
+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml","META-INF/spring/service.xml");
+        context.start();
+        context.getBean(Consumer.class).start();
+    }
+
+    // Start the entry function for consumer (Specified in the configuration file)
+    public void start() {
+        System.out.println("\n\ntest");
+        testGetUser();
+    }
+
+    private void testGetUser() {
+        try {
+            User user1 = userProvider.GetUser("A003");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName()
+                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
+
+        } catch (Exception e) {
+            System.out.println("*************exception***********");
+            e.printStackTrace();
+        }
+    }
+
+}
diff --git a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/User.java b/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/User.java
index 1526244..666e904 100644
--- a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/User.java
+++ b/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/User.java
@@ -1,76 +1,76 @@
-/*
- * 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.util.Date;
-
-public class User {
-
-    private String id;
-
-    private String name;
-
-    private int age;
-
-    private Date time = new Date();
-
-
-    public User() {
-    }
-
-
-    public User(String id, String name, int age) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public int getAge() {
-        return age;
-    }
-
-    public void setAge(int age) {
-        this.age = age;
-    }
-
-    public Date getTime() {
-        return time;
-    }
-
-    public void setTime(Date time) {
-        this.time = time;
-    }
-
-
-}
+/*
+ * 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.util.Date;
+
+public class User {
+
+    private String id;
+
+    private String name;
+
+    private int age;
+
+    private Date time = new Date();
+
+
+    public User() {
+    }
+
+
+    public User(String id, String name, int age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+
+}
diff --git a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java b/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
index f42452d..67a836a 100644
--- a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
@@ -1,18 +1,18 @@
-/*
- * 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.
- */
-package com.ikurento.user;
-
-public interface UserProvider {
-	User GetUser(String userId);
-}
+/*
+ * 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.
+ */
+package com.ikurento.user;
+
+public interface UserProvider {
+	User GetUser(String userId);
+}
diff --git a/configcenter/zookeeper/dubbo/java-client/src/main/resources/META-INF/spring/service.xml b/configcenter/zookeeper/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
index e4f5fda..529f63e 100644
--- a/configcenter/zookeeper/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/configcenter/zookeeper/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
@@ -1,27 +1,27 @@
-<?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.
--->
-<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"
-	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
-
-	<bean class="com.ikurento.user.Consumer" init-method="start">
-		<!-- 声明这个类 要使用的服务名-->
-		<property name="userProvider" ref="userProvider" />
-	</bean>
-
-</beans>
+<?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.
+-->
+<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"
+	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
+
+	<bean class="com.ikurento.user.Consumer" init-method="start">
+		<!-- 声明这个类 要使用的服务名-->
+		<property name="userProvider" ref="userProvider" />
+	</bean>
+
+</beans>
diff --git a/configcenter/zookeeper/dubbo/java-server/src/main/assembly/assembly.xml b/configcenter/zookeeper/dubbo/java-server/src/main/assembly/assembly.xml
index ce8e7e7..5ab3425 100644
--- a/configcenter/zookeeper/dubbo/java-server/src/main/assembly/assembly.xml
+++ b/configcenter/zookeeper/dubbo/java-server/src/main/assembly/assembly.xml
@@ -1,43 +1,43 @@
-<?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.
--->
-<assembly>
-	<id>assembly</id>
-	<formats>
-		<format>tar.gz</format>
-	</formats>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<fileSets>
-		<fileSet>
-			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
-			<outputDirectory>bin</outputDirectory>
-			<fileMode>0755</fileMode>
-            <directoryMode>0755</directoryMode>
-		</fileSet>
-		<fileSet>
-            <directory>src/main/resources</directory>
-            <includes>
-                <include>log4j.*</include>
-            </includes>
-			<outputDirectory>conf</outputDirectory>
-			<fileMode>0644</fileMode>
-            <directoryMode>0755</directoryMode>
-		</fileSet>
-	</fileSets>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>lib</outputDirectory>
-		</dependencySet>
-	</dependencySets>
+<?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.
+-->
+<assembly>
+	<id>assembly</id>
+	<formats>
+		<format>tar.gz</format>
+	</formats>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+            <directoryMode>0755</directoryMode>
+		</fileSet>
+		<fileSet>
+            <directory>src/main/resources</directory>
+            <includes>
+                <include>log4j.*</include>
+            </includes>
+			<outputDirectory>conf</outputDirectory>
+			<fileMode>0644</fileMode>
+            <directoryMode>0755</directoryMode>
+		</fileSet>
+	</fileSets>
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>lib</outputDirectory>
+		</dependencySet>
+	</dependencySets>
 </assembly>
\ No newline at end of file
diff --git a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/User.java b/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/User.java
index ac046bd..fd2cafb 100644
--- a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/User.java
+++ b/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/User.java
@@ -1,86 +1,86 @@
-/*
- * 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.util.Date;
-import java.io.Serializable;
-
-public class User implements Serializable  {
-
-    private String id;
-
-    private String name;
-
-    private int age;
-
-    private Date time = new Date();
-
-    public User() {
-    }
-
-    public User(String id, String name, int age) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-    }
-
-    public User(String id, String name, int age, Date time) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-        this.time = time;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public int getAge() {
-        return age;
-    }
-
-    public void setAge(int age) {
-        this.age = age;
-    }
-
-    public Date getTime() {
-        return time;
-    }
-
-    public void setTime(Date time) {
-        this.time = time;
-    }
-
-
-
-    public String toString() {
-        return "User{id:" + id + ", name:" + name + ", age:" + age + ", time:" + time +"}";
-    }
-}
+/*
+ * 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.util.Date;
+import java.io.Serializable;
+
+public class User implements Serializable  {
+
+    private String id;
+
+    private String name;
+
+    private int age;
+
+    private Date time = new Date();
+
+    public User() {
+    }
+
+    public User(String id, String name, int age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    public User(String id, String name, int age, Date time) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+        this.time = time;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+
+
+    public String toString() {
+        return "User{id:" + id + ", name:" + name + ", age:" + age + ", time:" + time +"}";
+    }
+}
diff --git a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java b/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 831588d..b1eeab8 100644
--- a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
@@ -1,24 +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;
-
-public interface UserProvider {
-
-    User GetUser(String userId); // the first alpha is Upper case to compatible with golang.
-
-}
+/*
+ * 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 {
+
+    User GetUser(String userId); // the first alpha is Upper case to compatible with golang.
+
+}
diff --git a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/impl/UserProviderImpl.java b/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/impl/UserProviderImpl.java
index 0caf910..57f4eba 100644
--- a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/impl/UserProviderImpl.java
+++ b/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/impl/UserProviderImpl.java
@@ -1,32 +1,32 @@
-/*
- * 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.impl;
-
-import com.ikurento.user.User;
-import com.ikurento.user.UserProvider;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class UserProviderImpl implements UserProvider {
-    private static final Logger LOG = LoggerFactory.getLogger("UserLogger"); //Output to user-server.log
-
-    public User GetUser(String userId) {
-        return new User(userId, "zhangsan", 18);
-    }
-
-}
+/*
+ * 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.impl;
+
+import com.ikurento.user.User;
+import com.ikurento.user.UserProvider;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class UserProviderImpl implements UserProvider {
+    private static final Logger LOG = LoggerFactory.getLogger("UserLogger"); //Output to user-server.log
+
+    public User GetUser(String userId) {
+        return new User(userId, "zhangsan", 18);
+    }
+
+}
diff --git a/configcenter/zookeeper/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/configcenter/zookeeper/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 04a6b50..ad57f83 100644
--- a/configcenter/zookeeper/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/configcenter/zookeeper/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
@@ -1,32 +1,32 @@
-<?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.
--->
-
-<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
-       xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
-       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
-
-    <context:property-placeholder/>
-    <!-- 应用名 -->
-    <dubbo:application name="user-info-server"/>
-    <dubbo:config-center address="zookeeper://${zookeeper.address:127.0.0.1}:2181"/>
-
-    <bean id="demoService" class="com.ikurento.user.impl.UserProviderImpl"/><!-- 声明需要暴露的服务接口 -->
-    <dubbo:service id="UserProvider1" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider"
-                   ref="demoService"/>
-    <dubbo:service id="UserProvider2" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider"
-                   ref="demoService"/>
-</beans>
+<?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.
+-->
+
+<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:dubbo="http://dubbo.apache.org/schema/dubbo"
+       xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
+       http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+
+    <context:property-placeholder/>
+    <!-- 应用名 -->
+    <dubbo:application name="user-info-server"/>
+    <dubbo:config-center address="zookeeper://${zookeeper.address:127.0.0.1}:2181"/>
+
+    <bean id="demoService" class="com.ikurento.user.impl.UserProviderImpl"/><!-- 声明需要暴露的服务接口 -->
+    <dubbo:service id="UserProvider1" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider"
+                   ref="demoService"/>
+    <dubbo:service id="UserProvider2" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider"
+                   ref="demoService"/>
+</beans>
diff --git a/configcenter/zookeeper/dubbo/java-server/src/main/resources/log4j.properties b/configcenter/zookeeper/dubbo/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/configcenter/zookeeper/dubbo/java-server/src/main/resources/log4j.properties
+++ b/configcenter/zookeeper/dubbo/java-server/src/main/resources/log4j.properties
@@ -1,20 +1,20 @@
-## Logger configure file for myproject
-log.dir=logs/
-datestamp=yyyy-MM-dd/HH:mm:ss.SSS
-
-log4j.rootLogger=DEBUG, file, console
-
-log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.file.threshold=DEBUG
-log4j.appender.file.File=${log.dir}/log4j.log
-log4j.appender.file.DatePattern=-yyyyMMddHH
-log4j.appender.file.ImmediateFlush=true
-log4j.appender.file.Append=true
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.Threshold=DEBUG
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
+## Logger configure file for myproject
+log.dir=logs/
+datestamp=yyyy-MM-dd/HH:mm:ss.SSS
+
+log4j.rootLogger=DEBUG, file, console
+
+log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.file.threshold=DEBUG
+log4j.appender.file.File=${log.dir}/log4j.log
+log4j.appender.file.DatePattern=-yyyyMMddHH
+log4j.appender.file.ImmediateFlush=true
+log4j.appender.file.Append=true
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.Threshold=DEBUG
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
diff --git a/direct/README.md b/direct/README.md
index 6fea4b8..0ef5746 100644
--- a/direct/README.md
+++ b/direct/README.md
@@ -1,3 +1,3 @@
-### User Direct Feature
-
-Set url of server in `client.yml/references/ServiceId/url`, and then you will enjoy the direct feature not registry.
+### User Direct Feature
+
+Set url of server in `client.yml/references/ServiceId/url`, and then you will enjoy the direct feature not registry.
diff --git a/direct/dubbo/.travis.yml b/direct/dubbo/.travis.yml
index 6795735..b1d86d7 100644
--- a/direct/dubbo/.travis.yml
+++ b/direct/dubbo/.travis.yml
@@ -3,18 +3,14 @@ stages:
 jobs:
   include:
     - stage: Test direct
-      go: 1.13
       script:
-        - echo "Test direct ..."
+        - PROJECT_HOME=$(pwd)
+        - CASE_HOME=/direct/dubbo
+        - GO_SERVER=/go-server
+        - GO_CLIENT=/go-client
         - docker run -d --network host zookeeper
         - echo "zookeeper listen in [:]2181"
-        - PROJECT_HOME=$(pwd)
-        - cd ${PROJECT_HOME}/golang/direct/dubbo/go-server/
-        - assembly/linux/dev.sh
-        - cd target/*/*/
-        - nohup bin/load.sh start > a.out&
-        - cd ${PROJECT_HOME}/golang/direct/dubbo/go-client/
-        - assembly/linux/dev.sh
-        - cd target/*/*/
-        - ls -la bin/
-        - bin/load.sh start
\ No newline at end of file
+        - cd ${PROJECT_HOME}${CASE_HOME}${GO_SERVER}
+        - ./integration_testing.sh ${PROJECT_HOME} ${GO_SERVER} true
+        - cd ${PROJECT_HOME}${CASE_HOME}${GO_CLIENT}
+        - ./integration_testing.sh ${PROJECT_HOME} ${GO_CLIENT}
\ No newline at end of file
diff --git a/direct/dubbo/go-client/app/client.go b/direct/dubbo/go-client/app/client.go
index 78fde58..1a7599c 100644
--- a/direct/dubbo/go-client/app/client.go
+++ b/direct/dubbo/go-client/app/client.go
@@ -59,6 +59,7 @@ func main() {
 	if err != nil {
 		gxlog.CError("error: %v\n", err)
 		os.Exit(1)
+		return
 	}
 	gxlog.CInfo("response result: %v\n", user)
 }
diff --git a/direct/dubbo/go-client/integration_testing.sh b/direct/dubbo/go-client/integration_testing.sh
new file mode 100755
index 0000000..49f7b49
--- /dev/null
+++ b/direct/dubbo/go-client/integration_testing.sh
@@ -0,0 +1,31 @@
+#
+#  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.
+
+#!/bin/bash
+
+set -e
+set -x
+
+rm -rf assembly
+cp -r $1/.integration/testing/$2/assembly .
+assembly/linux/dev.sh
+cd target/*/*/
+# is async
+if [[ $3 ]]; then
+	nohup bin/load.sh start > a.out&
+else
+	bin/load.sh start
+fi
\ No newline at end of file
diff --git a/direct/dubbo/go-client/profiles/dev/log.yml b/direct/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/direct/dubbo/go-client/profiles/dev/log.yml
+++ b/direct/dubbo/go-client/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/direct/dubbo/go-client/profiles/release/log.yml b/direct/dubbo/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/direct/dubbo/go-client/profiles/release/log.yml
+++ b/direct/dubbo/go-client/profiles/release/log.yml
@@ -1,28 +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:
+
+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/direct/dubbo/go-client/profiles/test/log.yml b/direct/dubbo/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/direct/dubbo/go-client/profiles/test/log.yml
+++ b/direct/dubbo/go-client/profiles/test/log.yml
@@ -1,28 +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:
+
+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/direct/dubbo/go-server/integration_testing.sh b/direct/dubbo/go-server/integration_testing.sh
new file mode 100755
index 0000000..49f7b49
--- /dev/null
+++ b/direct/dubbo/go-server/integration_testing.sh
@@ -0,0 +1,31 @@
+#
+#  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.
+
+#!/bin/bash
+
+set -e
+set -x
+
+rm -rf assembly
+cp -r $1/.integration/testing/$2/assembly .
+assembly/linux/dev.sh
+cd target/*/*/
+# is async
+if [[ $3 ]]; then
+	nohup bin/load.sh start > a.out&
+else
+	bin/load.sh start
+fi
\ No newline at end of file
diff --git a/direct/dubbo/go-server/profiles/dev/log.yml b/direct/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/direct/dubbo/go-server/profiles/dev/log.yml
+++ b/direct/dubbo/go-server/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/direct/dubbo/go-server/profiles/release/log.yml b/direct/dubbo/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/direct/dubbo/go-server/profiles/release/log.yml
+++ b/direct/dubbo/go-server/profiles/release/log.yml
@@ -1,28 +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:
+
+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/direct/dubbo/go-server/profiles/test/log.yml b/direct/dubbo/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/direct/dubbo/go-server/profiles/test/log.yml
+++ b/direct/dubbo/go-server/profiles/test/log.yml
@@ -1,28 +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:
+
+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/custom_filter/dubbo/go-client/profiles/dev/log.yml b/filter/custom_filter/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/filter/custom_filter/dubbo/go-client/profiles/dev/log.yml
+++ b/filter/custom_filter/dubbo/go-client/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/filter/custom_filter/dubbo/go-client/profiles/release/log.yml b/filter/custom_filter/dubbo/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/filter/custom_filter/dubbo/go-client/profiles/release/log.yml
+++ b/filter/custom_filter/dubbo/go-client/profiles/release/log.yml
@@ -1,28 +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:
+
+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/filter/custom_filter/dubbo/go-client/profiles/test/log.yml b/filter/custom_filter/dubbo/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/filter/custom_filter/dubbo/go-client/profiles/test/log.yml
+++ b/filter/custom_filter/dubbo/go-client/profiles/test/log.yml
@@ -1,28 +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:
+
+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/custom_filter/dubbo/go-server/profiles/dev/log.yml b/filter/custom_filter/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/filter/custom_filter/dubbo/go-server/profiles/dev/log.yml
+++ b/filter/custom_filter/dubbo/go-server/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/filter/custom_filter/dubbo/go-server/profiles/release/log.yml b/filter/custom_filter/dubbo/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/filter/custom_filter/dubbo/go-server/profiles/release/log.yml
+++ b/filter/custom_filter/dubbo/go-server/profiles/release/log.yml
@@ -1,28 +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:
+
+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/filter/custom_filter/dubbo/go-server/profiles/test/log.yml b/filter/custom_filter/dubbo/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/filter/custom_filter/dubbo/go-server/profiles/test/log.yml
+++ b/filter/custom_filter/dubbo/go-server/profiles/test/log.yml
@@ -1,28 +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:
+
+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/tpslimit/dubbo/go-client/profiles/dev/log.yml b/filter/tpslimit/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/filter/tpslimit/dubbo/go-client/profiles/dev/log.yml
+++ b/filter/tpslimit/dubbo/go-client/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/filter/tpslimit/dubbo/go-client/profiles/release/log.yml b/filter/tpslimit/dubbo/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/filter/tpslimit/dubbo/go-client/profiles/release/log.yml
+++ b/filter/tpslimit/dubbo/go-client/profiles/release/log.yml
@@ -1,28 +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:
+
+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/filter/tpslimit/dubbo/go-client/profiles/test/log.yml b/filter/tpslimit/dubbo/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/filter/tpslimit/dubbo/go-client/profiles/test/log.yml
+++ b/filter/tpslimit/dubbo/go-client/profiles/test/log.yml
@@ -1,28 +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:
+
+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/tpslimit/dubbo/go-server/profiles/dev/log.yml b/filter/tpslimit/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/filter/tpslimit/dubbo/go-server/profiles/dev/log.yml
+++ b/filter/tpslimit/dubbo/go-server/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/filter/tpslimit/dubbo/go-server/profiles/release/log.yml b/filter/tpslimit/dubbo/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/filter/tpslimit/dubbo/go-server/profiles/release/log.yml
+++ b/filter/tpslimit/dubbo/go-server/profiles/release/log.yml
@@ -1,28 +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:
+
+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/filter/tpslimit/dubbo/go-server/profiles/test/log.yml b/filter/tpslimit/dubbo/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/filter/tpslimit/dubbo/go-server/profiles/test/log.yml
+++ b/filter/tpslimit/dubbo/go-server/profiles/test/log.yml
@@ -1,28 +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:
+
+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/general/dubbo/go-client/profiles/dev/log.yml b/general/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/general/dubbo/go-client/profiles/dev/log.yml
+++ b/general/dubbo/go-client/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/general/dubbo/go-client/profiles/release/log.yml b/general/dubbo/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/general/dubbo/go-client/profiles/release/log.yml
+++ b/general/dubbo/go-client/profiles/release/log.yml
@@ -1,28 +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:
+
+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/general/dubbo/go-client/profiles/test/log.yml b/general/dubbo/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/general/dubbo/go-client/profiles/test/log.yml
+++ b/general/dubbo/go-client/profiles/test/log.yml
@@ -1,28 +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:
+
+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/general/dubbo/go-server/profiles/dev/log.yml b/general/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/general/dubbo/go-server/profiles/dev/log.yml
+++ b/general/dubbo/go-server/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/general/dubbo/go-server/profiles/release/log.yml b/general/dubbo/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/general/dubbo/go-server/profiles/release/log.yml
+++ b/general/dubbo/go-server/profiles/release/log.yml
@@ -1,28 +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:
+
+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/general/dubbo/go-server/profiles/test/log.yml b/general/dubbo/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/general/dubbo/go-server/profiles/test/log.yml
+++ b/general/dubbo/go-server/profiles/test/log.yml
@@ -1,28 +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:
+
+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/general/dubbo/java-client/pom.xml b/general/dubbo/java-client/pom.xml
index 445b924..4065414 100644
--- a/general/dubbo/java-client/pom.xml
+++ b/general/dubbo/java-client/pom.xml
@@ -1,230 +1,230 @@
-<?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: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>
-
-	<groupId>com.ikurento</groupId>
-	<artifactId>user-info-client</artifactId>
-	<packaging>jar</packaging>
-	<version>0.2.0</version>
-	<description>The demo consumer module of dubbo project</description>
-
-	<properties>
-		<skip_maven_deploy>false</skip_maven_deploy>
-
-		<dubbo-jsonrpc-version>1.0.1</dubbo-jsonrpc-version>
-		<dubbo-version>2.6.5</dubbo-version>
-	</properties>
-
-	<dependencyManagement>
-		<dependencies>
-			<dependency>
-				<groupId>com.alibaba</groupId>
-				<artifactId>dubbo-dependencies-bom</artifactId>
-				<version>${dubbo-version}</version>
-				<type>pom</type>
-				<scope>import</scope>
-			</dependency>
-		</dependencies>
-	</dependencyManagement>
-
-	<dependencies>
-		<dependency>
-			<groupId>com.qianmi</groupId>
-			<artifactId>dubbo-rpc-jsonrpc</artifactId>
-			<version>${dubbo-jsonrpc-version}</version>
-		</dependency>
-		<dependency>
-			<groupId>com.alibaba</groupId>
-			<artifactId>dubbo</artifactId>
-			<version>${dubbo-version}</version>
-		</dependency>
-
-		<dependency>
-			<groupId>io.netty</groupId>
-			<artifactId>netty-all</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.curator</groupId>
-			<artifactId>curator-framework</artifactId>
-			<version>2.12.0</version>
-		</dependency>
-
-		<dependency>
-			<groupId>org.javassist</groupId>
-			<artifactId>javassist</artifactId>
-			<version>3.20.0-GA</version>
-		</dependency>
-		<dependency>
-			<groupId>org.jboss.netty</groupId>
-			<artifactId>netty</artifactId>
-			<version>3.2.5.Final</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.mina</groupId>
-			<artifactId>mina-core</artifactId>
-			<version>1.1.7</version>
-		</dependency>
-		<dependency>
-			<groupId>org.glassfish.grizzly</groupId>
-			<artifactId>grizzly-core</artifactId>
-			<version>2.1.4</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.httpcomponents</groupId>
-			<artifactId>httpclient</artifactId>
-			<version>4.5.7</version>
-		</dependency>
-		<dependency>
-			<groupId>com.alibaba</groupId>
-			<artifactId>fastjson</artifactId>
-			<version>1.2.56</version>
-		</dependency>
-		<dependency>
-			<groupId>com.thoughtworks.xstream</groupId>
-			<artifactId>xstream</artifactId>
-			<version>1.4.7</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.bsf</groupId>
-			<artifactId>bsf-api</artifactId>
-			<version>3.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.zookeeper</groupId>
-			<artifactId>zookeeper</artifactId>
-			<version>3.4.14</version>
-		</dependency>
-		<dependency>
-			<groupId>com.github.sgroschupf</groupId>
-			<artifactId>zkclient</artifactId>
-			<version>0.1</version>
-		</dependency>
-		<dependency>
-			<groupId>com.netflix.curator</groupId>
-			<artifactId>curator-framework</artifactId>
-			<version>1.1.16</version>
-		</dependency>
-		<dependency>
-			<groupId>com.googlecode.xmemcached</groupId>
-			<artifactId>xmemcached</artifactId>
-			<version>1.3.6</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.cxf</groupId>
-			<artifactId>cxf-rt-frontend-simple</artifactId>
-			<version>2.6.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.cxf</groupId>
-			<artifactId>cxf-rt-transports-http</artifactId>
-			<version>2.6.1</version>
-		</dependency>
-		<dependency>
-			<groupId>org.apache.thrift</groupId>
-			<artifactId>libthrift</artifactId>
-			<version>0.12.0</version>
-		</dependency>
-		<dependency>
-			<groupId>com.caucho</groupId>
-			<artifactId>hessian</artifactId>
-			<version>4.0.7</version>
-		</dependency>
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>servlet-api</artifactId>
-			<version>2.5</version>
-		</dependency>
-		<dependency>
-			<groupId>org.mortbay.jetty</groupId>
-			<artifactId>jetty</artifactId>
-			<version>6.1.26</version>
-		</dependency>
-		<dependency>
-			<groupId>log4j</groupId>
-			<artifactId>log4j</artifactId>
-			<version>1.2.16</version>
-		</dependency>
-		<dependency>
-			<groupId>org.slf4j</groupId>
-			<artifactId>slf4j-api</artifactId>
-			<version>1.6.2</version>
-		</dependency>
-		<dependency>
-			<groupId>redis.clients</groupId>
-			<artifactId>jedis</artifactId>
-			<version>2.1.0</version>
-		</dependency>
-		<dependency>
-			<groupId>javax.validation</groupId>
-			<artifactId>validation-api</artifactId>
-			<version>1.0.0.GA</version>
-		</dependency>
-		<dependency>
-			<groupId>org.hibernate</groupId>
-			<artifactId>hibernate-validator</artifactId>
-			<version>4.2.0.Final</version>
-		</dependency>
-		<dependency>
-			<groupId>javax.cache</groupId>
-			<artifactId>cache-api</artifactId>
-			<version>0.4</version>
-		</dependency>
-	</dependencies>
-	<build>
-		<plugins>
-			<plugin>
-				<artifactId>maven-dependency-plugin</artifactId>
-				<executions>
-					<execution>
-						<id>unpack</id>
-						<phase>package</phase>
-						<goals>
-							<goal>unpack</goal>
-						</goals>
-						<configuration>
-							<artifactItems>
-								<artifactItem>
-									<groupId>com.alibaba</groupId>
-									<artifactId>dubbo</artifactId>
-									<version>${dubbo-version}</version>
-									<outputDirectory>${project.build.directory}/dubbo</outputDirectory>
-									<includes>META-INF/assembly/**</includes>
-								</artifactItem>
-							</artifactItems>
-						</configuration>
-					</execution>
-				</executions>
-			</plugin>
-			<plugin>
-				<artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <descriptor>src/main/assembly/assembly.xml</descriptor>
-                </configuration>
-                <executions>
-					<execution>
-						<id>make-assembly</id>
-						<phase>package</phase>
-						<goals>
-							<goal>single</goal>
-						</goals>
-					</execution>
-				</executions>
-            </plugin>
-		</plugins>
-	</build>
-</project>
+<?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: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>
+
+	<groupId>com.ikurento</groupId>
+	<artifactId>user-info-client</artifactId>
+	<packaging>jar</packaging>
+	<version>0.2.0</version>
+	<description>The demo consumer module of dubbo project</description>
+
+	<properties>
+		<skip_maven_deploy>false</skip_maven_deploy>
+
+		<dubbo-jsonrpc-version>1.0.1</dubbo-jsonrpc-version>
+		<dubbo-version>2.6.5</dubbo-version>
+	</properties>
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>com.alibaba</groupId>
+				<artifactId>dubbo-dependencies-bom</artifactId>
+				<version>${dubbo-version}</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
+
+	<dependencies>
+		<dependency>
+			<groupId>com.qianmi</groupId>
+			<artifactId>dubbo-rpc-jsonrpc</artifactId>
+			<version>${dubbo-jsonrpc-version}</version>
+		</dependency>
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>dubbo</artifactId>
+			<version>${dubbo-version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>io.netty</groupId>
+			<artifactId>netty-all</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.curator</groupId>
+			<artifactId>curator-framework</artifactId>
+			<version>2.12.0</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.javassist</groupId>
+			<artifactId>javassist</artifactId>
+			<version>3.20.0-GA</version>
+		</dependency>
+		<dependency>
+			<groupId>org.jboss.netty</groupId>
+			<artifactId>netty</artifactId>
+			<version>3.2.5.Final</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.mina</groupId>
+			<artifactId>mina-core</artifactId>
+			<version>1.1.7</version>
+		</dependency>
+		<dependency>
+			<groupId>org.glassfish.grizzly</groupId>
+			<artifactId>grizzly-core</artifactId>
+			<version>2.1.4</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.httpcomponents</groupId>
+			<artifactId>httpclient</artifactId>
+			<version>4.5.7</version>
+		</dependency>
+		<dependency>
+			<groupId>com.alibaba</groupId>
+			<artifactId>fastjson</artifactId>
+			<version>1.2.56</version>
+		</dependency>
+		<dependency>
+			<groupId>com.thoughtworks.xstream</groupId>
+			<artifactId>xstream</artifactId>
+			<version>1.4.7</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.bsf</groupId>
+			<artifactId>bsf-api</artifactId>
+			<version>3.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.zookeeper</groupId>
+			<artifactId>zookeeper</artifactId>
+			<version>3.4.14</version>
+		</dependency>
+		<dependency>
+			<groupId>com.github.sgroschupf</groupId>
+			<artifactId>zkclient</artifactId>
+			<version>0.1</version>
+		</dependency>
+		<dependency>
+			<groupId>com.netflix.curator</groupId>
+			<artifactId>curator-framework</artifactId>
+			<version>1.1.16</version>
+		</dependency>
+		<dependency>
+			<groupId>com.googlecode.xmemcached</groupId>
+			<artifactId>xmemcached</artifactId>
+			<version>1.3.6</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-rt-frontend-simple</artifactId>
+			<version>2.6.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-rt-transports-http</artifactId>
+			<version>2.6.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.thrift</groupId>
+			<artifactId>libthrift</artifactId>
+			<version>0.12.0</version>
+		</dependency>
+		<dependency>
+			<groupId>com.caucho</groupId>
+			<artifactId>hessian</artifactId>
+			<version>4.0.7</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.5</version>
+		</dependency>
+		<dependency>
+			<groupId>org.mortbay.jetty</groupId>
+			<artifactId>jetty</artifactId>
+			<version>6.1.26</version>
+		</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.16</version>
+		</dependency>
+		<dependency>
+			<groupId>org.slf4j</groupId>
+			<artifactId>slf4j-api</artifactId>
+			<version>1.6.2</version>
+		</dependency>
+		<dependency>
+			<groupId>redis.clients</groupId>
+			<artifactId>jedis</artifactId>
+			<version>2.1.0</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.validation</groupId>
+			<artifactId>validation-api</artifactId>
+			<version>1.0.0.GA</version>
+		</dependency>
+		<dependency>
+			<groupId>org.hibernate</groupId>
+			<artifactId>hibernate-validator</artifactId>
+			<version>4.2.0.Final</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.cache</groupId>
+			<artifactId>cache-api</artifactId>
+			<version>0.4</version>
+		</dependency>
+	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-dependency-plugin</artifactId>
+				<executions>
+					<execution>
+						<id>unpack</id>
+						<phase>package</phase>
+						<goals>
+							<goal>unpack</goal>
+						</goals>
+						<configuration>
+							<artifactItems>
+								<artifactItem>
+									<groupId>com.alibaba</groupId>
+									<artifactId>dubbo</artifactId>
+									<version>${dubbo-version}</version>
+									<outputDirectory>${project.build.directory}/dubbo</outputDirectory>
+									<includes>META-INF/assembly/**</includes>
+								</artifactItem>
+							</artifactItems>
+						</configuration>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<artifactId>maven-assembly-plugin</artifactId>
+                <configuration>
+                    <descriptor>src/main/assembly/assembly.xml</descriptor>
+                </configuration>
+                <executions>
+					<execution>
+						<id>make-assembly</id>
+						<phase>package</phase>
+						<goals>
+							<goal>single</goal>
+						</goals>
+					</execution>
+				</executions>
+            </plugin>
+		</plugins>
+	</build>
+</project>
diff --git a/general/dubbo/java-client/src/main/assembly/assembly.xml b/general/dubbo/java-client/src/main/assembly/assembly.xml
index 40c34d8..47757d1 100644
--- a/general/dubbo/java-client/src/main/assembly/assembly.xml
+++ b/general/dubbo/java-client/src/main/assembly/assembly.xml
@@ -1,39 +1,39 @@
-<?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.
--->
-
-<assembly>
-	<id>assembly</id>
-	<formats>
-		<format>tar.gz</format>
-	</formats>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<fileSets>
-		<fileSet>
-			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
-			<outputDirectory>bin</outputDirectory>
-			<fileMode>0755</fileMode>
-		</fileSet>
-		<fileSet>
-			<directory>src/main/assembly/conf</directory>
-			<outputDirectory>conf</outputDirectory>
-			<fileMode>0644</fileMode>
-		</fileSet>
-	</fileSets>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>lib</outputDirectory>
-		</dependencySet>
-	</dependencySets>
+<?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.
+-->
+
+<assembly>
+	<id>assembly</id>
+	<formats>
+		<format>tar.gz</format>
+	</formats>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+		</fileSet>
+		<fileSet>
+			<directory>src/main/assembly/conf</directory>
+			<outputDirectory>conf</outputDirectory>
+			<fileMode>0644</fileMode>
+		</fileSet>
+	</fileSets>
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>lib</outputDirectory>
+		</dependencySet>
+	</dependencySets>
 </assembly>
\ No newline at end of file
diff --git a/general/dubbo/java-client/src/main/assembly/conf/dubbo.properties b/general/dubbo/java-client/src/main/assembly/conf/dubbo.properties
index 701dd46..e561efc 100644
--- a/general/dubbo/java-client/src/main/assembly/conf/dubbo.properties
+++ b/general/dubbo/java-client/src/main/assembly/conf/dubbo.properties
@@ -1,13 +1,13 @@
-### dubboע���������� ###
-dubbo.container = log4j,spring
-dubbo.application.name = user-info-client
-dubbo.application.owner = AlexStocks
-dubbo.application.environment  =  product
-dubbo.registry.address = zookeeper://127.0.0.1:2181
-dubbo.monitor.protocol = zookeeper
-dubbo.consumer.timeout = 10000
-dubbo.provider.timeout = 10000
-dubbo.protocol.name = dubbo
-
-dubbo.log4j.file = logs/client.log
-dubbo.log4j.level = WARN
+### dubboע���������� ###
+dubbo.container = log4j,spring
+dubbo.application.name = user-info-client
+dubbo.application.owner = AlexStocks
+dubbo.application.environment  =  product
+dubbo.registry.address = zookeeper://127.0.0.1:2181
+dubbo.monitor.protocol = zookeeper
+dubbo.consumer.timeout = 10000
+dubbo.provider.timeout = 10000
+dubbo.protocol.name = dubbo
+
+dubbo.log4j.file = logs/client.log
+dubbo.log4j.level = WARN
diff --git a/general/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java b/general/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
index 102d08b..a2c4296 100644
--- a/general/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/general/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,227 +1,227 @@
-/*
- * 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.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import com.alibaba.dubbo.rpc.service.EchoService;
-import java.util.List;
-
-public class Consumer {
-    // Define a private variable (Required in Spring)
-    private UserProvider userProvider;
-    private UserProvider userProvider1;
-    private UserProvider userProvider2;
-
-    // Spring DI (Required in Spring)
-    public void setUserProvider(UserProvider u) {
-        this.userProvider = u;
-    }
-    public void setUserProvider1(UserProvider u) {
-        this.userProvider1 = u;
-    }
-    public void setUserProvider2(UserProvider u) {
-        this.userProvider2 = u;
-    }
-
-    // Start the entry function for consumer (Specified in the configuration file)
-    public void start() throws Exception {
-        System.out.println("\n\ntest");
-        testGetUser();
-        testGetUsers();
-        System.out.println("\n\ntest1");
-        testGetUser1();
-        testGetUsers1();
-        System.out.println("\n\ntest2");
-        testGetUser2();
-        testGetUsers2();
-        Thread.sleep(2000);
-    }
-
-    private void testGetUser() throws Exception {
-        try {
-            EchoService echoService = (EchoService)userProvider;
-            Object status = echoService.$echo("OK");
-            System.out.println("echo: "+status);
-            User user1 = userProvider.GetUser("A003");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
-                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
-            User user2 = userProvider.GetUser0("A003","Moorse");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
-                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
-            User user3 = userProvider.getUser(1);
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
-                    + ", age:" + user3.getAge() + ", time:" + user3.getTime());
-            User user4 = userProvider.getUser(1, "name");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user4.getId() + ", name:" + user4.getName() + ", sex:" + user4.getSex().toString()
-                    + ", age:" + user4.getAge() + ", time:" + user4.getTime());
-            userProvider.GetUser3();
-            System.out.println("GetUser3 succ");
-
-            User user9 = userProvider.GetUser1("A003");
-        } catch (Throwable e) {
-            System.out.println("*************exception***********");
-            e.printStackTrace();
-        }
-        try {
-            userProvider.GetErr("A003");
-        } catch (Throwable t) {
-            System.out.println("*************exception***********");
-            t.printStackTrace();
-        }
-    }
-
-    private void testGetUsers() throws Exception {
-        try {
-            List<String> userIDList = new ArrayList<String>();
-            userIDList.add("A001");
-            userIDList.add("A002");
-            userIDList.add("A003");
-
-            List<User> userList = userProvider.GetUsers(userIDList);
-
-            for (int i = 0; i < userList.size(); i++) {
-                User user = userList.get(i);
-                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
-                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void testGetUser1() throws Exception {
-        try {
-            EchoService echoService = (EchoService)userProvider1;
-            Object status = echoService.$echo("OK");
-            System.out.println("echo: "+status);
-            User user1 = userProvider1.GetUser("A003");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
-                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
-            User user2 = userProvider1.GetUser0("A003","Moorse");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
-                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
-            User user3 = userProvider1.getUser(1);
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
-                    + ", age:" + user3.getAge() + ", time:" + user3.getTime());
-            User user4 = userProvider1.getUser(1, "name");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user4.getId() + ", name:" + user4.getName() + ", sex:" + user4.getSex().toString()
-                    + ", age:" + user4.getAge() + ", time:" + user4.getTime());
-            userProvider1.GetUser3();
-            System.out.println("GetUser3 succ");
-
-            User user9 = userProvider1.GetUser1("A003");
-        } catch (Throwable e) {
-            System.out.println("*************exception***********");
-            e.printStackTrace();
-        }
-        try {
-            userProvider1.GetErr("A003");
-        } catch (Throwable t) {
-            System.out.println("*************exception***********");
-            t.printStackTrace();
-        }
-    }
-
-    private void testGetUsers1() throws Exception {
-        try {
-            List<String> userIDList = new ArrayList<String>();
-            userIDList.add("A001");
-            userIDList.add("A002");
-            userIDList.add("A003");
-
-            List<User> userList = userProvider1.GetUsers(userIDList);
-
-            for (int i = 0; i < userList.size(); i++) {
-                User user = userList.get(i);
-                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
-                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void testGetUser2() throws Exception {
-        try {
-            EchoService echoService = (EchoService)userProvider2;
-            Object status = echoService.$echo("OK");
-            System.out.println("echo: "+status);
-            User user1 = userProvider2.GetUser("A003");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
-                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
-            User user2 = userProvider2.GetUser0("A003","Moorse");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
-                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
-            User user3 = userProvider2.getUser(1);
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
-                    + ", age:" + user3.getAge() + ", time:" + user3.getTime());
-            User user4 = userProvider2.getUser(1, "name");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user4.getId() + ", name:" + user4.getName() + ", sex:" + user4.getSex().toString()
-                    + ", age:" + user4.getAge() + ", time:" + user4.getTime());
-            userProvider2.GetUser3();
-            System.out.println("GetUser3 succ");
-
-            User user9 = userProvider2.GetUser1("A003");
-        } catch (Throwable e) {
-            System.out.println("*************exception***********");
-            e.printStackTrace();
-        }
-        try {
-            userProvider2.GetErr("A003");
-        } catch (Throwable t) {
-            System.out.println("*************exception***********");
-            t.printStackTrace();
-        }
-    }
-
-    private void testGetUsers2() throws Exception {
-        try {
-            List<String> userIDList = new ArrayList<String>();
-            userIDList.add("A001");
-            userIDList.add("A002");
-            userIDList.add("A003");
-
-            List<User> userList = userProvider2.GetUsers(userIDList);
-
-            for (int i = 0; i < userList.size(); i++) {
-                User user = userList.get(i);
-                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
-                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-}
+/*
+ * 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.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import com.alibaba.dubbo.rpc.service.EchoService;
+import java.util.List;
+
+public class Consumer {
+    // Define a private variable (Required in Spring)
+    private UserProvider userProvider;
+    private UserProvider userProvider1;
+    private UserProvider userProvider2;
+
+    // Spring DI (Required in Spring)
+    public void setUserProvider(UserProvider u) {
+        this.userProvider = u;
+    }
+    public void setUserProvider1(UserProvider u) {
+        this.userProvider1 = u;
+    }
+    public void setUserProvider2(UserProvider u) {
+        this.userProvider2 = u;
+    }
+
+    // Start the entry function for consumer (Specified in the configuration file)
+    public void start() throws Exception {
+        System.out.println("\n\ntest");
+        testGetUser();
+        testGetUsers();
+        System.out.println("\n\ntest1");
+        testGetUser1();
+        testGetUsers1();
+        System.out.println("\n\ntest2");
+        testGetUser2();
+        testGetUsers2();
+        Thread.sleep(2000);
+    }
+
+    private void testGetUser() throws Exception {
+        try {
+            EchoService echoService = (EchoService)userProvider;
+            Object status = echoService.$echo("OK");
+            System.out.println("echo: "+status);
+            User user1 = userProvider.GetUser("A003");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
+                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
+            User user2 = userProvider.GetUser0("A003","Moorse");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
+                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
+            User user3 = userProvider.getUser(1);
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
+                    + ", age:" + user3.getAge() + ", time:" + user3.getTime());
+            User user4 = userProvider.getUser(1, "name");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user4.getId() + ", name:" + user4.getName() + ", sex:" + user4.getSex().toString()
+                    + ", age:" + user4.getAge() + ", time:" + user4.getTime());
+            userProvider.GetUser3();
+            System.out.println("GetUser3 succ");
+
+            User user9 = userProvider.GetUser1("A003");
+        } catch (Throwable e) {
+            System.out.println("*************exception***********");
+            e.printStackTrace();
+        }
+        try {
+            userProvider.GetErr("A003");
+        } catch (Throwable t) {
+            System.out.println("*************exception***********");
+            t.printStackTrace();
+        }
+    }
+
+    private void testGetUsers() throws Exception {
+        try {
+            List<String> userIDList = new ArrayList<String>();
+            userIDList.add("A001");
+            userIDList.add("A002");
+            userIDList.add("A003");
+
+            List<User> userList = userProvider.GetUsers(userIDList);
+
+            for (int i = 0; i < userList.size(); i++) {
+                User user = userList.get(i);
+                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
+                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void testGetUser1() throws Exception {
+        try {
+            EchoService echoService = (EchoService)userProvider1;
+            Object status = echoService.$echo("OK");
+            System.out.println("echo: "+status);
+            User user1 = userProvider1.GetUser("A003");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
+                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
+            User user2 = userProvider1.GetUser0("A003","Moorse");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
+                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
+            User user3 = userProvider1.getUser(1);
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
+                    + ", age:" + user3.getAge() + ", time:" + user3.getTime());
+            User user4 = userProvider1.getUser(1, "name");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user4.getId() + ", name:" + user4.getName() + ", sex:" + user4.getSex().toString()
+                    + ", age:" + user4.getAge() + ", time:" + user4.getTime());
+            userProvider1.GetUser3();
+            System.out.println("GetUser3 succ");
+
+            User user9 = userProvider1.GetUser1("A003");
+        } catch (Throwable e) {
+            System.out.println("*************exception***********");
+            e.printStackTrace();
+        }
+        try {
+            userProvider1.GetErr("A003");
+        } catch (Throwable t) {
+            System.out.println("*************exception***********");
+            t.printStackTrace();
+        }
+    }
+
+    private void testGetUsers1() throws Exception {
+        try {
+            List<String> userIDList = new ArrayList<String>();
+            userIDList.add("A001");
+            userIDList.add("A002");
+            userIDList.add("A003");
+
+            List<User> userList = userProvider1.GetUsers(userIDList);
+
+            for (int i = 0; i < userList.size(); i++) {
+                User user = userList.get(i);
+                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
+                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void testGetUser2() throws Exception {
+        try {
+            EchoService echoService = (EchoService)userProvider2;
+            Object status = echoService.$echo("OK");
+            System.out.println("echo: "+status);
+            User user1 = userProvider2.GetUser("A003");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
+                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
+            User user2 = userProvider2.GetUser0("A003","Moorse");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
+                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
+            User user3 = userProvider2.getUser(1);
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
+                    + ", age:" + user3.getAge() + ", time:" + user3.getTime());
+            User user4 = userProvider2.getUser(1, "name");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user4.getId() + ", name:" + user4.getName() + ", sex:" + user4.getSex().toString()
+                    + ", age:" + user4.getAge() + ", time:" + user4.getTime());
+            userProvider2.GetUser3();
+            System.out.println("GetUser3 succ");
+
+            User user9 = userProvider2.GetUser1("A003");
+        } catch (Throwable e) {
+            System.out.println("*************exception***********");
+            e.printStackTrace();
+        }
+        try {
+            userProvider2.GetErr("A003");
+        } catch (Throwable t) {
+            System.out.println("*************exception***********");
+            t.printStackTrace();
+        }
+    }
+
+    private void testGetUsers2() throws Exception {
+        try {
+            List<String> userIDList = new ArrayList<String>();
+            userIDList.add("A001");
+            userIDList.add("A002");
+            userIDList.add("A003");
+
+            List<User> userList = userProvider2.GetUsers(userIDList);
+
+            for (int i = 0; i < userList.size(); i++) {
+                User user = userList.get(i);
+                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
+                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/general/dubbo/java-client/src/main/java/com/ikurento/user/Gender.java b/general/dubbo/java-client/src/main/java/com/ikurento/user/Gender.java
index e74a5d4..e606be7 100644
--- a/general/dubbo/java-client/src/main/java/com/ikurento/user/Gender.java
+++ b/general/dubbo/java-client/src/main/java/com/ikurento/user/Gender.java
@@ -1,23 +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;
-
-public enum  Gender {
-    MAN,
-    WOMAN
-}
+/*
+ * 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 {
+    MAN,
+    WOMAN
+}
diff --git a/general/dubbo/java-client/src/main/java/com/ikurento/user/User.java b/general/dubbo/java-client/src/main/java/com/ikurento/user/User.java
index 68556cc..7f228b3 100644
--- a/general/dubbo/java-client/src/main/java/com/ikurento/user/User.java
+++ b/general/dubbo/java-client/src/main/java/com/ikurento/user/User.java
@@ -1,83 +1,83 @@
-/*
- * 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.util.Date;
-
-public class User {
-
-    private String id;
-
-    private String name;
-
-    private int age;
-
-    private Date time = new Date();
-
-    private Gender sex = Gender.MAN;
-
-    public User() {
-    }
-
-
-    public User(String id, String name, int age) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public int getAge() {
-        return age;
-    }
-
-    public void setAge(int age) {
-        this.age = age;
-    }
-
-    public Date getTime() {
-        return time;
-    }
-
-    public void setTime(Date time) {
-        this.time = time;
-    }
-
-    public Gender getSex() {
-        return sex;
-    }
-
-    public void setSex(Gender sex) {
-        this.sex = sex;
-    }
-}
+/*
+ * 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.util.Date;
+
+public class User {
+
+    private String id;
+
+    private String name;
+
+    private int age;
+
+    private Date time = new Date();
+
+    private Gender sex = Gender.MAN;
+
+    public User() {
+    }
+
+
+    public User(String id, String name, int age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+    public Gender getSex() {
+        return sex;
+    }
+
+    public void setSex(Gender sex) {
+        this.sex = sex;
+    }
+}
diff --git a/general/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java b/general/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
index fe73543..0e75a97 100644
--- a/general/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/general/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
@@ -1,27 +1,27 @@
-/*
- * 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.
- */
-package com.ikurento.user;
-
-import java.util.List;
-
-public interface UserProvider {
-	User GetUser(String userId);
-	User GetErr(String userId) throws Exception;
-	User GetUser1(String userId) throws Exception;
-    User getUser(int usercode);
-	User getUser(int usercode, String name);
-    void GetUser3();
-	List<User> GetUsers(List<String> userIdList);
-	User GetUser0(String userId, String name);
-}
+/*
+ * 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.
+ */
+package com.ikurento.user;
+
+import java.util.List;
+
+public interface UserProvider {
+	User GetUser(String userId);
+	User GetErr(String userId) throws Exception;
+	User GetUser1(String userId) throws Exception;
+    User getUser(int usercode);
+	User getUser(int usercode, String name);
+    void GetUser3();
+	List<User> GetUsers(List<String> userIdList);
+	User GetUser0(String userId, String name);
+}
diff --git a/general/dubbo/java-client/src/main/resources/META-INF/spring/service.xml b/general/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
index c7d82c4..854d513 100644
--- a/general/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/general/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
@@ -1,38 +1,38 @@
-<?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.
--->
-<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"
-	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
-
-	<bean class="com.ikurento.user.Consumer" init-method="start">
-		<!-- 声明这个类 要使用的服务名-->
-		<property name="userProvider" ref="userProvider" />
-		<property name="userProvider1" ref="userProvider1" />
-		<property name="userProvider2" ref="userProvider2" />
-	</bean>
-
-	<!-- App config -->
-	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
-		<property name="locations">
-			<list>
-				<value>classpath:dubbo.properties</value>
-			</list>
-		</property>
-	</bean>
-
-</beans>
+<?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.
+-->
+<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"
+	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
+
+	<bean class="com.ikurento.user.Consumer" init-method="start">
+		<!-- 声明这个类 要使用的服务名-->
+		<property name="userProvider" ref="userProvider" />
+		<property name="userProvider1" ref="userProvider1" />
+		<property name="userProvider2" ref="userProvider2" />
+	</bean>
+
+	<!-- App config -->
+	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+		<property name="locations">
+			<list>
+				<value>classpath:dubbo.properties</value>
+			</list>
+		</property>
+	</bean>
+
+</beans>
diff --git a/general/dubbo/java-server/src/main/assembly/assembly.xml b/general/dubbo/java-server/src/main/assembly/assembly.xml
index 7947c65..98a2e10 100644
--- a/general/dubbo/java-server/src/main/assembly/assembly.xml
+++ b/general/dubbo/java-server/src/main/assembly/assembly.xml
@@ -1,45 +1,45 @@
-<?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.
--->
-
-<assembly>
-	<id>assembly</id>
-	<formats>
-		<format>tar.gz</format>
-	</formats>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<fileSets>
-		<fileSet>
-			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
-			<outputDirectory>bin</outputDirectory>
-			<fileMode>0755</fileMode>
-            <directoryMode>0755</directoryMode>
-		</fileSet>
-		<fileSet>
-            <directory>src/main/assembly/conf</directory>
-            <includes>
-                <include>dubbo.properties</include>
-                <include>log4j.*</include>
-            </includes>
-			<outputDirectory>conf</outputDirectory>
-			<fileMode>0644</fileMode>
-            <directoryMode>0755</directoryMode>
-		</fileSet>
-	</fileSets>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>lib</outputDirectory>
-		</dependencySet>
-	</dependencySets>
+<?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.
+-->
+
+<assembly>
+	<id>assembly</id>
+	<formats>
+		<format>tar.gz</format>
+	</formats>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+            <directoryMode>0755</directoryMode>
+		</fileSet>
+		<fileSet>
+            <directory>src/main/assembly/conf</directory>
+            <includes>
+                <include>dubbo.properties</include>
+                <include>log4j.*</include>
+            </includes>
+			<outputDirectory>conf</outputDirectory>
+			<fileMode>0644</fileMode>
+            <directoryMode>0755</directoryMode>
+		</fileSet>
+	</fileSets>
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>lib</outputDirectory>
+		</dependencySet>
+	</dependencySets>
 </assembly>
\ No newline at end of file
diff --git a/general/dubbo/java-server/src/main/assembly/conf/dubbo.properties b/general/dubbo/java-server/src/main/assembly/conf/dubbo.properties
index 54f8a16..2826f31 100644
--- a/general/dubbo/java-server/src/main/assembly/conf/dubbo.properties
+++ b/general/dubbo/java-server/src/main/assembly/conf/dubbo.properties
@@ -1,14 +1,14 @@
-### dubbo注册中心配置 ##
-dubbo.container = log4j,spring
-dubbo.application.name = user-info-server
-dubbo.application.environment = product
-dubbo.application.owner = AlexStocks
-dubbo.registry.address = 127.0.0.1:2181
-dubbo.registry.protocol = zookeeper
-dubbo.consumer.timeout = 10000
-dubbo.provider.timeout = 10000
-dubbo.protocol.name = dubbo
-dubbo.protocol.port = 10000
-
-dubbo.log4j.file = logs/dubbo.log
-dubbo.log4j.level = INFO
+### dubbo注册中心配置 ##
+dubbo.container = log4j,spring
+dubbo.application.name = user-info-server
+dubbo.application.environment = product
+dubbo.application.owner = AlexStocks
+dubbo.registry.address = 127.0.0.1:2181
+dubbo.registry.protocol = zookeeper
+dubbo.consumer.timeout = 10000
+dubbo.provider.timeout = 10000
+dubbo.protocol.name = dubbo
+dubbo.protocol.port = 10000
+
+dubbo.log4j.file = logs/dubbo.log
+dubbo.log4j.level = INFO
diff --git a/general/dubbo/java-server/src/main/assembly/conf/log4j.properties b/general/dubbo/java-server/src/main/assembly/conf/log4j.properties
index 806e33d..13c8049 100644
--- a/general/dubbo/java-server/src/main/assembly/conf/log4j.properties
+++ b/general/dubbo/java-server/src/main/assembly/conf/log4j.properties
@@ -1,20 +1,20 @@
-## Logger configure file for myproject
-log.dir=logs/
-datestamp=yyyy-MM-dd/HH:mm:ss.SSS
-
-log4j.rootLogger=DEBUG, file, console
-
-log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.file.threshold=DEBUG
-log4j.appender.file.File=${log.dir}/log4j.log
-log4j.appender.file.DatePattern=-yyyyMMddHH
-log4j.appender.file.ImmediateFlush=true
-log4j.appender.file.Append=true
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.Threshold=DEBUG
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
+## Logger configure file for myproject
+log.dir=logs/
+datestamp=yyyy-MM-dd/HH:mm:ss.SSS
+
+log4j.rootLogger=DEBUG, file, console
+
+log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.file.threshold=DEBUG
+log4j.appender.file.File=${log.dir}/log4j.log
+log4j.appender.file.DatePattern=-yyyyMMddHH
+log4j.appender.file.ImmediateFlush=true
+log4j.appender.file.Append=true
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.Threshold=DEBUG
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
diff --git a/general/dubbo/java-server/src/main/java/com/ikurento/user/Gender.java b/general/dubbo/java-server/src/main/java/com/ikurento/user/Gender.java
index e74a5d4..e606be7 100644
--- a/general/dubbo/java-server/src/main/java/com/ikurento/user/Gender.java
+++ b/general/dubbo/java-server/src/main/java/com/ikurento/user/Gender.java
@@ -1,23 +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;
-
-public enum  Gender {
-    MAN,
-    WOMAN
-}
+/*
+ * 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 {
+    MAN,
+    WOMAN
+}
diff --git a/general/dubbo/java-server/src/main/java/com/ikurento/user/User.java b/general/dubbo/java-server/src/main/java/com/ikurento/user/User.java
index 7af1c9c..a6e76cf 100644
--- a/general/dubbo/java-server/src/main/java/com/ikurento/user/User.java
+++ b/general/dubbo/java-server/src/main/java/com/ikurento/user/User.java
@@ -1,95 +1,95 @@
-/*
- * 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.util.Date;
-import java.io.Serializable;
-
-public class User implements Serializable  {
-
-    private String id;
-
-    private String name;
-
-    private int age;
-
-    private Date time = new Date();
-
-    private Gender sex = Gender.MAN;
-
-    public User() {
-    }
-
-    public User(String id, String name, int age) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-    }
-
-    public User(String id, String name, int age, Date time, Gender sex) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-        this.time = time;
-        this.sex = sex;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public int getAge() {
-        return age;
-    }
-
-    public void setAge(int age) {
-        this.age = age;
-    }
-
-    public Date getTime() {
-        return time;
-    }
-
-    public void setTime(Date time) {
-        this.time = time;
-    }
-
-    public Gender getSex() {
-        return sex;
-    }
-
-    public void setSex(Gender sex) {
-        this.sex = sex;
-    }
-
-    public String toString() {
-        return "User{id:" + id + ", name:" + name + ", age:" + age + ", time:" + time + ", gender:" + sex + "}";
-    }
-}
+/*
+ * 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.util.Date;
+import java.io.Serializable;
+
+public class User implements Serializable  {
+
+    private String id;
+
+    private String name;
+
+    private int age;
+
+    private Date time = new Date();
+
+    private Gender sex = Gender.MAN;
+
+    public User() {
+    }
+
+    public User(String id, String name, int age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    public User(String id, String name, int age, Date time, Gender sex) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+        this.time = time;
+        this.sex = sex;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+    public Gender getSex() {
+        return sex;
+    }
+
+    public void setSex(Gender sex) {
+        this.sex = sex;
+    }
+
+    public String toString() {
+        return "User{id:" + id + ", name:" + name + ", age:" + age + ", time:" + time + ", gender:" + sex + "}";
+    }
+}
diff --git a/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java b/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
index efba5b0..e750834 100644
--- a/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
@@ -1,50 +1,50 @@
-/*
- * 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.util.List;
-import java.util.Map;
-
-public interface UserProvider {
-
-    boolean isLimit(Gender gender, String name);
-
-    User GetUser(String userId); // the first alpha is Upper case to compatible with golang.
-
-    List<User> GetUsers(List<String> userIdList);
-
-    void GetUser3();
-
-    User GetUser0(String userId, String name);
-
-	User GetErr(String userId) throws Exception;
-
-    Map<String, User> GetUserMap(List<String> userIdList);
-
-    User getUser(int usercode);
-
-    User getUser(int usercode, String name);
-
-    User queryUser(User user);
-
-    Map<String, User> queryAll();
-
-    int Calc(int a,int b);
-
-    Response<Integer> Sum(int a, int b);
-}
+/*
+ * 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.util.List;
+import java.util.Map;
+
+public interface UserProvider {
+
+    boolean isLimit(Gender gender, String name);
+
+    User GetUser(String userId); // the first alpha is Upper case to compatible with golang.
+
+    List<User> GetUsers(List<String> userIdList);
+
+    void GetUser3();
+
+    User GetUser0(String userId, String name);
+
+	User GetErr(String userId) throws Exception;
+
+    Map<String, User> GetUserMap(List<String> userIdList);
+
+    User getUser(int usercode);
+
+    User getUser(int usercode, String name);
+
+    User queryUser(User user);
+
+    Map<String, User> queryAll();
+
+    int Calc(int a,int b);
+
+    Response<Integer> Sum(int a, int b);
+}
diff --git a/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java b/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
index c1bc639..717e6b3 100644
--- a/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
+++ b/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
@@ -1,143 +1,143 @@
-/*
- * 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 org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.*;
-
-public class UserProviderAnotherImpl implements UserProvider {
-    // private static final Logger logger = LoggerFactory.getLogger(getClass()); // Only output to dubbo's log(logs/server.log)
-    private static final Logger logger = LoggerFactory.getLogger("userLogger"); // Output to user-server.log
-
-    private Map<String, User> userMap = new HashMap<String, User>();
-
-    public UserProviderAnotherImpl() {
-        // userMap.put("001", new User("001", "other-zhangsan", 18, new Date(1998-1900, 1, 2, 3, 4, 5), Gender.MAN));
-        userMap.put("001", new User("001", "other-zhangsan", 18, new Date(0x12345678), Gender.MAN));
-        userMap.put("002", new User("002", "other-lisi", 20, new Date(1996-1900, 1, 2, 3, 4, 5), Gender.MAN));
-        userMap.put("003", new User("003", "other-lily", 23, new Date(1993-1900, 1, 2, 3, 4, 5), Gender.WOMAN));
-        userMap.put("004", new User("004", "other-lisa", 32, new Date(1985-1900, 1, 2, 3, 4, 5), Gender.WOMAN));
-    }
-
-    public boolean isLimit(Gender gender, String name) {
-        logger.info(String.format("input gender=%sand name=%s", gender, name));
-        return Gender.MAN == gender;
-    }
-
-    public User GetUser(String userId) {
-        logger.info("input userId = " + userId);
-        return new User(userId, "Joe", 48);
-    }
-
-    public User GetUser0(String userId, String name) {
-        return new User(userId, name, 48);
-    }
-
-    public void GetUser3() {
-        logger.info("this is GetUser3 of another");
-    }
-
-    public User GetErr(String userId) throws Exception {
-        throw new Exception("exception");
-    }
-
-    public List<User> GetUsers(ArrayList<String> userIdList) {
-        Iterator it = userIdList.iterator();
-        List<User> userList = new ArrayList<User>();
-        logger.warn("@userIdList size:" + userIdList.size());
-
-        while(it.hasNext()) {
-            String id = (String)(it.next());
-            logger.info("GetUsers(@uid:" + id + ")");
-            if (userMap.containsKey(id)) {
-                userList.add(userMap.get(id));
-                logger.info("id:" + id + ", user:" + userMap.get(id));
-            }
-        }
-
-        return userList;
-    }
-
-    public Map<String, User> GetUserMap(List<String> userIdList) {
-        Iterator it = userIdList.iterator();
-        Map<String, User> map = new HashMap<String, User>();
-        logger.warn("@userIdList size:" + userIdList.size());
-
-        while(it.hasNext()) {
-            String id = (String)(it.next());
-            logger.info("GetUsers(@uid:" + id + ")");
-            if (userMap.containsKey(id)) {
-                map.put(id, userMap.get(id));
-                logger.info("id:" + id + ", user:" + userMap.get(id));
-            }
-        }
-
-        return map;
-    }
-
-    public List<User> GetUsers(List<String> userIdList) {
-        Iterator it = userIdList.iterator();
-        List<User> userList = new ArrayList<User>();
-        logger.warn("@userIdList size:" + userIdList.size());
-
-        while(it.hasNext()) {
-            String id = (String)(it.next());
-            logger.info("GetUsers(@uid:" + id + ")");
-            if (userMap.containsKey(id)) {
-                userList.add(userMap.get(id));
-                logger.info("id:" + id + ", user:" + userMap.get(id));
-            }
-        }
-
-        return userList;
-    }
-
-    // @Override
-    public User getUser(int userCode) {
-        logger.info("input userCode = " + userCode);
-        return new User(String.valueOf(userCode), "userCode get", 48);
-    }
-
-    public User getUser(int usercode, String name) {
-        return new User(String.valueOf(usercode), name, 18);
-    }
-
-    public User queryUser(User user) {
-        logger.info("input user = " + user);
-        return new User(user.getId(), "get:" + user.getName(), user.getAge() + 18);
-    }
-
-    public Map<String, User> queryAll() {
-        logger.info("input");
-        Map<String, User> map = new HashMap<String, User>();
-        map.put("001", new User("001", "Joe", 18));
-        map.put("002", new User("002", "Wen", 20));
-
-        return map;
-    }
-
-    public int Calc(int a,int b) {
-        return a + b + 100;
-    }
-
-    public Response<Integer> Sum(int a,int b) {
-        return Response.ok(a+b);
-    }
-}
+/*
+ * 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 org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.*;
+
+public class UserProviderAnotherImpl implements UserProvider {
+    // private static final Logger logger = LoggerFactory.getLogger(getClass()); // Only output to dubbo's log(logs/server.log)
+    private static final Logger logger = LoggerFactory.getLogger("userLogger"); // Output to user-server.log
+
+    private Map<String, User> userMap = new HashMap<String, User>();
+
+    public UserProviderAnotherImpl() {
+        // userMap.put("001", new User("001", "other-zhangsan", 18, new Date(1998-1900, 1, 2, 3, 4, 5), Gender.MAN));
+        userMap.put("001", new User("001", "other-zhangsan", 18, new Date(0x12345678), Gender.MAN));
+        userMap.put("002", new User("002", "other-lisi", 20, new Date(1996-1900, 1, 2, 3, 4, 5), Gender.MAN));
+        userMap.put("003", new User("003", "other-lily", 23, new Date(1993-1900, 1, 2, 3, 4, 5), Gender.WOMAN));
+        userMap.put("004", new User("004", "other-lisa", 32, new Date(1985-1900, 1, 2, 3, 4, 5), Gender.WOMAN));
+    }
+
+    public boolean isLimit(Gender gender, String name) {
+        logger.info(String.format("input gender=%sand name=%s", gender, name));
+        return Gender.MAN == gender;
+    }
+
+    public User GetUser(String userId) {
+        logger.info("input userId = " + userId);
+        return new User(userId, "Joe", 48);
+    }
+
+    public User GetUser0(String userId, String name) {
+        return new User(userId, name, 48);
+    }
+
+    public void GetUser3() {
+        logger.info("this is GetUser3 of another");
+    }
+
+    public User GetErr(String userId) throws Exception {
+        throw new Exception("exception");
+    }
+
+    public List<User> GetUsers(ArrayList<String> userIdList) {
+        Iterator it = userIdList.iterator();
+        List<User> userList = new ArrayList<User>();
+        logger.warn("@userIdList size:" + userIdList.size());
+
+        while(it.hasNext()) {
+            String id = (String)(it.next());
+            logger.info("GetUsers(@uid:" + id + ")");
+            if (userMap.containsKey(id)) {
+                userList.add(userMap.get(id));
+                logger.info("id:" + id + ", user:" + userMap.get(id));
+            }
+        }
+
+        return userList;
+    }
+
+    public Map<String, User> GetUserMap(List<String> userIdList) {
+        Iterator it = userIdList.iterator();
+        Map<String, User> map = new HashMap<String, User>();
+        logger.warn("@userIdList size:" + userIdList.size());
+
+        while(it.hasNext()) {
+            String id = (String)(it.next());
+            logger.info("GetUsers(@uid:" + id + ")");
+            if (userMap.containsKey(id)) {
+                map.put(id, userMap.get(id));
+                logger.info("id:" + id + ", user:" + userMap.get(id));
+            }
+        }
+
+        return map;
+    }
+
+    public List<User> GetUsers(List<String> userIdList) {
+        Iterator it = userIdList.iterator();
+        List<User> userList = new ArrayList<User>();
+        logger.warn("@userIdList size:" + userIdList.size());
+
+        while(it.hasNext()) {
+            String id = (String)(it.next());
+            logger.info("GetUsers(@uid:" + id + ")");
+            if (userMap.containsKey(id)) {
+                userList.add(userMap.get(id));
+                logger.info("id:" + id + ", user:" + userMap.get(id));
+            }
+        }
+
+        return userList;
+    }
+
+    // @Override
+    public User getUser(int userCode) {
+        logger.info("input userCode = " + userCode);
+        return new User(String.valueOf(userCode), "userCode get", 48);
+    }
+
+    public User getUser(int usercode, String name) {
+        return new User(String.valueOf(usercode), name, 18);
+    }
+
+    public User queryUser(User user) {
+        logger.info("input user = " + user);
+        return new User(user.getId(), "get:" + user.getName(), user.getAge() + 18);
+    }
+
+    public Map<String, User> queryAll() {
+        logger.info("input");
+        Map<String, User> map = new HashMap<String, User>();
+        map.put("001", new User("001", "Joe", 18));
+        map.put("002", new User("002", "Wen", 20));
+
+        return map;
+    }
+
+    public int Calc(int a,int b) {
+        return a + b + 100;
+    }
+
+    public Response<Integer> Sum(int a,int b) {
+        return Response.ok(a+b);
+    }
+}
diff --git a/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 63316fb..c6d0c17 100644
--- a/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/general/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -1,119 +1,119 @@
-/*
- * 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.util.HashMap;
-import java.util.List;
-import java.util.ArrayList;
-import java.util.Map;
-import java.util.Iterator;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class UserProviderImpl implements UserProvider {
-    // private static final Logger logger = LoggerFactory.getLogger(getClass()); // Only output to dubbo's log(logs/server.log)
-    private static final Logger LOG = LoggerFactory.getLogger("UserLogger"); // Output to user-server.log
-    Map<String, User> userMap = new HashMap<String, User>();
-
-    public UserProviderImpl() {
-        userMap.put("A001", new User("A001", "demo-zhangsan", 18));
-        userMap.put("A002", new User("A002", "demo-lisi", 20));
-        userMap.put("A003", new User("A003", "demo-lily", 23));
-        userMap.put("A004", new User("A004", "demo-lisa", 32));
-    }
-
-    public boolean isLimit(Gender gender, String name) {
-        return Gender.WOMAN == gender;
-    }
-
-    public User GetUser(String userId) {
-        return new User(userId, "zhangsan", 18);
-    }
-
-    public User GetErr(String userId) throws Exception {
-        throw new Exception("exception");
-    }
-
-    public User GetUser0(String userId, String name) {
-            return new User(userId, name, 18);
-    }
-
-    public List<User> GetUsers(List<String> userIdList) {
-        Iterator it = userIdList.iterator();
-        List<User> userList = new ArrayList<User>();
-        LOG.warn("@userIdList size:" + userIdList.size());
-
-        while(it.hasNext()) {
-            String id = (String)(it.next());
-            LOG.info("GetUsers(@uid:" + id + ")");
-            if (userMap.containsKey(id)) {
-                userList.add(userMap.get(id));
-                LOG.info("id:" + id + ", user:" + userMap.get(id));
-            }
-        }
-
-        return userList;
-    }
-
-    public void GetUser3() {
-        LOG.info("this is GetUser3 of impl");
-    }
-
-    public Map<String, User> GetUserMap(List<String> userIdList) {
-        Iterator it = userIdList.iterator();
-        Map<String, User> map = new HashMap<String, User>();
-        LOG.warn("@userIdList size:" + userIdList.size());
-
-        while(it.hasNext()) {
-            String id = (String)(it.next());
-            LOG.info("GetUsers(@uid:" + id + ")");
-            if (userMap.containsKey(id)) {
-                map.put(id, userMap.get(id));
-                LOG.info("id:" + id + ", user:" + userMap.get(id));
-            }
-        }
-
-        return map;
-    }
-
-    public User queryUser(User user) {
-        return new User(user.getId(), "hello:" +user.getName(), user.getAge() + 18);
-    }
-
-    public Map<String, User> queryAll() {
-        return userMap;
-    }
-
-
-    public User getUser(int userCode) {
-        return new User(String.valueOf(userCode), "userCode get", 48);
-    }
-
-    public User getUser(int usercode, String name) {
-        return new User(String.valueOf(usercode), name, 38);
-    }
-
-    public int Calc(int a,int b) {
-        return a + b;
-    }
-
-     public Response<Integer> Sum(int a,int b) {
-        return Response.ok(a+b);
-    }
-}
+/*
+ * 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.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.util.Iterator;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class UserProviderImpl implements UserProvider {
+    // private static final Logger logger = LoggerFactory.getLogger(getClass()); // Only output to dubbo's log(logs/server.log)
+    private static final Logger LOG = LoggerFactory.getLogger("UserLogger"); // Output to user-server.log
+    Map<String, User> userMap = new HashMap<String, User>();
+
+    public UserProviderImpl() {
+        userMap.put("A001", new User("A001", "demo-zhangsan", 18));
+        userMap.put("A002", new User("A002", "demo-lisi", 20));
+        userMap.put("A003", new User("A003", "demo-lily", 23));
+        userMap.put("A004", new User("A004", "demo-lisa", 32));
+    }
+
+    public boolean isLimit(Gender gender, String name) {
+        return Gender.WOMAN == gender;
+    }
+
+    public User GetUser(String userId) {
+        return new User(userId, "zhangsan", 18);
+    }
+
+    public User GetErr(String userId) throws Exception {
+        throw new Exception("exception");
+    }
+
+    public User GetUser0(String userId, String name) {
+            return new User(userId, name, 18);
+    }
+
+    public List<User> GetUsers(List<String> userIdList) {
+        Iterator it = userIdList.iterator();
+        List<User> userList = new ArrayList<User>();
+        LOG.warn("@userIdList size:" + userIdList.size());
+
+        while(it.hasNext()) {
+            String id = (String)(it.next());
+            LOG.info("GetUsers(@uid:" + id + ")");
+            if (userMap.containsKey(id)) {
+                userList.add(userMap.get(id));
+                LOG.info("id:" + id + ", user:" + userMap.get(id));
+            }
+        }
+
+        return userList;
+    }
+
+    public void GetUser3() {
+        LOG.info("this is GetUser3 of impl");
+    }
+
+    public Map<String, User> GetUserMap(List<String> userIdList) {
+        Iterator it = userIdList.iterator();
+        Map<String, User> map = new HashMap<String, User>();
+        LOG.warn("@userIdList size:" + userIdList.size());
+
+        while(it.hasNext()) {
+            String id = (String)(it.next());
+            LOG.info("GetUsers(@uid:" + id + ")");
+            if (userMap.containsKey(id)) {
+                map.put(id, userMap.get(id));
+                LOG.info("id:" + id + ", user:" + userMap.get(id));
+            }
+        }
+
+        return map;
+    }
+
+    public User queryUser(User user) {
+        return new User(user.getId(), "hello:" +user.getName(), user.getAge() + 18);
+    }
+
+    public Map<String, User> queryAll() {
+        return userMap;
+    }
+
+
+    public User getUser(int userCode) {
+        return new User(String.valueOf(userCode), "userCode get", 48);
+    }
+
+    public User getUser(int usercode, String name) {
+        return new User(String.valueOf(usercode), name, 38);
+    }
+
+    public int Calc(int a,int b) {
+        return a + b;
+    }
+
+     public Response<Integer> Sum(int a,int b) {
+        return Response.ok(a+b);
+    }
+}
diff --git a/general/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/general/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 0ca9a23..4ebe64b 100644
--- a/general/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/general/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
@@ -1,39 +1,39 @@
-<?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.
--->
-
-<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"
-	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
-
-	<!-- 应用名 -->
-	<dubbo:application name="user-info-server"/>
-	<!-- 连接到哪个本地注册中心 -->
-	<dubbo:registry id="ikurento"  address="zookeeper://127.0.0.1:2181" />
-	<dubbo:registry id="ikurento2"  address="zookeeper://127.0.0.1:2182" />
-	<!-- 用dubbo协议在20880端口暴露服务 -->
-    <!-- dubbo:protocol host="127.0.0.1" / -->
-	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" port="20010" />
-	<dubbo:protocol id="jsonrpc" name="jsonrpc" host="127.0.0.1" port="10010" />
-	<!-- 声明需要暴露的服务接口 -->
-	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>
-	<dubbo:service id="bbb" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="otherService" version="2.0"/>
-	<dubbo:service id="ccc" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="otherService" group="as" version="2.0"/>
-
-	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />
-	<bean id="otherService" class="com.ikurento.user.UserProviderAnotherImpl"/>
-
-</beans>
+<?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.
+-->
+
+<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"
+	   xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
+
+	<!-- 应用名 -->
+	<dubbo:application name="user-info-server"/>
+	<!-- 连接到哪个本地注册中心 -->
+	<dubbo:registry id="ikurento"  address="zookeeper://127.0.0.1:2181" />
+	<dubbo:registry id="ikurento2"  address="zookeeper://127.0.0.1:2182" />
+	<!-- 用dubbo协议在20880端口暴露服务 -->
+    <!-- dubbo:protocol host="127.0.0.1" / -->
+	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" port="20010" />
+	<dubbo:protocol id="jsonrpc" name="jsonrpc" host="127.0.0.1" port="10010" />
+	<!-- 声明需要暴露的服务接口 -->
+	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>
+	<dubbo:service id="bbb" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="otherService" version="2.0"/>
+	<dubbo:service id="ccc" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="otherService" group="as" version="2.0"/>
+
+	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />
+	<bean id="otherService" class="com.ikurento.user.UserProviderAnotherImpl"/>
+
+</beans>
diff --git a/general/dubbo/java-server/src/main/resources/log4j.properties b/general/dubbo/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/general/dubbo/java-server/src/main/resources/log4j.properties
+++ b/general/dubbo/java-server/src/main/resources/log4j.properties
@@ -1,20 +1,20 @@
-## Logger configure file for myproject
-log.dir=logs/
-datestamp=yyyy-MM-dd/HH:mm:ss.SSS
-
-log4j.rootLogger=DEBUG, file, console
-
-log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.file.threshold=DEBUG
-log4j.appender.file.File=${log.dir}/log4j.log
-log4j.appender.file.DatePattern=-yyyyMMddHH
-log4j.appender.file.ImmediateFlush=true
-log4j.appender.file.Append=true
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.Threshold=DEBUG
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
+## Logger configure file for myproject
+log.dir=logs/
+datestamp=yyyy-MM-dd/HH:mm:ss.SSS
+
+log4j.rootLogger=DEBUG, file, console
+
+log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.file.threshold=DEBUG
+log4j.appender.file.File=${log.dir}/log4j.log
+log4j.appender.file.DatePattern=-yyyyMMddHH
+log4j.appender.file.ImmediateFlush=true
+log4j.appender.file.Append=true
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.Threshold=DEBUG
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
diff --git a/general/grpc/go-client/profiles/dev/log.yml b/general/grpc/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/general/grpc/go-client/profiles/dev/log.yml
+++ b/general/grpc/go-client/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/general/grpc/go-client/profiles/release/log.yml b/general/grpc/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/general/grpc/go-client/profiles/release/log.yml
+++ b/general/grpc/go-client/profiles/release/log.yml
@@ -1,28 +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:
+
+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/general/grpc/go-client/profiles/test/log.yml b/general/grpc/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/general/grpc/go-client/profiles/test/log.yml
+++ b/general/grpc/go-client/profiles/test/log.yml
@@ -1,28 +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:
+
+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/general/grpc/go-server/profiles/dev/log.yml b/general/grpc/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/general/grpc/go-server/profiles/dev/log.yml
+++ b/general/grpc/go-server/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/general/grpc/go-server/profiles/release/log.yml b/general/grpc/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/general/grpc/go-server/profiles/release/log.yml
+++ b/general/grpc/go-server/profiles/release/log.yml
@@ -1,28 +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:
+
+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/general/grpc/go-server/profiles/test/log.yml b/general/grpc/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/general/grpc/go-server/profiles/test/log.yml
+++ b/general/grpc/go-server/profiles/test/log.yml
@@ -1,28 +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:
+
+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/general/jsonrpc/go-client/profiles/dev/log.yml b/general/jsonrpc/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/general/jsonrpc/go-client/profiles/dev/log.yml
+++ b/general/jsonrpc/go-client/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/general/jsonrpc/go-client/profiles/release/log.yml b/general/jsonrpc/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/general/jsonrpc/go-client/profiles/release/log.yml
+++ b/general/jsonrpc/go-client/profiles/release/log.yml
@@ -1,28 +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:
+
+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/general/jsonrpc/go-client/profiles/test/log.yml b/general/jsonrpc/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/general/jsonrpc/go-client/profiles/test/log.yml
+++ b/general/jsonrpc/go-client/profiles/test/log.yml
@@ -1,28 +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:
+
+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/general/jsonrpc/go-server/profiles/dev/log.yml b/general/jsonrpc/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/general/jsonrpc/go-server/profiles/dev/log.yml
+++ b/general/jsonrpc/go-server/profiles/dev/log.yml
@@ -1,28 +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:
+
+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/general/jsonrpc/go-server/profiles/release/log.yml b/general/jsonrpc/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/general/jsonrpc/go-server/profiles/release/log.yml
+++ b/general/jsonrpc/go-server/profiles/release/log.yml
@@ -1,28 +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:
+
+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/general/jsonrpc/go-server/profiles/test/log.yml b/general/jsonrpc/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/general/jsonrpc/go-server/profiles/test/log.yml
+++ b/general/jsonrpc/go-server/profiles/test/log.yml
@@ -1,28 +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:
+
+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/general/jsonrpc/java-client/src/main/assembly/assembly.xml b/general/jsonrpc/java-client/src/main/assembly/assembly.xml
index 40c34d8..47757d1 100644
--- a/general/jsonrpc/java-client/src/main/assembly/assembly.xml
+++ b/general/jsonrpc/java-client/src/main/assembly/assembly.xml
@@ -1,39 +1,39 @@
-<?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.
--->
-
-<assembly>
-	<id>assembly</id>
-	<formats>
-		<format>tar.gz</format>
-	</formats>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<fileSets>
-		<fileSet>
-			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
-			<outputDirectory>bin</outputDirectory>
-			<fileMode>0755</fileMode>
-		</fileSet>
-		<fileSet>
-			<directory>src/main/assembly/conf</directory>
-			<outputDirectory>conf</outputDirectory>
-			<fileMode>0644</fileMode>
-		</fileSet>
-	</fileSets>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>lib</outputDirectory>
-		</dependencySet>
-	</dependencySets>
+<?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.
+-->
+
+<assembly>
+	<id>assembly</id>
+	<formats>
+		<format>tar.gz</format>
+	</formats>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+		</fileSet>
+		<fileSet>
+			<directory>src/main/assembly/conf</directory>
+			<outputDirectory>conf</outputDirectory>
+			<fileMode>0644</fileMode>
+		</fileSet>
+	</fileSets>
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>lib</outputDirectory>
+		</dependencySet>
+	</dependencySets>
 </assembly>
\ No newline at end of file
diff --git a/general/jsonrpc/java-client/src/main/assembly/conf/dubbo.properties b/general/jsonrpc/java-client/src/main/assembly/conf/dubbo.properties
index 73da0df..fc7b9ae 100644
--- a/general/jsonrpc/java-client/src/main/assembly/conf/dubbo.properties
+++ b/general/jsonrpc/java-client/src/main/assembly/conf/dubbo.properties
@@ -1,13 +1,13 @@
-### dubboע���������� ###
-dubbo.container = log4j,spring
-dubbo.application.name = user-info-client
-dubbo.application.owner = AlexStocks
-dubbo.application.environment  =  product
-dubbo.registry.address = zookeeper://127.0.0.1:2181
-dubbo.monitor.protocol = zookeeper
-dubbo.consumer.timeout = 10000
-dubbo.provider.timeout = 10000
-dubbo.protocol.name = jsonrpc
-
-dubbo.log4j.file = logs/client.log
-dubbo.log4j.level = WARN
+### dubboע���������� ###
+dubbo.container = log4j,spring
+dubbo.application.name = user-info-client
+dubbo.application.owner = AlexStocks
+dubbo.application.environment  =  product
+dubbo.registry.address = zookeeper://127.0.0.1:2181
+dubbo.monitor.protocol = zookeeper
+dubbo.consumer.timeout = 10000
+dubbo.provider.timeout = 10000
+dubbo.protocol.name = jsonrpc
+
+dubbo.log4j.file = logs/client.log
+dubbo.log4j.level = WARN
diff --git a/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Consumer.java b/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Consumer.java
index d842d71..d80fcf8 100644
--- a/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,211 +1,211 @@
-/*
- * 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.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import com.alibaba.dubbo.rpc.service.EchoService;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-import java.util.List;
-
-public class Consumer {
-    // Define a private variable (Required in Spring)
-    private UserProvider userProvider;
-    private UserProvider userProvider1;
-    private UserProvider userProvider2;
-
-    // Spring DI (Required in Spring)
-    public void setUserProvider(UserProvider u) {
-        this.userProvider = u;
-    }
-    public void setUserProvider1(UserProvider u) {
-        this.userProvider1 = u;
-    }
-    public void setUserProvider2(UserProvider u) {
-        this.userProvider2 = u;
-    }
-
-    public static void main(String[] args) throws Exception {
-        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml","META-INF/spring/service.xml");
-        context.start();
-        context.getBean(Consumer.class).start();
-    }
-
-    // Start the entry function for consumer (Specified in the configuration file)
-    public void start() throws Exception {
-        System.out.println("\n\ntest");
-        testGetUser();
-        testGetUsers();
-        System.out.println("\n\ntest1");
-        testGetUser1();
-        testGetUsers1();
-        System.out.println("\n\ntest2");
-        testGetUser2();
-        testGetUsers2();
-        Thread.sleep(2000);
-    }
-
-    private void testGetUser() throws Exception {
-        try {
-            EchoService echoService = (EchoService)userProvider;
-            Object status = echoService.$echo("OK");
-            System.out.println("echo: "+status);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        try {
-            User user1 = userProvider.GetUser("A003");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
-                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
-            User user2 = userProvider.GetUser0("A003","Moorse");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
-                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
-            User user3 = userProvider.getUser(1);
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
-                    + ", age:" + user3.getAge() + ", time:" + user3.getTime().toString());
-
-            userProvider.GetUser3();
-            System.out.println("GetUser3 succ");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void testGetUsers() throws Exception {
-        try {
-            List<String> userIDList = new ArrayList<String>();
-            userIDList.add("A001");
-            userIDList.add("A002");
-            userIDList.add("A003");
-
-            List<User> userList = userProvider.GetUsers(userIDList);
-
-            for (int i = 0; i < userList.size(); i++) {
-                User user = userList.get(i);
-                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
-                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void testGetUser1() throws Exception {
-        try {
-            EchoService echoService = (EchoService)userProvider1;
-            Object status = echoService.$echo("OK");
-            System.out.println("echo: "+status);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        try {
-            User user1 = userProvider1.GetUser("A003");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
-                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
-            User user2 = userProvider1.GetUser0("A003","Moorse");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
-                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
-            User user3 = userProvider1.getUser(1);
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
-                    + ", age:" + user3.getAge() + ", time:" + user3.getTime().toString());
-
-            userProvider1.GetUser3();
-            System.out.println("GetUser3 succ");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void testGetUsers1() throws Exception {
-        try {
-            List<String> userIDList = new ArrayList<String>();
-            userIDList.add("A001");
-            userIDList.add("A002");
-            userIDList.add("A003");
-
-            List<User> userList = userProvider1.GetUsers(userIDList);
-
-            for (int i = 0; i < userList.size(); i++) {
-                User user = userList.get(i);
-                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
-                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void testGetUser2() throws Exception {
-        try {
-            EchoService echoService = (EchoService)userProvider2;
-            Object status = echoService.$echo("OK");
-            System.out.println("echo: "+status);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-        try {
-            User user1 = userProvider2.GetUser("A003");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
-                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
-            User user2 = userProvider2.GetUser0("A003","Moorse");
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
-                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
-            User user3 = userProvider2.getUser(1);
-            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
-                    + ", age:" + user3.getAge() + ", time:" + user3.getTime().toString());
-
-            userProvider2.GetUser3();
-            System.out.println("GetUser3 succ");
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private void testGetUsers2() throws Exception {
-        try {
-            List<String> userIDList = new ArrayList<String>();
-            userIDList.add("A001");
-            userIDList.add("A002");
-            userIDList.add("A003");
-
-            List<User> userList = userProvider2.GetUsers(userIDList);
-
-            for (int i = 0; i < userList.size(); i++) {
-                User user = userList.get(i);
-                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
-                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
-                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-}
+/*
+ * 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.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Date;
+import com.alibaba.dubbo.rpc.service.EchoService;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+
+import java.util.List;
+
+public class Consumer {
+    // Define a private variable (Required in Spring)
+    private UserProvider userProvider;
+    private UserProvider userProvider1;
+    private UserProvider userProvider2;
+
+    // Spring DI (Required in Spring)
+    public void setUserProvider(UserProvider u) {
+        this.userProvider = u;
+    }
+    public void setUserProvider1(UserProvider u) {
+        this.userProvider1 = u;
+    }
+    public void setUserProvider2(UserProvider u) {
+        this.userProvider2 = u;
+    }
+
+    public static void main(String[] args) throws Exception {
+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml","META-INF/spring/service.xml");
+        context.start();
+        context.getBean(Consumer.class).start();
+    }
+
+    // Start the entry function for consumer (Specified in the configuration file)
+    public void start() throws Exception {
+        System.out.println("\n\ntest");
+        testGetUser();
+        testGetUsers();
+        System.out.println("\n\ntest1");
+        testGetUser1();
+        testGetUsers1();
+        System.out.println("\n\ntest2");
+        testGetUser2();
+        testGetUsers2();
+        Thread.sleep(2000);
+    }
+
+    private void testGetUser() throws Exception {
+        try {
+            EchoService echoService = (EchoService)userProvider;
+            Object status = echoService.$echo("OK");
+            System.out.println("echo: "+status);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        try {
+            User user1 = userProvider.GetUser("A003");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
+                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
+            User user2 = userProvider.GetUser0("A003","Moorse");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
+                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
+            User user3 = userProvider.getUser(1);
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
+                    + ", age:" + user3.getAge() + ", time:" + user3.getTime().toString());
+
+            userProvider.GetUser3();
+            System.out.println("GetUser3 succ");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void testGetUsers() throws Exception {
+        try {
+            List<String> userIDList = new ArrayList<String>();
+            userIDList.add("A001");
+            userIDList.add("A002");
+            userIDList.add("A003");
+
+            List<User> userList = userProvider.GetUsers(userIDList);
+
+            for (int i = 0; i < userList.size(); i++) {
+                User user = userList.get(i);
+                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
+                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void testGetUser1() throws Exception {
+        try {
+            EchoService echoService = (EchoService)userProvider1;
+            Object status = echoService.$echo("OK");
+            System.out.println("echo: "+status);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        try {
+            User user1 = userProvider1.GetUser("A003");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
+                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
+            User user2 = userProvider1.GetUser0("A003","Moorse");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
+                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
+            User user3 = userProvider1.getUser(1);
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
+                    + ", age:" + user3.getAge() + ", time:" + user3.getTime().toString());
+
+            userProvider1.GetUser3();
+            System.out.println("GetUser3 succ");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void testGetUsers1() throws Exception {
+        try {
+            List<String> userIDList = new ArrayList<String>();
+            userIDList.add("A001");
+            userIDList.add("A002");
+            userIDList.add("A003");
+
+            List<User> userList = userProvider1.GetUsers(userIDList);
+
+            for (int i = 0; i < userList.size(); i++) {
+                User user = userList.get(i);
+                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
+                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void testGetUser2() throws Exception {
+        try {
+            EchoService echoService = (EchoService)userProvider2;
+            Object status = echoService.$echo("OK");
+            System.out.println("echo: "+status);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        try {
+            User user1 = userProvider2.GetUser("A003");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user1.getId() + ", name:" + user1.getName() + ", sex:" + user1.getSex().toString()
+                    + ", age:" + user1.getAge() + ", time:" + user1.getTime().toString());
+            User user2 = userProvider2.GetUser0("A003","Moorse");
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user2.getId() + ", name:" + user2.getName() + ", sex:" + user2.getSex().toString()
+                    + ", age:" + user2.getAge() + ", time:" + user2.getTime().toString());
+            User user3 = userProvider2.getUser(1);
+            System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                    " UserInfo, Id:" + user3.getId() + ", name:" + user3.getName() + ", sex:" + user3.getSex().toString()
+                    + ", age:" + user3.getAge() + ", time:" + user3.getTime().toString());
+
+            userProvider2.GetUser3();
+            System.out.println("GetUser3 succ");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    private void testGetUsers2() throws Exception {
+        try {
+            List<String> userIDList = new ArrayList<String>();
+            userIDList.add("A001");
+            userIDList.add("A002");
+            userIDList.add("A003");
+
+            List<User> userList = userProvider2.GetUsers(userIDList);
+
+            for (int i = 0; i < userList.size(); i++) {
+                User user = userList.get(i);
+                System.out.println("[" + new SimpleDateFormat("HH:mm:ss").format(new Date()) + "] " +
+                        " UserInfo, Id:" + user.getId() + ", name:" + user.getName() + ", sex:" + user.getSex().toString()
+                        + ", age:" + user.getAge() + ", time:" + user.getTime().toString());
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Gender.java b/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Gender.java
index e74a5d4..e606be7 100644
--- a/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Gender.java
+++ b/general/jsonrpc/java-client/src/main/java/com/ikurento/user/Gender.java
@@ -1,23 +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;
-
-public enum  Gender {
-    MAN,
-    WOMAN
-}
+/*
+ * 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 {
+    MAN,
+    WOMAN
+}
diff --git a/general/jsonrpc/java-client/src/main/java/com/ikurento/user/User.java b/general/jsonrpc/java-client/src/main/java/com/ikurento/user/User.java
index 68556cc..7f228b3 100644
--- a/general/jsonrpc/java-client/src/main/java/com/ikurento/user/User.java
+++ b/general/jsonrpc/java-client/src/main/java/com/ikurento/user/User.java
@@ -1,83 +1,83 @@
-/*
- * 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.util.Date;
-
-public class User {
-
-    private String id;
-
-    private String name;
-
-    private int age;
-
-    private Date time = new Date();
-
-    private Gender sex = Gender.MAN;
-
-    public User() {
-    }
-
-
-    public User(String id, String name, int age) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public int getAge() {
-        return age;
-    }
-
-    public void setAge(int age) {
-        this.age = age;
-    }
-
-    public Date getTime() {
-        return time;
-    }
-
-    public void setTime(Date time) {
-        this.time = time;
-    }
-
-    public Gender getSex() {
-        return sex;
-    }
-
-    public void setSex(Gender sex) {
-        this.sex = sex;
-    }
-}
+/*
+ * 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.util.Date;
+
+public class User {
+
+    private String id;
+
+    private String name;
+
+    private int age;
+
+    private Date time = new Date();
+
+    private Gender sex = Gender.MAN;
+
+    public User() {
+    }
+
+
+    public User(String id, String name, int age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+    public Gender getSex() {
+        return sex;
+    }
+
+    public void setSex(Gender sex) {
+        this.sex = sex;
+    }
+}
diff --git a/general/jsonrpc/java-client/src/main/java/com/ikurento/user/UserProvider.java b/general/jsonrpc/java-client/src/main/java/com/ikurento/user/UserProvider.java
index 70fdcb0..5518577 100644
--- a/general/jsonrpc/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/general/jsonrpc/java-client/src/main/java/com/ikurento/user/UserProvider.java
@@ -1,25 +1,25 @@
-/*
- * 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.
- */
-
-package com.ikurento.user;
-
-import java.util.List;
-
-public interface UserProvider {
-	User GetUser(String userId);
-    User getUser(int usercode);
-    void GetUser3();
-	List<User> GetUsers(List<String> userIdList);
-	User GetUser0(String userId, String name);
-}
+/*
+ * 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.
+ */
+
+package com.ikurento.user;
+
+import java.util.List;
+
+public interface UserProvider {
+	User GetUser(String userId);
+    User getUser(int usercode);
+    void GetUser3();
+	List<User> GetUsers(List<String> userIdList);
+	User GetUser0(String userId, String name);
+}
diff --git a/general/jsonrpc/java-client/src/main/resources/META-INF/spring/service.xml b/general/jsonrpc/java-client/src/main/resources/META-INF/spring/service.xml
index c7d82c4..854d513 100644
--- a/general/jsonrpc/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/general/jsonrpc/java-client/src/main/resources/META-INF/spring/service.xml
@@ -1,38 +1,38 @@
-<?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.
--->
-<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"
-	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
-	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
-	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
-
-	<bean class="com.ikurento.user.Consumer" init-method="start">
-		<!-- 声明这个类 要使用的服务名-->
-		<property name="userProvider" ref="userProvider" />
-		<property name="userProvider1" ref="userProvider1" />
-		<property name="userProvider2" ref="userProvider2" />
-	</bean>
-
-	<!-- App config -->
-	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
-		<property name="locations">
-			<list>
-				<value>classpath:dubbo.properties</value>
-			</list>
-		</property>
-	</bean>
-
-</beans>
+<?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.
+-->
+<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"
+	xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+	http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
+
+	<bean class="com.ikurento.user.Consumer" init-method="start">
+		<!-- 声明这个类 要使用的服务名-->
+		<property name="userProvider" ref="userProvider" />
+		<property name="userProvider1" ref="userProvider1" />
+		<property name="userProvider2" ref="userProvider2" />
+	</bean>
+
+	<!-- App config -->
+	<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
+		<property name="locations">
+			<list>
+				<value>classpath:dubbo.properties</value>
+			</list>
+		</property>
+	</bean>
+
+</beans>
diff --git a/general/jsonrpc/java-client/src/main/resources/dubbo.properties b/general/jsonrpc/java-client/src/main/resources/dubbo.properties
index 73da0df..fc7b9ae 100644
--- a/general/jsonrpc/java-client/src/main/resources/dubbo.properties
+++ b/general/jsonrpc/java-client/src/main/resources/dubbo.properties
@@ -1,13 +1,13 @@
-### dubboע���������� ###
-dubbo.container = log4j,spring
-dubbo.application.name = user-info-client
-dubbo.application.owner = AlexStocks
-dubbo.application.environment  =  product
-dubbo.registry.address = zookeeper://127.0.0.1:2181
-dubbo.monitor.protocol = zookeeper
-dubbo.consumer.timeout = 10000
-dubbo.provider.timeout = 10000
-dubbo.protocol.name = jsonrpc
-
-dubbo.log4j.file = logs/client.log
-dubbo.log4j.level = WARN
+### dubboע���������� ###
+dubbo.container = log4j,spring
+dubbo.application.name = user-info-client
+dubbo.application.owner = AlexStocks
+dubbo.application.environment  =  product
+dubbo.registry.address = zookeeper://127.0.0.1:2181
+dubbo.monitor.protocol = zookeeper
+dubbo.consumer.timeout = 10000
+dubbo.provider.timeout = 10000
+dubbo.protocol.name = jsonrpc
+
+dubbo.log4j.file = logs/client.log
+dubbo.log4j.level = WARN
diff --git a/general/jsonrpc/java-server/src/main/assembly/assembly.xml b/general/jsonrpc/java-server/src/main/assembly/assembly.xml
index 7947c65..98a2e10 100644
--- a/general/jsonrpc/java-server/src/main/assembly/assembly.xml
+++ b/general/jsonrpc/java-server/src/main/assembly/assembly.xml
@@ -1,45 +1,45 @@
-<?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.
--->
-
-<assembly>
-	<id>assembly</id>
-	<formats>
-		<format>tar.gz</format>
-	</formats>
-	<includeBaseDirectory>true</includeBaseDirectory>
-	<fileSets>
-		<fileSet>
-			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
-			<outputDirectory>bin</outputDirectory>
-			<fileMode>0755</fileMode>
-            <directoryMode>0755</directoryMode>
-		</fileSet>
-		<fileSet>
-            <directory>src/main/assembly/conf</directory>
-            <includes>
-                <include>dubbo.properties</include>
-                <include>log4j.*</include>
-            </includes>
-			<outputDirectory>conf</outputDirectory>
-			<fileMode>0644</fileMode>
-            <directoryMode>0755</directoryMode>
-		</fileSet>
-	</fileSets>
-	<dependencySets>
-		<dependencySet>
-			<outputDirectory>lib</outputDirectory>
-		</dependencySet>
-	</dependencySets>
+<?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.
+-->
+
+<assembly>
+	<id>assembly</id>
+	<formats>
+		<format>tar.gz</format>
+	</formats>
+	<includeBaseDirectory>true</includeBaseDirectory>
+	<fileSets>
+		<fileSet>
+			<directory>${project.build.directory}/dubbo/META-INF/assembly/bin</directory>
+			<outputDirectory>bin</outputDirectory>
+			<fileMode>0755</fileMode>
+            <directoryMode>0755</directoryMode>
+		</fileSet>
+		<fileSet>
+            <directory>src/main/assembly/conf</directory>
+            <includes>
+                <include>dubbo.properties</include>
+                <include>log4j.*</include>
+            </includes>
+			<outputDirectory>conf</outputDirectory>
+			<fileMode>0644</fileMode>
+            <directoryMode>0755</directoryMode>
+		</fileSet>
+	</fileSets>
+	<dependencySets>
+		<dependencySet>
+			<outputDirectory>lib</outputDirectory>
+		</dependencySet>
+	</dependencySets>
 </assembly>
\ No newline at end of file
diff --git a/general/jsonrpc/java-server/src/main/assembly/conf/dubbo.properties b/general/jsonrpc/java-server/src/main/assembly/conf/dubbo.properties
index 2f19930..627a3d9 100644
--- a/general/jsonrpc/java-server/src/main/assembly/conf/dubbo.properties
+++ b/general/jsonrpc/java-server/src/main/assembly/conf/dubbo.properties
@@ -1,14 +1,14 @@
-### dubbo注册中心配置 ##
-dubbo.container = log4j,spring
-dubbo.application.name = user-info-server
-dubbo.application.environment = product
-dubbo.application.owner = AlexStocks
-dubbo.registry.address = 127.0.0.1:2181
-dubbo.registry.protocol = zookeeper
-dubbo.consumer.timeout = 10000
-dubbo.provider.timeout = 10000
-dubbo.protocol.name = jsonrpc
-dubbo.protocol.port = 10000
-
-dubbo.log4j.file = logs/dubbo.log
-dubbo.log4j.level = INFO
+### dubbo注册中心配置 ##
+dubbo.container = log4j,spring
+dubbo.application.name = user-info-server
+dubbo.application.environment = product
+dubbo.application.owner = AlexStocks
+dubbo.registry.address = 127.0.0.1:2181
+dubbo.registry.protocol = zookeeper
+dubbo.consumer.timeout = 10000
+dubbo.provider.timeout = 10000
+dubbo.protocol.name = jsonrpc
+dubbo.protocol.port = 10000
+
+dubbo.log4j.file = logs/dubbo.log
+dubbo.log4j.level = INFO
diff --git a/general/jsonrpc/java-server/src/main/assembly/conf/log4j.properties b/general/jsonrpc/java-server/src/main/assembly/conf/log4j.properties
index 806e33d..13c8049 100644
--- a/general/jsonrpc/java-server/src/main/assembly/conf/log4j.properties
+++ b/general/jsonrpc/java-server/src/main/assembly/conf/log4j.properties
@@ -1,20 +1,20 @@
-## Logger configure file for myproject
-log.dir=logs/
-datestamp=yyyy-MM-dd/HH:mm:ss.SSS
-
-log4j.rootLogger=DEBUG, file, console
-
-log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
-log4j.appender.file.threshold=DEBUG
-log4j.appender.file.File=${log.dir}/log4j.log
-log4j.appender.file.DatePattern=-yyyyMMddHH
-log4j.appender.file.ImmediateFlush=true
-log4j.appender.file.Append=true
-log4j.appender.file.layout=org.apache.log4j.PatternLayout
-log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
-log4j.appender.console=org.apache.log4j.ConsoleAppender
-log4j.appender.console.Threshold=DEBUG
-log4j.appender.console.layout=org.apache.log4j.PatternLayout
-log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
-
+## Logger configure file for myproject
+log.dir=logs/
+datestamp=yyyy-MM-dd/HH:mm:ss.SSS
+
+log4j.rootLogger=DEBUG, file, console
+
+log4j.appender.file=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.file.threshold=DEBUG
+log4j.appender.file.File=${log.dir}/log4j.log
+log4j.appender.file.DatePattern=-yyyyMMddHH
+log4j.appender.file.ImmediateFlush=true
+log4j.appender.file.Append=true
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
+log4j.appender.console=org.apache.log4j.ConsoleAppender
+log4j.appender.console.Threshold=DEBUG
+log4j.appender.console.layout=org.apache.log4j.PatternLayout
+log4j.appender.console.layout.ConversionPattern=%d{${datestamp}} %5p: %l - %m%n
+
diff --git a/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Gender.java b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Gender.java
index e74a5d4..e606be7 100644
--- a/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Gender.java
+++ b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/Gender.java
@@ -1,23 +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;
-
-public enum  Gender {
-    MAN,
-    WOMAN
-}
+/*
+ * 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 {
+    MAN,
+    WOMAN
+}
diff --git a/general/jsonrpc/java-server/src/main/java/com/ikurento/user/User.java b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/User.java
index 7af1c9c..a6e76cf 100644
--- a/general/jsonrpc/java-server/src/main/java/com/ikurento/user/User.java
+++ b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/User.java
@@ -1,95 +1,95 @@
-/*
- * 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.util.Date;
-import java.io.Serializable;
-
-public class User implements Serializable  {
-
-    private String id;
-
-    private String name;
-
-    private int age;
-
-    private Date time = new Date();
-
-    private Gender sex = Gender.MAN;
-
-    public User() {
-    }
-
-    public User(String id, String name, int age) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-    }
-
-    public User(String id, String name, int age, Date time, Gender sex) {
-        this.id = id;
-        this.name = name;
-        this.age = age;
-        this.time = time;
-        this.sex = sex;
-    }
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getName() {
-        return name;
-    }
-
-    public void setName(String name) {
-        this.name = name;
-    }
-
-    public int getAge() {
-        return age;
-    }
-
-    public void setAge(int age) {
-        this.age = age;
-    }
-
-    public Date getTime() {
-        return time;
-    }
-
-    public void setTime(Date time) {
-        this.time = time;
-    }
-
-    public Gender getSex() {
-        return sex;
-    }
-
-    public void setSex(Gender sex) {
-        this.sex = sex;
-    }
-
-    public String toString() {
-        return "User{id:" + id + ", name:" + name + ", age:" + age + ", time:" + time + ", gender:" + sex + "}";
-    }
-}
+/*
+ * 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.util.Date;
+import java.io.Serializable;
+
+public class User implements Serializable  {
+
+    private String id;
+
+    private String name;
+
+    private int age;
+
+    private Date time = new Date();
+
+    private Gender sex = Gender.MAN;
+
+    public User() {
+    }
+
+    public User(String id, String name, int age) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+    }
+
+    public User(String id, String name, int age, Date time, Gender sex) {
+        this.id = id;
+        this.name = name;
+        this.age = age;
+        this.time = time;
+        this.sex = sex;
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public int getAge() {
+        return age;
+    }
+
+    public void setAge(int age) {
+        this.age = age;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+    public Gender getSex() {
+        return sex;
+    }
+
+    public void setSex(Gender sex) {
+        this.sex = sex;
+    }
+
+    public String toString() {
+        return "User{id:" + id + ", name:" + name + ", age:" + age + ", time:" + time + ", gender:" + sex + "}";
+    }
+}
diff --git a/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProvider.java b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 96e1003..2958a1a 100644
--- a/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProvider.java
@@ -1,46 +1,46 @@
-/*
- * 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.util.List;
-import java.util.Map;
-
-public interface UserProvider {
-
-    boolean isLimit(Gender gender, String name);
-
-    User GetUser(String userId); // the first alpha is Upper case to compatible with golang.
-
-    List<User> GetUsers(List<String> userIdList);
-
-    User GetUser0(String userId, String name);
-
-    void GetUser3();
-
-    Map<String, User> GetUserMap(List<String> userIdList);
-
-    User getUser(int usercode);
-
-    User queryUser(User user);
-
-    Map<String, User> queryAll();
-
-    int Calc(int a,int b);
-
-    Response<Integer> Sum(int a, int b);
-}
+/*
+ * 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.util.List;
+import java.util.Map;
+
+public interface UserProvider {
+
+    boolean isLimit(Gender gender, String name);
+
+    User GetUser(String userId); // the first alpha is Upper case to compatible with golang.
+
+    List<User> GetUsers(List<String> userIdList);
+
+    User GetUser0(String userId, String name);
+
+    void GetUser3();
+
+    Map<String, User> GetUserMap(List<String> userIdList);
+
+    User getUser(int usercode);
+
+    User queryUser(User user);
+
+    Map<String, User> queryAll();
+
+    int Calc(int a,int b);
+
+    Response<Integer> Sum(int a, int b);
+}
diff --git a/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
index 3f62086..299feb7 100644
--- a/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
+++ b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
@@ -1,134 +1,134 @@
-/*
- * 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 org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.*;
-
-public class UserProviderAnotherImpl implements UserProvider {
-    // private static final Logger logger = LoggerFactory.getLogger(getClass()); // Only output to dubbo's log(logs/server.log)
-    private static final Logger logger = LoggerFactory.getLogger("userLogger"); // Output to user-server.log
-
-    private Map<String, User> userMap = new HashMap<String, User>();
-
-    public UserProviderAnotherImpl() {
-        // userMap.put("001", new User("001", "other-zhangsan", 18, new Date(1998-1900, 1, 2, 3, 4, 5), Gender.MAN));
-        userMap.put("001", new User("001", "other-zhangsan", 18, new Date(0x12345678), Gender.MAN));
-        userMap.put("002", new User("002", "other-lisi", 20, new Date(1996-1900, 1, 2, 3, 4, 5), Gender.MAN));
-        userMap.put("003", new User("003", "other-lily", 23, new Date(1993-1900, 1, 2, 3, 4, 5), Gender.WOMAN));
-        userMap.put("004", new User("004", "other-lisa", 32, new Date(1985-1900, 1, 2, 3, 4, 5), Gender.WOMAN));
-    }
-
-    public boolean isLimit(Gender gender, String name) {
-        logger.info(String.format("input gender=%sand name=%s", gender, name));
-        return Gender.MAN == gender;
-    }
-
-    public User GetUser(String userId) {
-        logger.info("input userId = " + userId);
-        return new User(userId, "Joe", 48);
-    }
-
-    public User GetUser0(String userId, String name) {
-        return new User(userId, name, 48);
-    }
-
-    public void GetUser3() {
-    }
-
-    public List<User> GetUsers(ArrayList<String> userIdList) {
-        Iterator it = userIdList.iterator();
-        List<User> userList = new ArrayList<User>();
-        logger.warn("@userIdList size:" + userIdList.size());
-
-        while(it.hasNext()) {
-            String id = (String)(it.next());
-            logger.info("GetUsers(@uid:" + id + ")");
-            if (userMap.containsKey(id)) {
-                userList.add(userMap.get(id));
-                logger.info("id:" + id + ", user:" + userMap.get(id));
-            }
-        }
-
-        return userList;
-    }
-
-    public Map<String, User> GetUserMap(List<String> userIdList) {
-        Iterator it = userIdList.iterator();
... 13604 lines suppressed ...


Mime
View raw message