Merge pull request #1 from zouyx/feature/fixAutoTest

Fix: Auto test problems
diff --git a/.integration/testing/go-client/assembly/bin/load.sh b/.integration/testing/go-client/assembly/bin/load.sh
new file mode 100755
index 0000000..6d41032
--- /dev/null
+++ b/.integration/testing/go-client/assembly/bin/load.sh
@@ -0,0 +1,205 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+APP_NAME="APPLICATION_NAME"
+APP_ARGS=""
+SLEEP_INTERVAL=5
+MAX_LIFETIME=4000
+
+PROJECT_HOME=""
+OS_NAME=`uname`
+if [[ ${OS_NAME} != "Windows" ]]; then
+    PROJECT_HOME=`pwd`
+    PROJECT_HOME=${PROJECT_HOME}"/"
+else
+    APP_NAME="APPLICATION_NAME.exe"
+fi
+
+export CONF_CONSUMER_FILE_PATH=${PROJECT_HOME}"TARGET_CONF_FILE"
+export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
+# export GOTRACEBACK=system
+# export GODEBUG=gctrace=1
+
+usage() {
+    echo "Usage: $0 start [conf suffix]"
+    echo "       $0 stop"
+    echo "       $0 term"
+    echo "       $0 restart"
+    echo "       $0 list"
+    echo "       $0 monitor"
+    echo "       $0 crontab"
+    exit
+}
+
+start() {
+    arg=$1
+    if [ "$arg" = "" ];then
+        echo "No registry type! Default client.yml!"
+    else
+        export CONF_CONSUMER_FILE_PATH=${CONF_CONSUMER_FILE_PATH//\.yml/\_$arg\.yml}
+    fi
+    if [ ! -f "${CONF_CONSUMER_FILE_PATH}" ];then
+        echo $CONF_CONSUMER_FILE_PATH" is not existing!"
+        return
+    fi
+    APP_LOG_PATH=${PROJECT_HOME}"logs/"
+    mkdir -p ${APP_LOG_PATH}
+    APP_BIN=${PROJECT_HOME}sbin/${APP_NAME}
+    chmod u+x ${APP_BIN}
+    # CMD="nohup ${APP_BIN} ${APP_ARGS} >>${APP_NAME}.nohup.out 2>&1 &"
+    CMD="${APP_BIN}"
+    eval ${CMD}
+    R=$?
+    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
+    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
+    fi
+    CUR=`date +%FT%T`
+    if [ "${PID}" != "" ]; then
+        for p in ${PID}
+        do
+            echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
+        done
+    fi
+    return $R
+}
+
+stop() {
+    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
+    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
+    fi
+    if [ "${PID}" != "" ];
+    then
+        for ps in ${PID}
+        do
+            echo "kill -SIGINT ${APP_NAME} ( pid =" ${ps} ")"
+            kill -2 ${ps}
+        done
+    fi
+}
+
+
+term() {
+    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
+    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
+    fi
+    if [ "${PID}" != "" ];
+    then
+        for ps in ${PID}
+        do
+            echo "kill -9 ${APP_NAME} ( pid =" ${ps} ")"
+            kill -9 ${ps}
+        done
+    fi
+}
+
+list() {
+    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
+    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
+    fi
+
+    if [ "${PID}" != "" ]; then
+        echo "list ${APP_NAME}"
+
+        if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
+            echo "index: user, pid, start, duration"
+        else
+            echo "index: PID, WINPID, UID, STIME, COMMAND"
+        fi
+        idx=0
+        for ps in ${PID}
+        do
+            echo "${idx}: ${ps}"
+            ((idx ++))
+        done
+    fi
+}
+
+monitor() {
+    idx=0
+    while true; do
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
+        if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+            PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
+        fi
+        if [[ "${PID}" == "" ]]; then
+            start
+            idx=0
+        fi
+
+        ((LIFE=idx*${SLEEP_INTERVAL}))
+        echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
+        ((idx ++))
+        sleep ${SLEEP_INTERVAL}
+    done
+}
+
+crontab() {
+    idx=0
+    while true; do
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
+        if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+            PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
+        fi
+        if [[ "${PID}" == "" ]]; then
+            start
+            idx=0
+        fi
+
+        ((LIFE=idx*${SLEEP_INTERVAL}))
+        echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state for " $LIFE " seconds."
+        ((idx ++))
+        sleep ${SLEEP_INTERVAL}
+        if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
+            kill -9 ${PID}
+        fi
+    done
+}
+
+opt=$1
+case C"$opt" in
+    Cstart)
+        start $2
+        ;;
+    Cstop)
+        stop
+        ;;
+    Cterm)
+        term
+        ;;
+    Crestart)
+        term
+        start $2
+        ;;
+    Clist)
+        list
+        ;;
+    Cmonitor)
+        monitor
+        ;;
+    Ccrontab)
+        crontab
+        ;;
+    C*)
+        usage
+        ;;
+esac
+
diff --git a/.integration/testing/go-client/assembly/common/app.properties b/.integration/testing/go-client/assembly/common/app.properties
new file mode 100755
index 0000000..f77f8bd
--- /dev/null
+++ b/.integration/testing/go-client/assembly/common/app.properties
@@ -0,0 +1,23 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+TARGET_EXEC_NAME="user_info_client"
+# BUILD_PACKAGE="dubbogo-examples/user-info/client/app"
+BUILD_PACKAGE="app"
+
+TARGET_CONF_FILE="conf/client.yml"
+TARGET_LOG_CONF_FILE="conf/log.yml"
diff --git a/.integration/testing/go-client/assembly/common/build.sh b/.integration/testing/go-client/assembly/common/build.sh
new file mode 100755
index 0000000..4e68306
--- /dev/null
+++ b/.integration/testing/go-client/assembly/common/build.sh
@@ -0,0 +1,79 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+rm -rf target/
+
+PROJECT_HOME=`pwd`
+TARGET_FOLDER=${PROJECT_HOME}/target/${GOOS}
+
+TARGET_SBIN_NAME=${TARGET_EXEC_NAME}
+version=`cat app/version.go | grep Version | grep -v "Apache" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}'`
+if [[ ${GOOS} == "windows" ]]; then
+    TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
+fi
+TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
+if [[ $PROFILE = "test" ]]; then
+    # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
+    # GFLAGS=-gcflags "-N -l" -race -v
+    # GFLAGS="-gcflags \"-N -l\" -v"
+    cd ${BUILD_PACKAGE} && GO111MODULE=on go build -gcflags "-N -l" -i -o ${TARGET_NAME} && cd -
+else
+    # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
+    # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
+    # -w基本没啥损失。-s的损失就有点大了。
+    cd ${BUILD_PACKAGE} && GO111MODULE=on go build -ldflags "-w" -i -o ${TARGET_NAME} && cd -
+fi
+
+TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
+
+mkdir -p ${TARGET_FOLDER}/${TAR_NAME}
+
+SBIN_DIR=${TARGET_FOLDER}/${TAR_NAME}/sbin
+BIN_DIR=${TARGET_FOLDER}/${TAR_NAME}
+CONF_DIR=${TARGET_FOLDER}/${TAR_NAME}/conf
+
+mkdir -p ${SBIN_DIR}
+mkdir -p ${CONF_DIR}
+
+mv ${TARGET_NAME} ${SBIN_DIR}
+cp -r assembly/bin ${BIN_DIR}
+# modify APPLICATION_NAME
+# OS=`uname`
+# if [[ $OS=="Darwin" ]]; then
+if [ "$(uname)" == "Darwin" ]; then
+    sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
+else
+    sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
+fi
+# modify TARGET_CONF_FILE
+if [ "$(uname)" == "Darwin" ]; then
+    sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
+else
+    sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
+fi
+# modify TARGET_LOG_CONF_FILE
+if [ "$(uname)" == "Darwin" ]; then
+    sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
+else
+    sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
+fi
+
+cp -r profiles/${PROFILE}/* ${CONF_DIR}
+
+cd ${TARGET_FOLDER}
+
+tar czf ${TAR_NAME}.tar.gz ${TAR_NAME}/*
diff --git a/.integration/testing/go-client/assembly/linux/dev.sh b/.integration/testing/go-client/assembly/linux/dev.sh
new file mode 100755
index 0000000..d830ac9
--- /dev/null
+++ b/.integration/testing/go-client/assembly/linux/dev.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=linux
+export GOARCH=amd64
+
+PROFILE=dev
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-client/assembly/linux/release.sh b/.integration/testing/go-client/assembly/linux/release.sh
new file mode 100755
index 0000000..10eb3d7
--- /dev/null
+++ b/.integration/testing/go-client/assembly/linux/release.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=linux
+export GOARCH=amd64
+
+export PROFILE="release"
+export PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+  . ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+  sh ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-client/assembly/linux/test.sh b/.integration/testing/go-client/assembly/linux/test.sh
new file mode 100755
index 0000000..78b650c
--- /dev/null
+++ b/.integration/testing/go-client/assembly/linux/test.sh
@@ -0,0 +1,35 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=linux
+export GOARCH=amd64
+
+export PROFILE="test"
+export PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+  . ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+  sh ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-client/assembly/mac/dev.sh b/.integration/testing/go-client/assembly/mac/dev.sh
new file mode 100755
index 0000000..c828476
--- /dev/null
+++ b/.integration/testing/go-client/assembly/mac/dev.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=darwin
+export GOARCH=amd64
+
+export PROFILE="dev"
+
+export PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+	. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+	sh ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-client/assembly/mac/release.sh b/.integration/testing/go-client/assembly/mac/release.sh
new file mode 100755
index 0000000..91c2dfe
--- /dev/null
+++ b/.integration/testing/go-client/assembly/mac/release.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=darwin
+export GOARCH=amd64
+
+export PROFILE="release"
+export PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+  . ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+  sh ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-client/assembly/mac/test.sh b/.integration/testing/go-client/assembly/mac/test.sh
new file mode 100755
index 0000000..a7853f5
--- /dev/null
+++ b/.integration/testing/go-client/assembly/mac/test.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+set -e
+
+export GOOS=darwin
+export GOARCH=amd64
+
+export PROFILE="test"
+export PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+  . ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+  sh ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-client/assembly/windows/dev.sh b/.integration/testing/go-client/assembly/windows/dev.sh
new file mode 100755
index 0000000..6487b30
--- /dev/null
+++ b/.integration/testing/go-client/assembly/windows/dev.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=windows
+export GOARCH=amd64
+
+export PROFILE="dev"
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+  . ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+  sh ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-client/assembly/windows/release.sh b/.integration/testing/go-client/assembly/windows/release.sh
new file mode 100755
index 0000000..21af573
--- /dev/null
+++ b/.integration/testing/go-client/assembly/windows/release.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=windows
+export GOARCH=amd64
+
+export PROFILE="release"
+export PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+  . ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+  sh ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-client/assembly/windows/test.sh b/.integration/testing/go-client/assembly/windows/test.sh
new file mode 100755
index 0000000..2104da8
--- /dev/null
+++ b/.integration/testing/go-client/assembly/windows/test.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=windows
+export GOARCH=amd64
+
+export PROFILE="test"
+export PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+  . ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+  sh ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-server/assembly/bin/load.sh b/.integration/testing/go-server/assembly/bin/load.sh
new file mode 100755
index 0000000..90077c2
--- /dev/null
+++ b/.integration/testing/go-server/assembly/bin/load.sh
@@ -0,0 +1,151 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+APP_NAME="APPLICATION_NAME"
+APP_ARGS=""
+
+
+PROJECT_HOME=""
+OS_NAME=`uname`
+if [[ ${OS_NAME} != "Windows" ]]; then
+    PROJECT_HOME=`pwd`
+    PROJECT_HOME=${PROJECT_HOME}"/"
+fi
+
+export CONF_PROVIDER_FILE_PATH=${PROJECT_HOME}"TARGET_CONF_FILE"
+export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
+
+usage() {
+    echo "Usage: $0 start [conf suffix]"
+    echo "       $0 stop"
+    echo "       $0 term"
+    echo "       $0 restart"
+    echo "       $0 list"
+    echo "       $0 monitor"
+    echo "       $0 crontab"
+    exit
+}
+
+start() {
+    arg=$1
+    if [ "$arg" = "" ];then
+        echo "No registry type! Default server.yml!"
+    else
+        export CONF_PROVIDER_FILE_PATH=${CONF_PROVIDER_FILE_PATH//\.yml/\_$arg\.yml}
+    fi
+    if [ ! -f "${CONF_PROVIDER_FILE_PATH}" ];then
+        echo $CONF_PROVIDER_FILE_PATH" is not existing!"
+        return
+    fi
+    APP_LOG_PATH="${PROJECT_HOME}logs/"
+    mkdir -p ${APP_LOG_PATH}
+    APP_BIN=${PROJECT_HOME}sbin/${APP_NAME}
+    chmod u+x ${APP_BIN}
+    # CMD="nohup ${APP_BIN} ${APP_ARGS} >>${APP_NAME}.nohup.out 2>&1 &"
+    CMD="${APP_BIN}"
+    eval ${CMD}
+    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
+    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
+    fi
+    CUR=`date +%FT%T`
+    if [ "${PID}" != "" ]; then
+        for p in ${PID}
+        do
+            echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
+        done
+    fi
+}
+
+stop() {
+    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
+    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
+    fi
+    if [ "${PID}" != "" ];
+    then
+        for ps in ${PID}
+        do
+            echo "kill -SIGINT ${APP_NAME} ( pid =" ${ps} ")"
+            kill -2 ${ps}
+        done
+    fi
+}
+
+
+term() {
+    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
+    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
+    fi
+    if [ "${PID}" != "" ];
+    then
+        for ps in ${PID}
+        do
+            echo "kill -9 ${APP_NAME} ( pid =" ${ps} ")"
+            kill -9 ${ps}
+        done
+    fi
+}
+
+list() {
+    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
+    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
+        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
+    fi
+
+    if [ "${PID}" != "" ]; then
+        echo "list ${APP_NAME}"
+
+        if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
+            echo "index: user, pid, start, duration"
+    else
+        echo "index: PID, WINPID, UID, STIME, COMMAND"
+    fi
+        idx=0
+        for ps in ${PID}
+        do
+            echo "${idx}: ${ps}"
+            ((idx ++))
+        done
+    fi
+}
+
+opt=$1
+case C"$opt" in
+    Cstart)
+        start $2
+        ;;
+    Cstop)
+        stop
+        ;;
+    Cterm)
+        term
+        ;;
+    Crestart)
+        term
+        start $2
+        ;;
+    Clist)
+        list
+        ;;
+    C*)
+        usage
+        ;;
+esac
+
diff --git a/.integration/testing/go-server/assembly/common/app.properties b/.integration/testing/go-server/assembly/common/app.properties
new file mode 100755
index 0000000..1f0827e
--- /dev/null
+++ b/.integration/testing/go-server/assembly/common/app.properties
@@ -0,0 +1,23 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+TARGET_EXEC_NAME="user_info_server"
+# BUILD_PACKAGE="dubbogo-examples/user-info/server/app"
+BUILD_PACKAGE="app"
+
+TARGET_CONF_FILE="conf/server.yml"
+TARGET_LOG_CONF_FILE="conf/log.yml"
diff --git a/.integration/testing/go-server/assembly/common/build.sh b/.integration/testing/go-server/assembly/common/build.sh
new file mode 100755
index 0000000..c95c0bb
--- /dev/null
+++ b/.integration/testing/go-server/assembly/common/build.sh
@@ -0,0 +1,80 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+rm -rf target/
+
+PROJECT_HOME=`pwd`
+TARGET_FOLDER=${PROJECT_HOME}/target/${GOOS}
+
+TARGET_SBIN_NAME=${TARGET_EXEC_NAME}
+version=`cat app/version.go | grep Version | grep -v "Apache" | awk -F '=' '{print $2}' | awk -F '"' '{print $2}'`
+if [[ ${GOOS} == "windows" ]]; then
+    TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
+fi
+TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
+if [[ $PROFILE = "test" ]]; then
+    # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
+    # GFLAGS=-gcflags "-N -l" -race -v
+    # GFLAGS="-gcflags \"-N -l\" -v"
+    cd ${BUILD_PACKAGE} && GO111MODULE=on go build -gcflags "-N -l" -i -o ${TARGET_NAME} && cd -
+else
+    # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
+    # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
+    # -w基本没啥损失。-s的损失就有点大了。
+    cd ${BUILD_PACKAGE} && GO111MODULE=on go build -ldflags "-w" -i -o ${TARGET_NAME} && cd -
+fi
+
+TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
+
+mkdir -p ${TARGET_FOLDER}/${TAR_NAME}
+
+SBIN_DIR=${TARGET_FOLDER}/${TAR_NAME}/sbin
+BIN_DIR=${TARGET_FOLDER}/${TAR_NAME}
+CONF_DIR=${TARGET_FOLDER}/${TAR_NAME}/conf
+
+mkdir -p ${SBIN_DIR}
+mkdir -p ${CONF_DIR}
+
+mv ${TARGET_NAME} ${SBIN_DIR}
+cp -r assembly/bin ${BIN_DIR}
+# modify APPLICATION_NAME
+# OS=`uname`
+# if [[ $OS=="Darwin" ]]; then
+if [ "$(uname)" == "Darwin" ]; then
+    sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
+else
+    sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
+fi
+# modify TARGET_CONF_FILE
+if [ "$(uname)" == "Darwin" ]; then
+    sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
+else
+    sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
+fi
+# modify TARGET_LOG_CONF_FILE
+if [ "$(uname)" == "Darwin" ]; then
+    sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
+else
+    sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
+fi
+
+cp -r profiles/${PROFILE}/* ${CONF_DIR}
+
+cd ${TARGET_FOLDER}
+
+tar czf ${TAR_NAME}.tar.gz ${TAR_NAME}/*
+
diff --git a/.integration/testing/go-server/assembly/linux/dev.sh b/.integration/testing/go-server/assembly/linux/dev.sh
new file mode 100755
index 0000000..d830ac9
--- /dev/null
+++ b/.integration/testing/go-server/assembly/linux/dev.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=linux
+export GOARCH=amd64
+
+PROFILE=dev
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-server/assembly/linux/release.sh b/.integration/testing/go-server/assembly/linux/release.sh
new file mode 100755
index 0000000..9930380
--- /dev/null
+++ b/.integration/testing/go-server/assembly/linux/release.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=linux
+export GOARCH=amd64
+
+PROFILE=release
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-server/assembly/linux/test.sh b/.integration/testing/go-server/assembly/linux/test.sh
new file mode 100755
index 0000000..87144bb
--- /dev/null
+++ b/.integration/testing/go-server/assembly/linux/test.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=linux
+export GOARCH=amd64
+
+PROFILE=test
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-server/assembly/mac/dev.sh b/.integration/testing/go-server/assembly/mac/dev.sh
new file mode 100755
index 0000000..3a7659b
--- /dev/null
+++ b/.integration/testing/go-server/assembly/mac/dev.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=darwin
+export GOARCH=amd64
+
+PROFILE=dev
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-server/assembly/mac/release.sh b/.integration/testing/go-server/assembly/mac/release.sh
new file mode 100755
index 0000000..1c4bce4
--- /dev/null
+++ b/.integration/testing/go-server/assembly/mac/release.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=darwin
+export GOARCH=amd64
+
+PROFILE=release
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-server/assembly/mac/test.sh b/.integration/testing/go-server/assembly/mac/test.sh
new file mode 100755
index 0000000..69206e3
--- /dev/null
+++ b/.integration/testing/go-server/assembly/mac/test.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+set -e
+
+export GOOS=darwin
+export GOARCH=amd64
+
+PROFILE=test
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
+
diff --git a/.integration/testing/go-server/assembly/windows/dev.sh b/.integration/testing/go-server/assembly/windows/dev.sh
new file mode 100755
index 0000000..011fb41
--- /dev/null
+++ b/.integration/testing/go-server/assembly/windows/dev.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=windows
+export GOARCH=amd64
+
+PROFILE=dev
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-server/assembly/windows/release.sh b/.integration/testing/go-server/assembly/windows/release.sh
new file mode 100755
index 0000000..679a26a
--- /dev/null
+++ b/.integration/testing/go-server/assembly/windows/release.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=windows
+export GOARCH=amd64
+
+PROFILE=release
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.integration/testing/go-server/assembly/windows/test.sh b/.integration/testing/go-server/assembly/windows/test.sh
new file mode 100755
index 0000000..4a36de0
--- /dev/null
+++ b/.integration/testing/go-server/assembly/windows/test.sh
@@ -0,0 +1,36 @@
+#!/usr/bin/env bash
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+
+
+set -e
+
+export GOOS=windows
+export GOARCH=amd64
+
+PROFILE=test
+
+PROJECT_HOME=`pwd`
+
+if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
+. ${PROJECT_HOME}/assembly/common/app.properties
+fi
+
+
+if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
+. ${PROJECT_HOME}/assembly/common/build.sh
+fi
diff --git a/.travis.yml b/.travis.yml
index bbab1ed..29eb0b1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,3 +8,4 @@
 import:
   - helloworld/dubbo/.travis.yml
   - direct/dubbo/.travis.yml
+  - async/.travis.yml
diff --git a/async/.travis.yml b/async/.travis.yml
new file mode 100644
index 0000000..4d6e2ea
--- /dev/null
+++ b/async/.travis.yml
@@ -0,0 +1,16 @@
+stages:
+  - Test async
+jobs:
+  include:
+    - stage: Test async
+      script:
+        - 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"
+        - 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 @@
 	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 @@
 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 @@
 	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();
-        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 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() {

+    }

+

+    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 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/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 3e08095..ac6c229 100644
--- a/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/general/jsonrpc/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -1,111 +1,111 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.apache.log4j.Logger;
-// import org.apache.log4j.LoggerFactory;
-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 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 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 void GetUser3() {
-    }
-
-    public User getUser(int userCode) {
-        return new User(String.valueOf(userCode), "userCode get", 48);
-    }
-
-
-    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.apache.log4j.Logger;

+// import org.apache.log4j.LoggerFactory;

+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 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 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 void GetUser3() {

+    }

+

+    public User getUser(int userCode) {

+        return new User(String.valueOf(userCode), "userCode get", 48);

+    }

+

+

+    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/jsonrpc/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/general/jsonrpc/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index d3cf037..f9ebc08 100644
--- a/general/jsonrpc/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/general/jsonrpc/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 registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>
-	<dubbo:service registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="otherService" version="2.0"/>
-	<dubbo:service 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 registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>

+	<dubbo:service registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="otherService" version="2.0"/>

+	<dubbo:service 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/jsonrpc/java-server/src/main/resources/log4j.properties b/general/jsonrpc/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/general/jsonrpc/java-server/src/main/resources/log4j.properties
+++ b/general/jsonrpc/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/generic/go-client/profiles/dev/log.yml b/generic/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/generic/go-client/profiles/dev/log.yml
+++ b/generic/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/generic/go-client/profiles/release/log.yml b/generic/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/generic/go-client/profiles/release/log.yml
+++ b/generic/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/generic/go-client/profiles/test/log.yml b/generic/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/generic/go-client/profiles/test/log.yml
+++ b/generic/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/generic/java-client/src/main/resources/log4j.properties b/generic/java-client/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/generic/java-client/src/main/resources/log4j.properties
+++ b/generic/java-client/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/generic/java-server/src/main/assembly/assembly.xml b/generic/java-server/src/main/assembly/assembly.xml
index 7947c65..98a2e10 100644
--- a/generic/java-server/src/main/assembly/assembly.xml
+++ b/generic/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/generic/java-server/src/main/assembly/conf/dubbo.properties b/generic/java-server/src/main/assembly/conf/dubbo.properties
index 54f8a16..2826f31 100644
--- a/generic/java-server/src/main/assembly/conf/dubbo.properties
+++ b/generic/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/generic/java-server/src/main/assembly/conf/log4j.properties b/generic/java-server/src/main/assembly/conf/log4j.properties
index 806e33d..13c8049 100644
--- a/generic/java-server/src/main/assembly/conf/log4j.properties
+++ b/generic/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/generic/java-server/src/main/java/com/ikurento/user/Gender.java b/generic/java-server/src/main/java/com/ikurento/user/Gender.java
index e74a5d4..e606be7 100644
--- a/generic/java-server/src/main/java/com/ikurento/user/Gender.java
+++ b/generic/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/generic/java-server/src/main/java/com/ikurento/user/User.java b/generic/java-server/src/main/java/com/ikurento/user/User.java
index 7af1c9c..a6e76cf 100644
--- a/generic/java-server/src/main/java/com/ikurento/user/User.java
+++ b/generic/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/generic/java-server/src/main/java/com/ikurento/user/UserProvider.java b/generic/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 17dcc4f..6033587 100644
--- a/generic/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/generic/java-server/src/main/java/com/ikurento/user/UserProvider.java
@@ -1,48 +1,48 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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 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 queryUser(User user);

+

+    Map<String, User> queryAll();

+

+    int Calc(int a,int b);

+

+    Response<Integer> Sum(int a, int b);

+}

diff --git a/generic/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java b/generic/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
index ab66dca..05611fc 100644
--- a/generic/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
+++ b/generic/java-server/src/main/java/com/ikurento/user/UserProviderAnotherImpl.java
@@ -1,137 +1,137 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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 org.apache.log4j.Logger;
-// import org.apache.log4j.LoggerFactory;
-
-import java.util.*;
-
-public class UserProviderAnotherImpl implements UserProvider {
-    // private static final Logger logger = LoggerFactory.getLogger(getClass()); // 只输出到dubbo的log(logs/server.log)
-    private static final Logger logger = LoggerFactory.getLogger("userLogger"); // 输出到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 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 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 org.apache.log4j.Logger;

+// import org.apache.log4j.LoggerFactory;

+

+import java.util.*;

+

+public class UserProviderAnotherImpl implements UserProvider {

+    // private static final Logger logger = LoggerFactory.getLogger(getClass()); // 只输出到dubbo的log(logs/server.log)

+    private static final Logger logger = LoggerFactory.getLogger("userLogger"); // 输出到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 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 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/generic/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/generic/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 78fce55..1984d16 100644
--- a/generic/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/generic/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -1,115 +1,115 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.apache.log4j.Logger;
-// import org.apache.log4j.LoggerFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class UserProviderImpl implements UserProvider {
-    // private static final Logger logger = LoggerFactory.getLogger(getClass()); // 只输出到dubbo的log(logs/server.log)
-    private static final Logger LOG = LoggerFactory.getLogger("UserLogger"); // 输出到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() {
-    }
-
-    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 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.apache.log4j.Logger;

+// import org.apache.log4j.LoggerFactory;

+import org.slf4j.Logger;

+import org.slf4j.LoggerFactory;

+

+public class UserProviderImpl implements UserProvider {

+    // private static final Logger logger = LoggerFactory.getLogger(getClass()); // 只输出到dubbo的log(logs/server.log)

+    private static final Logger LOG = LoggerFactory.getLogger("UserLogger"); // 输出到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() {

+    }

+

+    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 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/generic/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/generic/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 73cd146..b3c3bbf 100644
--- a/generic/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/generic/java-server/src/main/resources/META-INF/spring/dubbo.provider.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: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/generic/java-server/src/main/resources/log4j.properties b/generic/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/generic/java-server/src/main/resources/log4j.properties
+++ b/generic/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/helloworld/dubbo/.travis.yml b/helloworld/dubbo/.travis.yml
index 5dbb7ed..dc6f018 100644
--- a/helloworld/dubbo/.travis.yml
+++ b/helloworld/dubbo/.travis.yml
@@ -3,22 +3,14 @@
 jobs:
   include:
     - stage: Test hello world
-      name: "prepare env"
       script:
         - PROJECT_HOME=$(pwd)
+        - CASE_HOME=/helloworld/dubbo
+        - GO_SERVER=/go-server
+        - GO_CLIENT=/go-client
         - docker run -d --network host zookeeper
         - echo "zookeeper listen in [:]2181"
-        - cd ${PROJECT_HOME}/golang/helloworld/dubbo/go-server/
-#        - rm -rf assembly
-#        - wget "https://github.com/dubbogo/resources/raw/master/tools/integration/testing/go-server/assembly.tar"
-#        - tar -xvf assembly.tar
-        - assembly/linux/dev.sh
-        - cd target/*/*/
-        - nohup bin/load.sh start > a.out&
-        - cd ${PROJECT_HOME}/golang/helloworld/dubbo/go-client/
-#        - rm -rf assembly
-#        - wget "https://github.com/dubbogo/resources/raw/master/tools/integration/testing/go-client/assembly.tar"
-#        - tar -xvf assembly.tar
-        - assembly/linux/dev.sh
-        - cd target/*/*/
-        - 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/helloworld/dubbo/go-client/app/client.go b/helloworld/dubbo/go-client/app/client.go
index 6de2915..a500599 100644
--- a/helloworld/dubbo/go-client/app/client.go
+++ b/helloworld/dubbo/go-client/app/client.go
@@ -59,6 +59,7 @@
 	if err != nil {
 		gxlog.CError("error: %v\n", err)
 		os.Exit(1)
+		return
 	}
 	gxlog.CInfo("response result: %v\n", user)
 }
\ No newline at end of file
diff --git a/helloworld/dubbo/go-client/integration_testing.sh b/helloworld/dubbo/go-client/integration_testing.sh
new file mode 100755
index 0000000..49f7b49
--- /dev/null
+++ b/helloworld/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/helloworld/dubbo/go-client/profiles/dev/log.yml b/helloworld/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/helloworld/dubbo/go-client/profiles/dev/log.yml
+++ b/helloworld/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/helloworld/dubbo/go-client/profiles/release/log.yml b/helloworld/dubbo/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/helloworld/dubbo/go-client/profiles/release/log.yml
+++ b/helloworld/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/helloworld/dubbo/go-client/profiles/test/log.yml b/helloworld/dubbo/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/helloworld/dubbo/go-client/profiles/test/log.yml
+++ b/helloworld/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/helloworld/dubbo/go-server/integration_testing.sh b/helloworld/dubbo/go-server/integration_testing.sh
new file mode 100755
index 0000000..49f7b49
--- /dev/null
+++ b/helloworld/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/helloworld/dubbo/go-server/profiles/dev/log.yml b/helloworld/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/helloworld/dubbo/go-server/profiles/dev/log.yml
+++ b/helloworld/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/helloworld/dubbo/go-server/profiles/release/log.yml b/helloworld/dubbo/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/helloworld/dubbo/go-server/profiles/release/log.yml
+++ b/helloworld/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/helloworld/dubbo/go-server/profiles/test/log.yml b/helloworld/dubbo/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/helloworld/dubbo/go-server/profiles/test/log.yml
+++ b/helloworld/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/helloworld/dubbo/java-client/pom.xml b/helloworld/dubbo/java-client/pom.xml
index 445b924..4065414 100644
--- a/helloworld/dubbo/java-client/pom.xml
+++ b/helloworld/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/helloworld/dubbo/java-client/src/main/assembly/assembly.xml b/helloworld/dubbo/java-client/src/main/assembly/assembly.xml
index 84f5499..bc00a06 100644
--- a/helloworld/dubbo/java-client/src/main/assembly/assembly.xml
+++ b/helloworld/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/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java b/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
index ecefa6e..51e3d67 100644
--- a/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,60 +1,60 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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) {
-        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) {

+        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/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/User.java b/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/User.java
index 1526244..666e904 100644
--- a/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/User.java
+++ b/helloworld/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/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java b/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
index f42452d..67a836a 100644
--- a/helloworld/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/helloworld/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/helloworld/dubbo/java-client/src/main/resources/META-INF/spring/service.xml b/helloworld/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
index e4f5fda..529f63e 100644
--- a/helloworld/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/helloworld/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/helloworld/dubbo/java-client/src/main/resources/dubbo.properties b/helloworld/dubbo/java-client/src/main/resources/dubbo.properties
index 701dd46..e561efc 100644
--- a/helloworld/dubbo/java-client/src/main/resources/dubbo.properties
+++ b/helloworld/dubbo/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 = 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/helloworld/dubbo/java-server/src/main/assembly/assembly.xml b/helloworld/dubbo/java-server/src/main/assembly/assembly.xml
index c0aeffd..5b4075c 100644
--- a/helloworld/dubbo/java-server/src/main/assembly/assembly.xml
+++ b/helloworld/dubbo/java-server/src/main/assembly/assembly.xml
@@ -1,44 +1,44 @@
-<?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>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/resources</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/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/User.java b/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/User.java
index ac046bd..fd2cafb 100644
--- a/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/User.java
+++ b/helloworld/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/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java b/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 831588d..b1eeab8 100644
--- a/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/helloworld/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/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 10dbbc3..0d66c43 100644
--- a/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/helloworld/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -1,30 +1,30 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-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;

+

+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/helloworld/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/helloworld/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 7351324..3fca067 100644
--- a/helloworld/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/helloworld/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
@@ -1,33 +1,33 @@
-<?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协议在20880端口暴露服务 -->
-    <!-- dubbo:protocol host="127.0.0.1" / -->
-	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" port="20010" />
-	<!-- 声明需要暴露的服务接口 -->
-	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>
-
-	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />
-
-</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协议在20880端口暴露服务 -->

+    <!-- dubbo:protocol host="127.0.0.1" / -->

+	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" port="20010" />

+	<!-- 声明需要暴露的服务接口 -->

+	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>

+

+	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />

+

+</beans>

diff --git a/helloworld/dubbo/java-server/src/main/resources/dubbo.properties b/helloworld/dubbo/java-server/src/main/resources/dubbo.properties
index 54f8a16..2826f31 100644
--- a/helloworld/dubbo/java-server/src/main/resources/dubbo.properties
+++ b/helloworld/dubbo/java-server/src/main/resources/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/helloworld/dubbo/java-server/src/main/resources/log4j.properties b/helloworld/dubbo/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/helloworld/dubbo/java-server/src/main/resources/log4j.properties
+++ b/helloworld/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/metric/dubbo/go-client/profiles/dev/log.yml b/metric/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/metric/dubbo/go-client/profiles/dev/log.yml
+++ b/metric/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/metric/dubbo/go-client/profiles/release/log.yml b/metric/dubbo/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/metric/dubbo/go-client/profiles/release/log.yml
+++ b/metric/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/metric/dubbo/go-client/profiles/test/log.yml b/metric/dubbo/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/metric/dubbo/go-client/profiles/test/log.yml
+++ b/metric/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/metric/dubbo/go-server/profiles/dev/log.yml b/metric/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/metric/dubbo/go-server/profiles/dev/log.yml
+++ b/metric/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/metric/dubbo/go-server/profiles/release/log.yml b/metric/dubbo/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/metric/dubbo/go-server/profiles/release/log.yml
+++ b/metric/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/metric/dubbo/go-server/profiles/test/log.yml b/metric/dubbo/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/metric/dubbo/go-server/profiles/test/log.yml
+++ b/metric/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/multi_registry/dubbo/go-client/profiles/dev/log.yml b/multi_registry/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/multi_registry/dubbo/go-client/profiles/dev/log.yml
+++ b/multi_registry/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/multi_registry/dubbo/go-server/profiles/dev/log.yml b/multi_registry/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/multi_registry/dubbo/go-server/profiles/dev/log.yml
+++ b/multi_registry/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/multi_registry/dubbo/java-client/pom.xml b/multi_registry/dubbo/java-client/pom.xml
index 445b924..4065414 100644
--- a/multi_registry/dubbo/java-client/pom.xml
+++ b/multi_registry/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/multi_registry/dubbo/java-client/src/main/assembly/assembly.xml b/multi_registry/dubbo/java-client/src/main/assembly/assembly.xml
index 84f5499..bc00a06 100644
--- a/multi_registry/dubbo/java-client/src/main/assembly/assembly.xml
+++ b/multi_registry/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/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java b/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
index ecefa6e..51e3d67 100644
--- a/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,60 +1,60 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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) {
-        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) {

+        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/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/User.java b/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/User.java
index 1526244..666e904 100644
--- a/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/User.java
+++ b/multi_registry/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/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java b/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
index f42452d..67a836a 100644
--- a/multi_registry/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/multi_registry/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/multi_registry/dubbo/java-client/src/main/resources/META-INF/spring/service.xml b/multi_registry/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
index e4f5fda..529f63e 100644
--- a/multi_registry/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/multi_registry/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/multi_registry/dubbo/java-client/src/main/resources/dubbo.properties b/multi_registry/dubbo/java-client/src/main/resources/dubbo.properties
index 701dd46..e561efc 100644
--- a/multi_registry/dubbo/java-client/src/main/resources/dubbo.properties
+++ b/multi_registry/dubbo/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 = 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/multi_registry/dubbo/java-server/src/main/assembly/assembly.xml b/multi_registry/dubbo/java-server/src/main/assembly/assembly.xml
index c0aeffd..5b4075c 100644
--- a/multi_registry/dubbo/java-server/src/main/assembly/assembly.xml
+++ b/multi_registry/dubbo/java-server/src/main/assembly/assembly.xml
@@ -1,44 +1,44 @@
-<?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>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/resources</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/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/User.java b/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/User.java
index ac046bd..fd2cafb 100644
--- a/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/User.java
+++ b/multi_registry/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/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java b/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 831588d..b1eeab8 100644
--- a/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/multi_registry/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/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 10dbbc3..0d66c43 100644
--- a/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/multi_registry/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -1,30 +1,30 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-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;

+

+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/multi_registry/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/multi_registry/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 7351324..3fca067 100644
--- a/multi_registry/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/multi_registry/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
@@ -1,33 +1,33 @@
-<?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协议在20880端口暴露服务 -->
-    <!-- dubbo:protocol host="127.0.0.1" / -->
-	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" port="20010" />
-	<!-- 声明需要暴露的服务接口 -->
-	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>
-
-	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />
-
-</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协议在20880端口暴露服务 -->

+    <!-- dubbo:protocol host="127.0.0.1" / -->

+	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" port="20010" />

+	<!-- 声明需要暴露的服务接口 -->

+	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>

+

+	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />

+

+</beans>

diff --git a/multi_registry/dubbo/java-server/src/main/resources/dubbo.properties b/multi_registry/dubbo/java-server/src/main/resources/dubbo.properties
index 54f8a16..2826f31 100644
--- a/multi_registry/dubbo/java-server/src/main/resources/dubbo.properties
+++ b/multi_registry/dubbo/java-server/src/main/resources/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/multi_registry/dubbo/java-server/src/main/resources/log4j.properties b/multi_registry/dubbo/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/multi_registry/dubbo/java-server/src/main/resources/log4j.properties
+++ b/multi_registry/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/registry/kubernetes/README.md b/registry/kubernetes/README.md
index b322b42..954187d 100644
--- a/registry/kubernetes/README.md
+++ b/registry/kubernetes/README.md
@@ -1,29 +1,29 @@
-## kubernetes 
-
-```bash 
-
-# create service-account
-kubectl create -f ./registry/kubernetes/sa.yaml
-
-# create role 
-kubectl create -f ./registry/kubernetes/role.yaml
-
-# bind role and service-account
-kubectl create -f ./registry/kubernetes/role-binding.yaml
-
-# create server
-kubectl create -f ./registry/kubernetes/server.yaml
-
-# create client
-kubectl create -f ./registry/kubernetes/client.yaml
-
-# read the client log
-kubectl logs -f client
-
-## uninstall 
-kubectl delete -f ./registry/kubernetes/sa.yaml
-kubectl delete -f ./registry/kubernetes/role.yaml
-kubectl delete -f ./registry/kubernetes/role-binding.yaml
-kubectl delete -f ./registry/kubernetes/server.yaml
-kubectl delete -f ./registry/kubernetes/client.yaml
+## kubernetes 

+

+```bash 

+

+# create service-account

+kubectl create -f ./registry/kubernetes/sa.yaml

+

+# create role 

+kubectl create -f ./registry/kubernetes/role.yaml

+

+# bind role and service-account

+kubectl create -f ./registry/kubernetes/role-binding.yaml

+

+# create server

+kubectl create -f ./registry/kubernetes/server.yaml

+

+# create client

+kubectl create -f ./registry/kubernetes/client.yaml

+

+# read the client log

+kubectl logs -f client

+

+## uninstall 

+kubectl delete -f ./registry/kubernetes/sa.yaml

+kubectl delete -f ./registry/kubernetes/role.yaml

+kubectl delete -f ./registry/kubernetes/role-binding.yaml

+kubectl delete -f ./registry/kubernetes/server.yaml

+kubectl delete -f ./registry/kubernetes/client.yaml

 ```
\ No newline at end of file
diff --git a/registry/nacos/README.md b/registry/nacos/README.md
index 17b58c9..d4f7d45 100644
--- a/registry/nacos/README.md
+++ b/registry/nacos/README.md
@@ -1,3 +1,3 @@
-## nacos
-
-You should install the Docker before you run `docker-compose up` to start the nacos, prometheus and grafana.
+## nacos

+

+You should install the Docker before you run `docker-compose up` to start the nacos, prometheus and grafana.

diff --git a/registry/servicediscovery/etcd/go-client/profiles/dev/log.yml b/registry/servicediscovery/etcd/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/etcd/go-client/profiles/dev/log.yml
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/etcd/go-client/profiles/release/log.yml b/registry/servicediscovery/etcd/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/registry/servicediscovery/etcd/go-client/profiles/release/log.yml
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/etcd/go-client/profiles/test/log.yml b/registry/servicediscovery/etcd/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/registry/servicediscovery/etcd/go-client/profiles/test/log.yml
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/etcd/go-server/profiles/dev/log.yml b/registry/servicediscovery/etcd/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/etcd/go-server/profiles/dev/log.yml
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/etcd/go-server/profiles/release/log.yml b/registry/servicediscovery/etcd/go-server/profiles/release/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/etcd/go-server/profiles/release/log.yml
+++ b/registry/servicediscovery/etcd/go-server/profiles/release/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/registry/servicediscovery/etcd/go-server/profiles/test/log.yml b/registry/servicediscovery/etcd/go-server/profiles/test/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/etcd/go-server/profiles/test/log.yml
+++ b/registry/servicediscovery/etcd/go-server/profiles/test/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/registry/servicediscovery/etcd/java-client/pom.xml b/registry/servicediscovery/etcd/java-client/pom.xml
index 0757083..5fc8342 100644
--- a/registry/servicediscovery/etcd/java-client/pom.xml
+++ b/registry/servicediscovery/etcd/java-client/pom.xml
@@ -1,131 +1,131 @@
-<?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>true</skip_maven_deploy>
-        <dubbo.configcenter.zookeeper.version>2.7.4</dubbo.configcenter.zookeeper.version>
-        <dubbo-jsonrpc-version>1.0.1</dubbo-jsonrpc-version>
-        <dubbo.version>2.7.6</dubbo.version>
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-multicast</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-configcenter-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.alibaba.nacos</groupId>-->
-<!--            <artifactId>nacos-client</artifactId>-->
-<!--        </dependency>-->
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-configcenter-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-metadata-report-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-config-spring</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-dubbo</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-remoting-netty4</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-serialization-hessian2</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-    </dependencies>
-
-
-    <repositories>
-        <repository>
-            <id>apache.snapshots.https</id>
-            <name>Apache Development Snapshot Repository</name>
-            <url>https://repository.apache.org/content/repositories/snapshots</url>
-            <layout>default</layout>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-            <snapshots>
-                <enabled>true</enabled>
-                <updatePolicy>daily</updatePolicy>
-            </snapshots>
-        </repository>
-    </repositories>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                    <encoding>UTF-8</encoding>
-                </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>

+        <skip_maven_deploy>true</skip_maven_deploy>

+        <dubbo.configcenter.zookeeper.version>2.7.4</dubbo.configcenter.zookeeper.version>

+        <dubbo-jsonrpc-version>1.0.1</dubbo-jsonrpc-version>

+        <dubbo.version>2.7.6</dubbo.version>

+    </properties>

+

+    <dependencies>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-registry-multicast</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-configcenter-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-registry-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-registry-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+<!--        <dependency>-->

+<!--            <groupId>com.alibaba.nacos</groupId>-->

+<!--            <artifactId>nacos-client</artifactId>-->

+<!--        </dependency>-->

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-configcenter-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-metadata-report-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-config-spring</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-rpc-dubbo</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-remoting-netty4</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-serialization-hessian2</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+    </dependencies>

+

+

+    <repositories>

+        <repository>

+            <id>apache.snapshots.https</id>

+            <name>Apache Development Snapshot Repository</name>

+            <url>https://repository.apache.org/content/repositories/snapshots</url>

+            <layout>default</layout>

+            <releases>

+                <enabled>false</enabled>

+            </releases>

+            <snapshots>

+                <enabled>true</enabled>

+                <updatePolicy>daily</updatePolicy>

+            </snapshots>

+        </repository>

+    </repositories>

+

+    <build>

+        <plugins>

+            <plugin>

+                <groupId>org.apache.maven.plugins</groupId>

+                <artifactId>maven-compiler-plugin</artifactId>

+                <version>3.8.1</version>

+                <configuration>

+                    <source>1.8</source>

+                    <target>1.8</target>

+                    <encoding>UTF-8</encoding>

+                </configuration>

+            </plugin>

+        </plugins>

+    </build>

+</project>

diff --git a/registry/servicediscovery/etcd/java-client/src/main/assembly/assembly.xml b/registry/servicediscovery/etcd/java-client/src/main/assembly/assembly.xml
index 84f5499..bc00a06 100644
--- a/registry/servicediscovery/etcd/java-client/src/main/assembly/assembly.xml
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/Consumer.java b/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/Consumer.java
index 20478cb..b3b4b23 100644
--- a/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,36 +1,36 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.ikurento.user;
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-
-public class Consumer {
-    public static void main(String[] args) {
-        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml");
-        context.start();
-        UserProvider userProvider = context.getBean("demoService", UserProvider.class);
-//        try {
-//            Thread.sleep(100000);
-//        } catch (Exception e) {
-//        }
-        User hello = userProvider.GetUser("mindeng");
-        System.out.println("result: " + hello);
-    }
-
-}
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one or more

+ * contributor license agreements.  See the NOTICE file distributed with

+ * this work for additional information regarding copyright ownership.

+ * The ASF licenses this file to You under the Apache License, Version 2.0

+ * (the "License"); you may not use this file except in compliance with

+ * the License.  You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT 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.springframework.context.support.ClassPathXmlApplicationContext;

+

+

+public class Consumer {

+    public static void main(String[] args) {

+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml");

+        context.start();

+        UserProvider userProvider = context.getBean("demoService", UserProvider.class);

+//        try {

+//            Thread.sleep(100000);

+//        } catch (Exception e) {

+//        }

+        User hello = userProvider.GetUser("mindeng");

+        System.out.println("result: " + hello);

+    }

+

+}

diff --git a/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/User.java b/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/User.java
index 1526244..666e904 100644
--- a/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/User.java
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/UserProvider.java b/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/UserProvider.java
index f42452d..67a836a 100644
--- a/registry/servicediscovery/etcd/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/etcd/java-client/src/main/resources/META-INF/spring/service.xml b/registry/servicediscovery/etcd/java-client/src/main/resources/META-INF/spring/service.xml
index e904431..563b838 100644
--- a/registry/servicediscovery/etcd/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/registry/servicediscovery/etcd/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">-->
-<!--		&lt;!&ndash; 声明这个类 要使用的服务名&ndash;&gt;-->
-<!--		<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">-->

+<!--		&lt;!&ndash; 声明这个类 要使用的服务名&ndash;&gt;-->

+<!--		<property name="userProvider" ref="userProvider" />-->

+<!--	</bean>-->

+

+</beans>

diff --git a/registry/servicediscovery/etcd/java-client/src/main/resources/dubbo.properties b/registry/servicediscovery/etcd/java-client/src/main/resources/dubbo.properties
index 701dd46..e561efc 100644
--- a/registry/servicediscovery/etcd/java-client/src/main/resources/dubbo.properties
+++ b/registry/servicediscovery/etcd/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 = 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/registry/servicediscovery/etcd/java-server/src/main/assembly/assembly.xml b/registry/servicediscovery/etcd/java-server/src/main/assembly/assembly.xml
index c0aeffd..5b4075c 100644
--- a/registry/servicediscovery/etcd/java-server/src/main/assembly/assembly.xml
+++ b/registry/servicediscovery/etcd/java-server/src/main/assembly/assembly.xml
@@ -1,44 +1,44 @@
-<?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>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/resources</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/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/User.java b/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/User.java
index ac046bd..fd2cafb 100644
--- a/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/User.java
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/UserProvider.java b/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 831588d..b1eeab8 100644
--- a/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 10dbbc3..0d66c43 100644
--- a/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/registry/servicediscovery/etcd/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -1,30 +1,30 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-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;

+

+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/registry/servicediscovery/etcd/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/registry/servicediscovery/etcd/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 03e83d2..2f89e0d 100644
--- a/registry/servicediscovery/etcd/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/registry/servicediscovery/etcd/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:protocol host="127.0.0.1" / -->
-	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" />
-	<!-- 声明需要暴露的服务接口 -->
-<!--	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>-->
-
-	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />
-
-
-	<!--    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>-->
-	<dubbo:registry id="nacos" address="nacos://127.0.0.1:8848?registry-type=service"/>
-
-	<dubbo:protocol name="dubbo"/>
-
-	<dubbo:service registry="nacos" interface="com.ikurento.user.UserProvider" ref="demoService" weight="12"/>
-
-</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:protocol host="127.0.0.1" / -->

+	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" />

+	<!-- 声明需要暴露的服务接口 -->

+<!--	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>-->

+

+	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />

+

+

+	<!--    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>-->

+	<dubbo:registry id="nacos" address="nacos://127.0.0.1:8848?registry-type=service"/>

+

+	<dubbo:protocol name="dubbo"/>

+

+	<dubbo:service registry="nacos" interface="com.ikurento.user.UserProvider" ref="demoService" weight="12"/>

+

+</beans>

diff --git a/registry/servicediscovery/etcd/java-server/src/main/resources/log4j.properties b/registry/servicediscovery/etcd/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/registry/servicediscovery/etcd/java-server/src/main/resources/log4j.properties
+++ b/registry/servicediscovery/etcd/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/registry/servicediscovery/nacos/go-client/profiles/dev/log.yml b/registry/servicediscovery/nacos/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/nacos/go-client/profiles/dev/log.yml
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/nacos/go-client/profiles/release/log.yml b/registry/servicediscovery/nacos/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/registry/servicediscovery/nacos/go-client/profiles/release/log.yml
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/nacos/go-client/profiles/test/log.yml b/registry/servicediscovery/nacos/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/registry/servicediscovery/nacos/go-client/profiles/test/log.yml
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/nacos/go-server/profiles/dev/log.yml b/registry/servicediscovery/nacos/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/nacos/go-server/profiles/dev/log.yml
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/nacos/go-server/profiles/release/log.yml b/registry/servicediscovery/nacos/go-server/profiles/release/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/nacos/go-server/profiles/release/log.yml
+++ b/registry/servicediscovery/nacos/go-server/profiles/release/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/registry/servicediscovery/nacos/go-server/profiles/test/log.yml b/registry/servicediscovery/nacos/go-server/profiles/test/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/nacos/go-server/profiles/test/log.yml
+++ b/registry/servicediscovery/nacos/go-server/profiles/test/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/registry/servicediscovery/nacos/java-client/pom.xml b/registry/servicediscovery/nacos/java-client/pom.xml
index 0757083..5fc8342 100644
--- a/registry/servicediscovery/nacos/java-client/pom.xml
+++ b/registry/servicediscovery/nacos/java-client/pom.xml
@@ -1,131 +1,131 @@
-<?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>true</skip_maven_deploy>
-        <dubbo.configcenter.zookeeper.version>2.7.4</dubbo.configcenter.zookeeper.version>
-        <dubbo-jsonrpc-version>1.0.1</dubbo-jsonrpc-version>
-        <dubbo.version>2.7.6</dubbo.version>
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-multicast</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-configcenter-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.alibaba.nacos</groupId>-->
-<!--            <artifactId>nacos-client</artifactId>-->
-<!--        </dependency>-->
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-configcenter-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-metadata-report-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-config-spring</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-dubbo</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-remoting-netty4</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-serialization-hessian2</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-    </dependencies>
-
-
-    <repositories>
-        <repository>
-            <id>apache.snapshots.https</id>
-            <name>Apache Development Snapshot Repository</name>
-            <url>https://repository.apache.org/content/repositories/snapshots</url>
-            <layout>default</layout>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-            <snapshots>
-                <enabled>true</enabled>
-                <updatePolicy>daily</updatePolicy>
-            </snapshots>
-        </repository>
-    </repositories>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                    <encoding>UTF-8</encoding>
-                </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>

+        <skip_maven_deploy>true</skip_maven_deploy>

+        <dubbo.configcenter.zookeeper.version>2.7.4</dubbo.configcenter.zookeeper.version>

+        <dubbo-jsonrpc-version>1.0.1</dubbo-jsonrpc-version>

+        <dubbo.version>2.7.6</dubbo.version>

+    </properties>

+

+    <dependencies>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-registry-multicast</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-configcenter-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-registry-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-registry-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+<!--        <dependency>-->

+<!--            <groupId>com.alibaba.nacos</groupId>-->

+<!--            <artifactId>nacos-client</artifactId>-->

+<!--        </dependency>-->

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-configcenter-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-metadata-report-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-config-spring</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-rpc-dubbo</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-remoting-netty4</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-serialization-hessian2</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+    </dependencies>

+

+

+    <repositories>

+        <repository>

+            <id>apache.snapshots.https</id>

+            <name>Apache Development Snapshot Repository</name>

+            <url>https://repository.apache.org/content/repositories/snapshots</url>

+            <layout>default</layout>

+            <releases>

+                <enabled>false</enabled>

+            </releases>

+            <snapshots>

+                <enabled>true</enabled>

+                <updatePolicy>daily</updatePolicy>

+            </snapshots>

+        </repository>

+    </repositories>

+

+    <build>

+        <plugins>

+            <plugin>

+                <groupId>org.apache.maven.plugins</groupId>

+                <artifactId>maven-compiler-plugin</artifactId>

+                <version>3.8.1</version>

+                <configuration>

+                    <source>1.8</source>

+                    <target>1.8</target>

+                    <encoding>UTF-8</encoding>

+                </configuration>

+            </plugin>

+        </plugins>

+    </build>

+</project>

diff --git a/registry/servicediscovery/nacos/java-client/src/main/assembly/assembly.xml b/registry/servicediscovery/nacos/java-client/src/main/assembly/assembly.xml
index 84f5499..bc00a06 100644
--- a/registry/servicediscovery/nacos/java-client/src/main/assembly/assembly.xml
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/Consumer.java b/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/Consumer.java
index 20478cb..b3b4b23 100644
--- a/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,36 +1,36 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.ikurento.user;
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-
-public class Consumer {
-    public static void main(String[] args) {
-        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml");
-        context.start();
-        UserProvider userProvider = context.getBean("demoService", UserProvider.class);
-//        try {
-//            Thread.sleep(100000);
-//        } catch (Exception e) {
-//        }
-        User hello = userProvider.GetUser("mindeng");
-        System.out.println("result: " + hello);
-    }
-
-}
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one or more

+ * contributor license agreements.  See the NOTICE file distributed with

+ * this work for additional information regarding copyright ownership.

+ * The ASF licenses this file to You under the Apache License, Version 2.0

+ * (the "License"); you may not use this file except in compliance with

+ * the License.  You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT 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.springframework.context.support.ClassPathXmlApplicationContext;

+

+

+public class Consumer {

+    public static void main(String[] args) {

+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml");

+        context.start();

+        UserProvider userProvider = context.getBean("demoService", UserProvider.class);

+//        try {

+//            Thread.sleep(100000);

+//        } catch (Exception e) {

+//        }

+        User hello = userProvider.GetUser("mindeng");

+        System.out.println("result: " + hello);

+    }

+

+}

diff --git a/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/User.java b/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/User.java
index 1526244..666e904 100644
--- a/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/User.java
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/UserProvider.java b/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/UserProvider.java
index f42452d..67a836a 100644
--- a/registry/servicediscovery/nacos/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/nacos/java-client/src/main/resources/META-INF/spring/service.xml b/registry/servicediscovery/nacos/java-client/src/main/resources/META-INF/spring/service.xml
index e904431..563b838 100644
--- a/registry/servicediscovery/nacos/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/registry/servicediscovery/nacos/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">-->
-<!--		&lt;!&ndash; 声明这个类 要使用的服务名&ndash;&gt;-->
-<!--		<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">-->

+<!--		&lt;!&ndash; 声明这个类 要使用的服务名&ndash;&gt;-->

+<!--		<property name="userProvider" ref="userProvider" />-->

+<!--	</bean>-->

+

+</beans>

diff --git a/registry/servicediscovery/nacos/java-client/src/main/resources/dubbo.properties b/registry/servicediscovery/nacos/java-client/src/main/resources/dubbo.properties
index 701dd46..e561efc 100644
--- a/registry/servicediscovery/nacos/java-client/src/main/resources/dubbo.properties
+++ b/registry/servicediscovery/nacos/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 = 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/registry/servicediscovery/nacos/java-server/src/main/assembly/assembly.xml b/registry/servicediscovery/nacos/java-server/src/main/assembly/assembly.xml
index c0aeffd..5b4075c 100644
--- a/registry/servicediscovery/nacos/java-server/src/main/assembly/assembly.xml
+++ b/registry/servicediscovery/nacos/java-server/src/main/assembly/assembly.xml
@@ -1,44 +1,44 @@
-<?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>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/resources</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/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/User.java b/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/User.java
index ac046bd..fd2cafb 100644
--- a/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/User.java
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/UserProvider.java b/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 831588d..b1eeab8 100644
--- a/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 10dbbc3..0d66c43 100644
--- a/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/registry/servicediscovery/nacos/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -1,30 +1,30 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-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;

+

+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/registry/servicediscovery/nacos/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/registry/servicediscovery/nacos/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 03e83d2..2f89e0d 100644
--- a/registry/servicediscovery/nacos/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/registry/servicediscovery/nacos/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:protocol host="127.0.0.1" / -->
-	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" />
-	<!-- 声明需要暴露的服务接口 -->
-<!--	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>-->
-
-	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />
-
-
-	<!--    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>-->
-	<dubbo:registry id="nacos" address="nacos://127.0.0.1:8848?registry-type=service"/>
-
-	<dubbo:protocol name="dubbo"/>
-
-	<dubbo:service registry="nacos" interface="com.ikurento.user.UserProvider" ref="demoService" weight="12"/>
-
-</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:protocol host="127.0.0.1" / -->

+	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" />

+	<!-- 声明需要暴露的服务接口 -->

+<!--	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>-->

+

+	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />

+

+

+	<!--    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>-->

+	<dubbo:registry id="nacos" address="nacos://127.0.0.1:8848?registry-type=service"/>

+

+	<dubbo:protocol name="dubbo"/>

+

+	<dubbo:service registry="nacos" interface="com.ikurento.user.UserProvider" ref="demoService" weight="12"/>

+

+</beans>

diff --git a/registry/servicediscovery/nacos/java-server/src/main/resources/log4j.properties b/registry/servicediscovery/nacos/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/registry/servicediscovery/nacos/java-server/src/main/resources/log4j.properties
+++ b/registry/servicediscovery/nacos/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/registry/servicediscovery/zookeeper/go-client/profiles/dev/log.yml b/registry/servicediscovery/zookeeper/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/zookeeper/go-client/profiles/dev/log.yml
+++ b/registry/servicediscovery/zookeeper/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/registry/servicediscovery/zookeeper/go-client/profiles/release/log.yml b/registry/servicediscovery/zookeeper/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/registry/servicediscovery/zookeeper/go-client/profiles/release/log.yml
+++ b/registry/servicediscovery/zookeeper/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/registry/servicediscovery/zookeeper/go-client/profiles/test/log.yml b/registry/servicediscovery/zookeeper/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/registry/servicediscovery/zookeeper/go-client/profiles/test/log.yml
+++ b/registry/servicediscovery/zookeeper/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/registry/servicediscovery/zookeeper/go-server/profiles/dev/log.yml b/registry/servicediscovery/zookeeper/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/zookeeper/go-server/profiles/dev/log.yml
+++ b/registry/servicediscovery/zookeeper/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/registry/servicediscovery/zookeeper/go-server/profiles/release/log.yml b/registry/servicediscovery/zookeeper/go-server/profiles/release/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/zookeeper/go-server/profiles/release/log.yml
+++ b/registry/servicediscovery/zookeeper/go-server/profiles/release/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/registry/servicediscovery/zookeeper/go-server/profiles/test/log.yml b/registry/servicediscovery/zookeeper/go-server/profiles/test/log.yml
index 3ed242d..59fa427 100644
--- a/registry/servicediscovery/zookeeper/go-server/profiles/test/log.yml
+++ b/registry/servicediscovery/zookeeper/go-server/profiles/test/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/registry/servicediscovery/zookeeper/java-client/pom.xml b/registry/servicediscovery/zookeeper/java-client/pom.xml
index 0757083..5fc8342 100644
--- a/registry/servicediscovery/zookeeper/java-client/pom.xml
+++ b/registry/servicediscovery/zookeeper/java-client/pom.xml
@@ -1,131 +1,131 @@
-<?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>true</skip_maven_deploy>
-        <dubbo.configcenter.zookeeper.version>2.7.4</dubbo.configcenter.zookeeper.version>
-        <dubbo-jsonrpc-version>1.0.1</dubbo-jsonrpc-version>
-        <dubbo.version>2.7.6</dubbo.version>
-    </properties>
-
-    <dependencies>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-multicast</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-configcenter-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-<!--        <dependency>-->
-<!--            <groupId>com.alibaba.nacos</groupId>-->
-<!--            <artifactId>nacos-client</artifactId>-->
-<!--        </dependency>-->
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-configcenter-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-metadata-report-nacos</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-config-spring</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-dubbo</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-remoting-netty4</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-serialization-hessian2</artifactId>
-            <version>${dubbo.version}</version>
-        </dependency>
-    </dependencies>
-
-
-    <repositories>
-        <repository>
-            <id>apache.snapshots.https</id>
-            <name>Apache Development Snapshot Repository</name>
-            <url>https://repository.apache.org/content/repositories/snapshots</url>
-            <layout>default</layout>
-            <releases>
-                <enabled>false</enabled>
-            </releases>
-            <snapshots>
-                <enabled>true</enabled>
-                <updatePolicy>daily</updatePolicy>
-            </snapshots>
-        </repository>
-    </repositories>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>3.8.1</version>
-                <configuration>
-                    <source>1.8</source>
-                    <target>1.8</target>
-                    <encoding>UTF-8</encoding>
-                </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>

+        <skip_maven_deploy>true</skip_maven_deploy>

+        <dubbo.configcenter.zookeeper.version>2.7.4</dubbo.configcenter.zookeeper.version>

+        <dubbo-jsonrpc-version>1.0.1</dubbo-jsonrpc-version>

+        <dubbo.version>2.7.6</dubbo.version>

+    </properties>

+

+    <dependencies>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-registry-multicast</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-configcenter-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-registry-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-registry-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+<!--        <dependency>-->

+<!--            <groupId>com.alibaba.nacos</groupId>-->

+<!--            <artifactId>nacos-client</artifactId>-->

+<!--        </dependency>-->

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-configcenter-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-metadata-report-nacos</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-config-spring</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-rpc-dubbo</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-remoting-netty4</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+        <dependency>

+            <groupId>org.apache.dubbo</groupId>

+            <artifactId>dubbo-serialization-hessian2</artifactId>

+            <version>${dubbo.version}</version>

+        </dependency>

+    </dependencies>

+

+

+    <repositories>

+        <repository>

+            <id>apache.snapshots.https</id>

+            <name>Apache Development Snapshot Repository</name>

+            <url>https://repository.apache.org/content/repositories/snapshots</url>

+            <layout>default</layout>

+            <releases>

+                <enabled>false</enabled>

+            </releases>

+            <snapshots>

+                <enabled>true</enabled>

+                <updatePolicy>daily</updatePolicy>

+            </snapshots>

+        </repository>

+    </repositories>

+

+    <build>

+        <plugins>

+            <plugin>

+                <groupId>org.apache.maven.plugins</groupId>

+                <artifactId>maven-compiler-plugin</artifactId>

+                <version>3.8.1</version>

+                <configuration>

+                    <source>1.8</source>

+                    <target>1.8</target>

+                    <encoding>UTF-8</encoding>

+                </configuration>

+            </plugin>

+        </plugins>

+    </build>

+</project>

diff --git a/registry/servicediscovery/zookeeper/java-client/src/main/assembly/assembly.xml b/registry/servicediscovery/zookeeper/java-client/src/main/assembly/assembly.xml
index 84f5499..bc00a06 100644
--- a/registry/servicediscovery/zookeeper/java-client/src/main/assembly/assembly.xml
+++ b/registry/servicediscovery/zookeeper/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/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/Consumer.java b/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/Consumer.java
index 20478cb..b3b4b23 100644
--- a/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,36 +1,36 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.ikurento.user;
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-
-public class Consumer {
-    public static void main(String[] args) {
-        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml");
-        context.start();
-        UserProvider userProvider = context.getBean("demoService", UserProvider.class);
-//        try {
-//            Thread.sleep(100000);
-//        } catch (Exception e) {
-//        }
-        User hello = userProvider.GetUser("mindeng");
-        System.out.println("result: " + hello);
-    }
-
-}
+/*

+ * Licensed to the Apache Software Foundation (ASF) under one or more

+ * contributor license agreements.  See the NOTICE file distributed with

+ * this work for additional information regarding copyright ownership.

+ * The ASF licenses this file to You under the Apache License, Version 2.0

+ * (the "License"); you may not use this file except in compliance with

+ * the License.  You may obtain a copy of the License at

+ *

+ *     http://www.apache.org/licenses/LICENSE-2.0

+ *

+ * Unless required by applicable law or agreed to in writing, software

+ * distributed under the License is distributed on an "AS IS" BASIS,

+ * WITHOUT 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.springframework.context.support.ClassPathXmlApplicationContext;

+

+

+public class Consumer {

+    public static void main(String[] args) {

+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("META-INF/spring/dubbo.consumer.xml");

+        context.start();

+        UserProvider userProvider = context.getBean("demoService", UserProvider.class);

+//        try {

+//            Thread.sleep(100000);

+//        } catch (Exception e) {

+//        }

+        User hello = userProvider.GetUser("mindeng");

+        System.out.println("result: " + hello);

+    }

+

+}

diff --git a/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/User.java b/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/User.java
index 1526244..666e904 100644
--- a/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/User.java
+++ b/registry/servicediscovery/zookeeper/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/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/UserProvider.java b/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/UserProvider.java
index f42452d..67a836a 100644
--- a/registry/servicediscovery/zookeeper/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/registry/servicediscovery/zookeeper/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/registry/servicediscovery/zookeeper/java-client/src/main/resources/META-INF/spring/service.xml b/registry/servicediscovery/zookeeper/java-client/src/main/resources/META-INF/spring/service.xml
index e904431..563b838 100644
--- a/registry/servicediscovery/zookeeper/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/registry/servicediscovery/zookeeper/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">-->
-<!--		&lt;!&ndash; 声明这个类 要使用的服务名&ndash;&gt;-->
-<!--		<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">-->

+<!--		&lt;!&ndash; 声明这个类 要使用的服务名&ndash;&gt;-->

+<!--		<property name="userProvider" ref="userProvider" />-->

+<!--	</bean>-->

+

+</beans>

diff --git a/registry/servicediscovery/zookeeper/java-client/src/main/resources/dubbo.properties b/registry/servicediscovery/zookeeper/java-client/src/main/resources/dubbo.properties
index 701dd46..e561efc 100644
--- a/registry/servicediscovery/zookeeper/java-client/src/main/resources/dubbo.properties
+++ b/registry/servicediscovery/zookeeper/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 = 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/registry/servicediscovery/zookeeper/java-server/src/main/assembly/assembly.xml b/registry/servicediscovery/zookeeper/java-server/src/main/assembly/assembly.xml
index c0aeffd..5b4075c 100644
--- a/registry/servicediscovery/zookeeper/java-server/src/main/assembly/assembly.xml
+++ b/registry/servicediscovery/zookeeper/java-server/src/main/assembly/assembly.xml
@@ -1,44 +1,44 @@
-<?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>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/resources</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/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/User.java b/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/User.java
index ac046bd..fd2cafb 100644
--- a/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/User.java
+++ b/registry/servicediscovery/zookeeper/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/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/UserProvider.java b/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 831588d..b1eeab8 100644
--- a/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/registry/servicediscovery/zookeeper/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/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 10dbbc3..0d66c43 100644
--- a/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/registry/servicediscovery/zookeeper/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -1,30 +1,30 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-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;

+

+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/registry/servicediscovery/zookeeper/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/registry/servicediscovery/zookeeper/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 03e83d2..2f89e0d 100644
--- a/registry/servicediscovery/zookeeper/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/registry/servicediscovery/zookeeper/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:protocol host="127.0.0.1" / -->
-	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" />
-	<!-- 声明需要暴露的服务接口 -->
-<!--	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>-->
-
-	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />
-
-
-	<!--    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>-->
-	<dubbo:registry id="nacos" address="nacos://127.0.0.1:8848?registry-type=service"/>
-
-	<dubbo:protocol name="dubbo"/>
-
-	<dubbo:service registry="nacos" interface="com.ikurento.user.UserProvider" ref="demoService" weight="12"/>
-
-</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:protocol host="127.0.0.1" / -->

+	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" />

+	<!-- 声明需要暴露的服务接口 -->

+<!--	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>-->

+

+	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />

+

+

+	<!--    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>-->

+	<dubbo:registry id="nacos" address="nacos://127.0.0.1:8848?registry-type=service"/>

+

+	<dubbo:protocol name="dubbo"/>

+

+	<dubbo:service registry="nacos" interface="com.ikurento.user.UserProvider" ref="demoService" weight="12"/>

+

+</beans>

diff --git a/registry/servicediscovery/zookeeper/java-server/src/main/resources/log4j.properties b/registry/servicediscovery/zookeeper/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/registry/servicediscovery/zookeeper/java-server/src/main/resources/log4j.properties
+++ b/registry/servicediscovery/zookeeper/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/seata/client/profiles/dev/log.yml b/seata/client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/seata/client/profiles/dev/log.yml
+++ b/seata/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/seata/client/profiles/release/log.yml b/seata/client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/seata/client/profiles/release/log.yml
+++ b/seata/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/seata/client/profiles/test/log.yml b/seata/client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/seata/client/profiles/test/log.yml
+++ b/seata/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/seata/order-svc/profiles/dev/log.yml b/seata/order-svc/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/seata/order-svc/profiles/dev/log.yml
+++ b/seata/order-svc/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/seata/order-svc/profiles/release/log.yml b/seata/order-svc/profiles/release/log.yml
index d860624..e0514be 100644
--- a/seata/order-svc/profiles/release/log.yml
+++ b/seata/order-svc/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/seata/order-svc/profiles/test/log.yml b/seata/order-svc/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/seata/order-svc/profiles/test/log.yml
+++ b/seata/order-svc/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/seata/product-svc/profiles/dev/log.yml b/seata/product-svc/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/seata/product-svc/profiles/dev/log.yml
+++ b/seata/product-svc/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/seata/product-svc/profiles/release/log.yml b/seata/product-svc/profiles/release/log.yml
index d860624..e0514be 100644
--- a/seata/product-svc/profiles/release/log.yml
+++ b/seata/product-svc/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/seata/product-svc/profiles/test/log.yml b/seata/product-svc/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/seata/product-svc/profiles/test/log.yml
+++ b/seata/product-svc/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/tracing/dubbo/go-client/profiles/dev/log.yml b/tracing/dubbo/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/tracing/dubbo/go-client/profiles/dev/log.yml
+++ b/tracing/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/tracing/dubbo/go-client/profiles/release/log.yml b/tracing/dubbo/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/tracing/dubbo/go-client/profiles/release/log.yml
+++ b/tracing/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/tracing/dubbo/go-client/profiles/test/log.yml b/tracing/dubbo/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/tracing/dubbo/go-client/profiles/test/log.yml
+++ b/tracing/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/tracing/dubbo/go-server/profiles/dev/log.yml b/tracing/dubbo/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/tracing/dubbo/go-server/profiles/dev/log.yml
+++ b/tracing/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/tracing/dubbo/go-server/profiles/release/log.yml b/tracing/dubbo/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/tracing/dubbo/go-server/profiles/release/log.yml
+++ b/tracing/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/tracing/dubbo/go-server/profiles/test/log.yml b/tracing/dubbo/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/tracing/dubbo/go-server/profiles/test/log.yml
+++ b/tracing/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/tracing/dubbo/java-client/pom.xml b/tracing/dubbo/java-client/pom.xml
index 445b924..4065414 100644
--- a/tracing/dubbo/java-client/pom.xml
+++ b/tracing/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/tracing/dubbo/java-client/src/main/assembly/assembly.xml b/tracing/dubbo/java-client/src/main/assembly/assembly.xml
index 84f5499..bc00a06 100644
--- a/tracing/dubbo/java-client/src/main/assembly/assembly.xml
+++ b/tracing/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/tracing/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java b/tracing/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
index ecefa6e..51e3d67 100644
--- a/tracing/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ b/tracing/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
@@ -1,60 +1,60 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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) {
-        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) {

+        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/tracing/dubbo/java-client/src/main/java/com/ikurento/user/User.java b/tracing/dubbo/java-client/src/main/java/com/ikurento/user/User.java
index 1526244..666e904 100644
--- a/tracing/dubbo/java-client/src/main/java/com/ikurento/user/User.java
+++ b/tracing/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/tracing/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java b/tracing/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
index f42452d..67a836a 100644
--- a/tracing/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ b/tracing/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/tracing/dubbo/java-client/src/main/resources/META-INF/spring/service.xml b/tracing/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
index e4f5fda..529f63e 100644
--- a/tracing/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
+++ b/tracing/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/tracing/dubbo/java-client/src/main/resources/dubbo.properties b/tracing/dubbo/java-client/src/main/resources/dubbo.properties
index 701dd46..e561efc 100644
--- a/tracing/dubbo/java-client/src/main/resources/dubbo.properties
+++ b/tracing/dubbo/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 = 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/tracing/dubbo/java-server/src/main/assembly/assembly.xml b/tracing/dubbo/java-server/src/main/assembly/assembly.xml
index c0aeffd..5b4075c 100644
--- a/tracing/dubbo/java-server/src/main/assembly/assembly.xml
+++ b/tracing/dubbo/java-server/src/main/assembly/assembly.xml
@@ -1,44 +1,44 @@
-<?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>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/resources</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/tracing/dubbo/java-server/src/main/java/com/ikurento/user/User.java b/tracing/dubbo/java-server/src/main/java/com/ikurento/user/User.java
index ac046bd..fd2cafb 100644
--- a/tracing/dubbo/java-server/src/main/java/com/ikurento/user/User.java
+++ b/tracing/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/tracing/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java b/tracing/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
index 831588d..b1eeab8 100644
--- a/tracing/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/tracing/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/tracing/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java b/tracing/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
index 10dbbc3..0d66c43 100644
--- a/tracing/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
+++ b/tracing/dubbo/java-server/src/main/java/com/ikurento/user/UserProviderImpl.java
@@ -1,30 +1,30 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-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;

+

+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/tracing/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml b/tracing/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
index 7351324..3fca067 100644
--- a/tracing/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ b/tracing/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
@@ -1,33 +1,33 @@
-<?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协议在20880端口暴露服务 -->
-    <!-- dubbo:protocol host="127.0.0.1" / -->
-	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" port="20010" />
-	<!-- 声明需要暴露的服务接口 -->
-	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>
-
-	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />
-
-</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协议在20880端口暴露服务 -->

+    <!-- dubbo:protocol host="127.0.0.1" / -->

+	<dubbo:protocol id="dubbo" name="dubbo" host="127.0.0.1" port="20010" />

+	<!-- 声明需要暴露的服务接口 -->

+	<dubbo:service id="aaa" registry="ikurento" timeout="3000" interface="com.ikurento.user.UserProvider" ref="demoService"/>

+

+	<bean id="demoService" class="com.ikurento.user.UserProviderImpl" />

+

+</beans>

diff --git a/tracing/dubbo/java-server/src/main/resources/dubbo.properties b/tracing/dubbo/java-server/src/main/resources/dubbo.properties
index 54f8a16..2826f31 100644
--- a/tracing/dubbo/java-server/src/main/resources/dubbo.properties
+++ b/tracing/dubbo/java-server/src/main/resources/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/tracing/dubbo/java-server/src/main/resources/log4j.properties b/tracing/dubbo/java-server/src/main/resources/log4j.properties
index 806e33d..13c8049 100644
--- a/tracing/dubbo/java-server/src/main/resources/log4j.properties
+++ b/tracing/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/tracing/jsonrpc/go-client/profiles/dev/log.yml b/tracing/jsonrpc/go-client/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/tracing/jsonrpc/go-client/profiles/dev/log.yml
+++ b/tracing/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/tracing/jsonrpc/go-client/profiles/release/log.yml b/tracing/jsonrpc/go-client/profiles/release/log.yml
index d860624..e0514be 100644
--- a/tracing/jsonrpc/go-client/profiles/release/log.yml
+++ b/tracing/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/tracing/jsonrpc/go-client/profiles/test/log.yml b/tracing/jsonrpc/go-client/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/tracing/jsonrpc/go-client/profiles/test/log.yml
+++ b/tracing/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/tracing/jsonrpc/go-server/profiles/dev/log.yml b/tracing/jsonrpc/go-server/profiles/dev/log.yml
index 3ed242d..59fa427 100644
--- a/tracing/jsonrpc/go-server/profiles/dev/log.yml
+++ b/tracing/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/tracing/jsonrpc/go-server/profiles/release/log.yml b/tracing/jsonrpc/go-server/profiles/release/log.yml
index d860624..e0514be 100644
--- a/tracing/jsonrpc/go-server/profiles/release/log.yml
+++ b/tracing/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/tracing/jsonrpc/go-server/profiles/test/log.yml b/tracing/jsonrpc/go-server/profiles/test/log.yml
index f93d3c7..baee0b7 100644
--- a/tracing/jsonrpc/go-server/profiles/test/log.yml
+++ b/tracing/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: