This is an automated email from the ASF dual-hosted git repository.

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


The following commit(s) were added to refs/heads/makefile by this push:
     new f2dfc66  make integration test work for configcenter/zookeeper
f2dfc66 is described below

commit f2dfc660172196f107096e2a308aa304d66bc8d9
Author: Ian Luo <ian....@gmail.com>
AuthorDate: Fri Oct 30 13:22:03 2020 +0800

    make integration test work for configcenter/zookeeper
---
 configcenter/zookeeper/README.md                   |  38 ----
 .../zookeeper/dubbo/go-client/assembly/bin/load.sh | 203 -----------------
 .../dubbo/go-client/assembly/common/app.properties |  23 --
 .../dubbo/go-client/assembly/common/build.sh       |  83 -------
 .../dubbo/go-client/assembly/linux/dev.sh          |  36 ---
 .../dubbo/go-client/assembly/linux/release.sh      |  35 ---
 .../dubbo/go-client/assembly/linux/test.sh         |  35 ---
 .../zookeeper/dubbo/go-client/assembly/mac/dev.sh  |  36 ---
 .../dubbo/go-client/assembly/mac/release.sh        |  34 ---
 .../zookeeper/dubbo/go-client/assembly/mac/test.sh |  34 ---
 .../dubbo/go-client/assembly/windows/dev.sh        |  34 ---
 .../dubbo/go-client/assembly/windows/release.sh    |  34 ---
 .../dubbo/go-client/assembly/windows/test.sh       |  34 ---
 .../dubbo/config/user-info-client/dubbo.properties |   1 -
 .../zookeeper/dubbo/go-server/assembly/bin/load.sh | 151 -------------
 .../dubbo/go-server/assembly/common/app.properties |  23 --
 .../dubbo/go-server/assembly/common/build.sh       |  80 -------
 .../dubbo/go-server/assembly/linux/dev.sh          |  36 ---
 .../dubbo/go-server/assembly/linux/release.sh      |  36 ---
 .../dubbo/go-server/assembly/linux/test.sh         |  36 ---
 .../zookeeper/dubbo/go-server/assembly/mac/dev.sh  |  36 ---
 .../dubbo/go-server/assembly/mac/release.sh        |  36 ---
 .../zookeeper/dubbo/go-server/assembly/mac/test.sh |  36 ---
 .../dubbo/go-server/assembly/windows/dev.sh        |  36 ---
 .../dubbo/go-server/assembly/windows/release.sh    |  36 ---
 .../dubbo/go-server/assembly/windows/test.sh       |  36 ---
 .../dubbo/config/user-info-server/dubbo.properties |   4 -
 configcenter/zookeeper/dubbo/java-client/build.sh  |  21 --
 configcenter/zookeeper/dubbo/java-client/pom.xml   | 205 -----------------
 .../java-client/src/main/assembly/assembly.xml     |  43 ----
 .../src/main/java/com/ikurento/user/Consumer.java  |  63 ------
 .../java/com/ikurento/user/EmbeddedZooKeeper.java  | 250 ---------------------
 .../src/main/java/com/ikurento/user/User.java      |  76 -------
 .../main/java/com/ikurento/user/UserProvider.java  |  18 --
 .../src/main/java/com/ikurento/user/ZKTools.java   |  88 --------
 .../resources/META-INF/spring/dubbo.consumer.xml   |  34 ---
 .../src/main/resources/META-INF/spring/service.xml |  27 ---
 .../src/main/resources/log4j.properties            |  19 --
 configcenter/zookeeper/dubbo/java-server/build.sh  |  20 --
 configcenter/zookeeper/dubbo/java-server/pom.xml   | 210 -----------------
 .../zookeeper/dubbo/java-server/script/debug.sh    |  23 --
 .../java-server/src/main/assembly/assembly.xml     |  43 ----
 .../java/com/ikurento/user/EmbeddedZooKeeper.java  | 250 ---------------------
 .../src/main/java/com/ikurento/user/Provider.java  |  42 ----
 .../src/main/java/com/ikurento/user/User.java      |  86 -------
 .../src/main/java/com/ikurento/user/ZKTools.java   |  89 --------
 .../com/ikurento/user/impl/UserProviderImpl.java   |  32 ---
 .../resources/META-INF/spring/dubbo.provider.xml   |  32 ---
 .../src/main/resources/log4j.properties            |  20 --
 .../go-client/app => go-client/cmd}/client.go      |  66 ++----
 .../profiles/dev => go-client/conf}/client.yml     |  38 +++-
 .../profiles/dev => go-client/conf}/log.yml        |  56 ++---
 .../{dubbo/go-client/app => go-client/pkg}/user.go |  38 ++--
 .../go-server/app => go-server/cmd}/server.go      |   9 +-
 .../profiles/dev => go-server/conf}/client.yml     |  38 +++-
 .../profiles/dev => go-server/conf}/log.yml        |  56 ++---
 .../profiles/dev => go-server/conf}/server.yml     |  33 ++-
 .../docker/docker-compose.yml}                     |   7 +-
 .../{dubbo/go-server/app => go-server/pkg}/user.go |   4 +-
 .../tests/integration/main_test.go}                |  31 ++-
 .../tests/integration/userprovider_test.go}        |  62 +++--
 61 files changed, 264 insertions(+), 3107 deletions(-)

diff --git a/configcenter/zookeeper/README.md b/configcenter/zookeeper/README.md
deleted file mode 100644
index bc6f23d..0000000
--- a/configcenter/zookeeper/README.md
+++ /dev/null
@@ -1,38 +0,0 @@
-### 1.Run zookeeper as config center
-
-```docker-compose -f docker/docker-compose.yaml up -d```
-
-### 2.Run java server & java client following 
[README](https://github.com/dubbogo/dubbo-samples/blob/master/golang/README.md)(You
 must run java program to initialize configuration in zookeeper)
-
-Java program will create consumer & provider common configuration in 
/dubbo/config/dubbo/dubbo.properties, consumer configuration in 
/dubbo/config/user-info-client/dubbo.properties
- and provider configuration in /dubbo/config/user-info-server/dubbo.properties.
- 
-### 3.Run java server & go client 
-
-Stop java client. Copy go client configuration file 
[dubbo.properties](https://github.com/dubbogo/dubbo-samples/blob/master/golang/configcenter/zookeeper/dubbo/go-client/profiles/dev/dubbo/config/user-info-client/dubbo.properties)
 as 
-zookeeper file /dubbo/config/user-info-client/dubbo.properties in zookeeper 
node path /dubbo/config/user-info-client/.
-
-Use the script to set configuration file to zookeeper as below
-```
-./zkCli.sh -server 127.0.0.1:2181 set 
/dubbo/config/user-info-client/dubbo.properties 
"dubbo.service.com.ikurento.user.UserProvider.cluster=failback
-dubbo.service.com.ikurento.user.UserProvider.protocol=myDubbo
-dubbo.protocols.myDubbo.port=20000
-dubbo.protocols.myDubbo.name=dubbo
-"
-```
-
-Then start go client following 
[README](https://github.com/dubbogo/dubbo-samples/blob/master/golang/README.md).
-
-### 4.Run go server
-
-The same as step 3. Copy go server configuration file 
[dubbo.properties](https://github.com/dubbogo/dubbo-samples/blob/master/golang/configcenter/zookeeper/dubbo/go-server/profiles/dev/dubbo/config/user-info-server/dubbo.properties)
 as 
-zookeeper file /dubbo/config/user-info-server/dubbo.properties in zookeeper 
node path /dubbo/config/user-info-server/.
-
-Use the script to set configuration file to zookeeper as below
-```
-./zkCli.sh -server 127.0.0.1:2181 set 
/dubbo/config/user-info-server/dubbo.properties 
"dubbo.service.com.ikurento.user.UserProvider.cluster=failback
-dubbo.service.com.ikurento.user.UserProvider.protocol=myDubbo
-dubbo.protocols.myDubbo.port=20000
-dubbo.protocols.myDubbo.name=dubbo
-"
-```
\ No newline at end of file
diff --git a/configcenter/zookeeper/dubbo/go-client/assembly/bin/load.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/bin/load.sh
deleted file mode 100644
index ffa240b..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/bin/load.sh
+++ /dev/null
@@ -1,203 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-APP_NAME="APPLICATION_NAME"
-APP_ARGS=""
-SLEEP_INTERVAL=5
-MAX_LIFETIME=4000
-
-PROJECT_HOME=""
-OS_NAME=`uname`
-if [[ ${OS_NAME} != "Windows" ]]; then
-    PROJECT_HOME=`pwd`
-    PROJECT_HOME=${PROJECT_HOME}"/"
-else
-    APP_NAME="APPLICATION_NAME.exe"
-fi
-
-export CONF_CONSUMER_FILE_PATH=${PROJECT_HOME}"TARGET_CONF_FILE"
-export APP_LOG_CONF_FILE=${PROJECT_HOME}"TARGET_LOG_CONF_FILE"
-# export GOTRACEBACK=system
-# export GODEBUG=gctrace=1
-
-usage() {
-    echo "Usage: $0 start [conf suffix]"
-    echo "       $0 stop"
-    echo "       $0 term"
-    echo "       $0 restart"
-    echo "       $0 list"
-    echo "       $0 monitor"
-    echo "       $0 crontab"
-    exit
-}
-
-start() {
-    arg=$1
-    if [ "$arg" = "" ];then
-        echo "No registry type! Default client.yml!"
-    else
-        export 
CONF_CONSUMER_FILE_PATH=${CONF_CONSUMER_FILE_PATH//\.yml/\_$arg\.yml}
-    fi
-    if [ ! -f "${CONF_CONSUMER_FILE_PATH}" ];then
-        echo $CONF_CONSUMER_FILE_PATH" is not existing!"
-        return
-    fi
-    APP_LOG_PATH=${PROJECT_HOME}"logs/"
-    mkdir -p ${APP_LOG_PATH}
-    APP_BIN=${PROJECT_HOME}sbin/${APP_NAME}
-    chmod u+x ${APP_BIN}
-    # CMD="nohup ${APP_BIN} ${APP_ARGS} >>${APP_NAME}.nohup.out 2>&1 &"
-    CMD="${APP_BIN}"
-    eval ${CMD}
-    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
-    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
-        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
-    fi
-    CUR=`date +%FT%T`
-    if [ "${PID}" != "" ]; then
-        for p in ${PID}
-        do
-            echo "start ${APP_NAME} ( pid =" ${p} ") at " ${CUR}
-        done
-    fi
-}
-
-stop() {
-    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
-    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
-        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
-    fi
-    if [ "${PID}" != "" ];
-    then
-        for ps in ${PID}
-        do
-            echo "kill -SIGINT ${APP_NAME} ( pid =" ${ps} ")"
-            kill -2 ${ps}
-        done
-    fi
-}
-
-
-term() {
-    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
-    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
-        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $1}'`
-    fi
-    if [ "${PID}" != "" ];
-    then
-        for ps in ${PID}
-        do
-            echo "kill -9 ${APP_NAME} ( pid =" ${ps} ")"
-            kill -9 ${ps}
-        done
-    fi
-}
-
-list() {
-    PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk 
'{printf("%s,%s,%s,%s\n", $1, $2, $9, $10)}'`
-    if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
-        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk 
'{printf("%s,%s,%s,%s,%s\n", $1, $4, $6, $7, $8)}'`
-    fi
-
-    if [ "${PID}" != "" ]; then
-        echo "list ${APP_NAME}"
-
-        if [[ ${OS_NAME} == "Linux" || ${OS_NAME} == "Darwin" ]]; then
-            echo "index: user, pid, start, duration"
-        else
-            echo "index: PID, WINPID, UID, STIME, COMMAND"
-        fi
-        idx=0
-        for ps in ${PID}
-        do
-            echo "${idx}: ${ps}"
-            ((idx ++))
-        done
-    fi
-}
-
-monitor() {
-    idx=0
-    while true; do
-        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
-        if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
-            PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print 
$1}'`
-        fi
-        if [[ "${PID}" == "" ]]; then
-            start
-            idx=0
-        fi
-
-        ((LIFE=idx*${SLEEP_INTERVAL}))
-        echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state 
for " $LIFE " seconds."
-        ((idx ++))
-        sleep ${SLEEP_INTERVAL}
-    done
-}
-
-crontab() {
-    idx=0
-    while true; do
-        PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print $2}'`
-        if [[ ${OS_NAME} != "Linux" && ${OS_NAME} != "Darwin" ]]; then
-            PID=`ps aux | grep -w ${APP_NAME} | grep -v grep | awk '{print 
$1}'`
-        fi
-        if [[ "${PID}" == "" ]]; then
-            start
-            idx=0
-        fi
-
-        ((LIFE=idx*${SLEEP_INTERVAL}))
-        echo "${APP_NAME} ( pid = " ${PID} ") has been working in normal state 
for " $LIFE " seconds."
-        ((idx ++))
-        sleep ${SLEEP_INTERVAL}
-        if [[ ${LIFE} -gt ${MAX_LIFETIME} ]]; then
-            kill -9 ${PID}
-        fi
-    done
-}
-
-opt=$1
-case C"$opt" in
-    Cstart)
-        start $2
-        ;;
-    Cstop)
-        stop
-        ;;
-    Cterm)
-        term
-        ;;
-    Crestart)
-        term
-        start $2
-        ;;
-    Clist)
-        list
-        ;;
-    Cmonitor)
-        monitor
-        ;;
-    Ccrontab)
-        crontab
-        ;;
-    C*)
-        usage
-        ;;
-esac
-
diff --git 
a/configcenter/zookeeper/dubbo/go-client/assembly/common/app.properties 
b/configcenter/zookeeper/dubbo/go-client/assembly/common/app.properties
deleted file mode 100644
index e10868f..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/common/app.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-export TARGET_EXEC_NAME="user_info_client"
-# BUILD_PACKAGE="dubbogo-examples/user-info/client/app"
-export BUILD_PACKAGE="app"
-
-export TARGET_CONF_FILE="conf/client.yml"
-export TARGET_LOG_CONF_FILE="conf/log.yml"
diff --git a/configcenter/zookeeper/dubbo/go-client/assembly/common/build.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/common/build.sh
deleted file mode 100644
index d38f889..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/common/build.sh
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-rm -rf target/
-
-PROJECT_HOME=`pwd`
-TARGET_FOLDER=${PROJECT_HOME}/target/${GOOS}
-
-TARGET_SBIN_NAME=${TARGET_EXEC_NAME}
-version=`cat app/version.go | grep Version | grep -v "Apache" | awk -F '=' 
'{print $2}' | awk -F '"' '{print $2}'`
-if [[ ${GOOS} == "windows" ]]; then
-    TARGET_SBIN_NAME=${TARGET_SBIN_NAME}.exe
-fi
-TARGET_NAME=${TARGET_FOLDER}/${TARGET_SBIN_NAME}
-if [[ $PROFILE == "dev" ||  $PROFILE == "test" ]]; then
-    # GFLAGS=-gcflags "-N -l" -race -x -v # -x会把go build的详细过程输出
-    # GFLAGS=-gcflags "-N -l" -race -v
-    # GFLAGS="-gcflags \"-N -l\" -v"
-    cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH GO111MODULE=on go build 
-gcflags "-N -l" -x -v -i -o ${TARGET_NAME} && cd -
-else
-    # -s去掉符号表(然后panic时候的stack trace就没有任何文件名/行号信息了,这个等价于普通C/C++程序被strip的效果),
-    # -w去掉DWARF调试信息,得到的程序就不能用gdb调试了。-s和-w也可以分开使用,一般来说如果不打算用gdb调试,
-    # -w基本没啥损失。-s的损失就有点大了。
-    cd ${BUILD_PACKAGE} && GOOS=$GOOS GOARCH=$GOARCH GO111MODULE=on go build 
-ldflags "-w" -x -v -i -o ${TARGET_NAME} && cd -
-fi
-
-TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
-
-mkdir -p ${TARGET_FOLDER}/${TAR_NAME}
-
-SBIN_DIR=${TARGET_FOLDER}/${TAR_NAME}/sbin
-BIN_DIR=${TARGET_FOLDER}/${TAR_NAME}
-CONF_DIR=${TARGET_FOLDER}/${TAR_NAME}/conf
-
-mkdir -p ${SBIN_DIR}
-mkdir -p ${CONF_DIR}
-
-mv ${TARGET_NAME} ${SBIN_DIR}
-cp -r assembly/bin ${BIN_DIR}
-cd ${BIN_DIR}/bin/ && mv load.sh load_${TARGET_EXEC_NAME}.sh && cd -
-
-platform=$(uname)
-# modify APPLICATION_NAME
-if [ ${platform} == "Darwin" ]; then
-    sed -i "" "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
-else
-    sed -i "s~APPLICATION_NAME~${TARGET_EXEC_NAME}~g" ${BIN_DIR}/bin/*
-fi
-
-# modify TARGET_CONF_FILE
-if [ ${platform} == "Darwin" ]; then
-    sed -i "" "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
-else
-    sed -i "s~TARGET_CONF_FILE~${TARGET_CONF_FILE}~g" ${BIN_DIR}/bin/*
-fi
-
-# modify TARGET_LOG_CONF_FILE
-if [ ${platform} == "Darwin" ]; then
-    sed -i "" "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" 
${BIN_DIR}/bin/*
-else
-    sed -i "s~TARGET_LOG_CONF_FILE~${TARGET_LOG_CONF_FILE}~g" ${BIN_DIR}/bin/*
-fi
-
-cp -r profiles/${PROFILE}/* ${CONF_DIR}
-
-cd ${TARGET_FOLDER}
-
-tar czf ${TAR_NAME}.tar.gz ${TAR_NAME}/*
-
diff --git a/configcenter/zookeeper/dubbo/go-client/assembly/linux/dev.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/linux/dev.sh
deleted file mode 100644
index eada737..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/linux/dev.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-
-set -e
-
-export GOOS=linux
-export GOARCH=amd64
-
-export PROFILE="dev"
-
-PROJECT_HOME=`pwd`
-
-if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
-  . ${PROJECT_HOME}/assembly/common/app.properties
-fi
-
-
-if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
-  sh ${PROJECT_HOME}/assembly/common/build.sh
-fi
diff --git a/configcenter/zookeeper/dubbo/go-client/assembly/linux/release.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/linux/release.sh
deleted file mode 100644
index 10eb3d7..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/linux/release.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-client/assembly/linux/test.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/linux/test.sh
deleted file mode 100644
index 78b650c..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/linux/test.sh
+++ /dev/null
@@ -1,35 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-client/assembly/mac/dev.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/mac/dev.sh
deleted file mode 100644
index c828476..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/mac/dev.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-client/assembly/mac/release.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/mac/release.sh
deleted file mode 100644
index 91c2dfe..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/mac/release.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-client/assembly/mac/test.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/mac/test.sh
deleted file mode 100644
index a7853f5..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/mac/test.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-client/assembly/windows/dev.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/windows/dev.sh
deleted file mode 100644
index 10a3866..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/windows/dev.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-
-set -e
-
-export GOOS=linux
-export GOARCH=amd64
-
-export PROFILE="dev"
-PROJECT_HOME=`pwd`
-
-if [ -f "${PROJECT_HOME}/assembly/common/app.properties" ]; then
-  . ${PROJECT_HOME}/assembly/common/app.properties
-fi
-
-if [ -f "${PROJECT_HOME}/assembly/common/build.sh" ]; then
-  sh ${PROJECT_HOME}/assembly/common/build.sh
-fi
diff --git a/configcenter/zookeeper/dubbo/go-client/assembly/windows/release.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/windows/release.sh
deleted file mode 100644
index 21af573..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/windows/release.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-client/assembly/windows/test.sh 
b/configcenter/zookeeper/dubbo/go-client/assembly/windows/test.sh
deleted file mode 100644
index 2104da8..0000000
--- a/configcenter/zookeeper/dubbo/go-client/assembly/windows/test.sh
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-client/profiles/dev/dubbo/config/user-info-client/dubbo.properties
 
b/configcenter/zookeeper/dubbo/go-client/profiles/dev/dubbo/config/user-info-client/dubbo.properties
deleted file mode 100644
index a7851e7..0000000
--- 
a/configcenter/zookeeper/dubbo/go-client/profiles/dev/dubbo/config/user-info-client/dubbo.properties
+++ /dev/null
@@ -1 +0,0 @@
-dubbo.service.com.ikurento.user.UserProvider.cluster=failover
\ No newline at end of file
diff --git a/configcenter/zookeeper/dubbo/go-server/assembly/bin/load.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/bin/load.sh
deleted file mode 100644
index 90077c2..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/bin/load.sh
+++ /dev/null
@@ -1,151 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/assembly/common/app.properties 
b/configcenter/zookeeper/dubbo/go-server/assembly/common/app.properties
deleted file mode 100644
index 1f0827e..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/common/app.properties
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT 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/configcenter/zookeeper/dubbo/go-server/assembly/common/build.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/common/build.sh
deleted file mode 100644
index d90d026..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/common/build.sh
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/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" -x -v -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" -x -v -i -o 
${TARGET_NAME} && cd -
-fi
-
-TAR_NAME=${TARGET_EXEC_NAME}-${version}-`date "+%Y%m%d-%H%M"`-${PROFILE}
-
-mkdir -p ${TARGET_FOLDER}/${TAR_NAME}
-
-SBIN_DIR=${TARGET_FOLDER}/${TAR_NAME}/sbin
-BIN_DIR=${TARGET_FOLDER}/${TAR_NAME}
-CONF_DIR=${TARGET_FOLDER}/${TAR_NAME}/conf
-
-mkdir -p ${SBIN_DIR}
-mkdir -p ${CONF_DIR}
-
-mv ${TARGET_NAME} ${SBIN_DIR}
-cp -r assembly/bin ${BIN_DIR}
-# 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/configcenter/zookeeper/dubbo/go-server/assembly/linux/dev.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/linux/dev.sh
deleted file mode 100644
index d830ac9..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/linux/dev.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/assembly/linux/release.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/linux/release.sh
deleted file mode 100644
index 9930380..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/linux/release.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/assembly/linux/test.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/linux/test.sh
deleted file mode 100644
index 87144bb..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/linux/test.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/assembly/mac/dev.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/mac/dev.sh
deleted file mode 100644
index 3a7659b..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/mac/dev.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/assembly/mac/release.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/mac/release.sh
deleted file mode 100644
index 1c4bce4..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/mac/release.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/assembly/mac/test.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/mac/test.sh
deleted file mode 100644
index 69206e3..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/mac/test.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/assembly/windows/dev.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/windows/dev.sh
deleted file mode 100644
index 011fb41..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/windows/dev.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/assembly/windows/release.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/windows/release.sh
deleted file mode 100644
index 679a26a..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/windows/release.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/assembly/windows/test.sh 
b/configcenter/zookeeper/dubbo/go-server/assembly/windows/test.sh
deleted file mode 100644
index 4a36de0..0000000
--- a/configcenter/zookeeper/dubbo/go-server/assembly/windows/test.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/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/configcenter/zookeeper/dubbo/go-server/profiles/dev/dubbo/config/user-info-server/dubbo.properties
 
b/configcenter/zookeeper/dubbo/go-server/profiles/dev/dubbo/config/user-info-server/dubbo.properties
deleted file mode 100644
index 54c19b1..0000000
--- 
a/configcenter/zookeeper/dubbo/go-server/profiles/dev/dubbo/config/user-info-server/dubbo.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-dubbo.service.com.ikurento.user.UserProvider.cluster=failback
-dubbo.service.com.ikurento.user.UserProvider.protocol=myDubbo
-dubbo.protocols.myDubbo.port=20000
-dubbo.protocols.myDubbo.name=dubbo
diff --git a/configcenter/zookeeper/dubbo/java-client/build.sh 
b/configcenter/zookeeper/dubbo/java-client/build.sh
deleted file mode 100644
index c869acf..0000000
--- a/configcenter/zookeeper/dubbo/java-client/build.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/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 src/main/resources/META-INF/spring/dubbo.consumer.xml
-# cp src/main/resources/META-INF/spring/dubbo-protocol.consumer.xml 
src/main/resources/META-INF/spring/dubbo.consumer.xml
-# cp src/main/resources/META-INF/spring/jsonrpc-protocol.consumer.xml 
src/main/resources/META-INF/spring/dubbo.consumer.xml
-mvn clean package -Dmaven.test.skip
diff --git a/configcenter/zookeeper/dubbo/java-client/pom.xml 
b/configcenter/zookeeper/dubbo/java-client/pom.xml
deleted file mode 100644
index 047df14..0000000
--- a/configcenter/zookeeper/dubbo/java-client/pom.xml
+++ /dev/null
@@ -1,205 +0,0 @@
-<?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
deleted file mode 100644
index bc00a06..0000000
--- a/configcenter/zookeeper/dubbo/java-client/src/main/assembly/assembly.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?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
deleted file mode 100644
index 330028c..0000000
--- 
a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/Consumer.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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/EmbeddedZooKeeper.java
 
b/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/EmbeddedZooKeeper.java
deleted file mode 100644
index fb99a0d..0000000
--- 
a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/EmbeddedZooKeeper.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright 2014 the original author or authors.
- *
- * 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 org.apache.zookeeper.server.ServerConfig;
-import org.apache.zookeeper.server.ZooKeeperServerMain;
-import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.SmartLifecycle;
-import org.springframework.util.ErrorHandler;
-import org.springframework.util.SocketUtils;
-
-import java.io.File;
-import java.lang.reflect.Method;
-import java.util.Properties;
-import java.util.UUID;
-
-/**
- * from: 
https://github.com/spring-projects/spring-xd/blob/v1.3.1.RELEASE/spring-xd-dirt/src/main/java/org/springframework/xd/dirt/zookeeper/ZooKeeperUtils.java
- * <p>
- * Helper class to start an embedded instance of standalone (non clustered) 
ZooKeeper.
- * <p>
- * NOTE: at least an external standalone server (if not an ensemble) are 
recommended, even for
- * {@link org.springframework.xd.dirt.server.singlenode.SingleNodeApplication}
- *
- * @author Patrick Peralta
- * @author Mark Fisher
- * @author David Turanski
- */
-public class EmbeddedZooKeeper implements SmartLifecycle {
-
-    /**
-     * Logger.
-     */
-    private static final Logger logger = 
LoggerFactory.getLogger(EmbeddedZooKeeper.class);
-
-    /**
-     * ZooKeeper client port. This will be determined dynamically upon startup.
-     */
-    private final int clientPort;
-
-    /**
-     * Whether to auto-start. Default is true.
-     */
-    private boolean autoStartup = true;
-
-    /**
-     * Lifecycle phase. Default is 0.
-     */
-    private int phase = 0;
-
-    /**
-     * Thread for running the ZooKeeper server.
-     */
-    private volatile Thread zkServerThread;
-
-    /**
-     * ZooKeeper server.
-     */
-    private volatile ZooKeeperServerMain zkServer;
-
-    /**
-     * {@link ErrorHandler} to be invoked if an Exception is thrown from the 
ZooKeeper server thread.
-     */
-    private ErrorHandler errorHandler;
-
-    private boolean daemon = true;
-
-    /**
-     * Construct an EmbeddedZooKeeper with a random port.
-     */
-    public EmbeddedZooKeeper() {
-        clientPort = SocketUtils.findAvailableTcpPort();
-    }
-
-    /**
-     * Construct an EmbeddedZooKeeper with the provided port.
-     *
-     * @param clientPort port for ZooKeeper server to bind to
-     */
-    public EmbeddedZooKeeper(int clientPort, boolean daemon) {
-        this.clientPort = clientPort;
-        this.daemon = daemon;
-    }
-
-    /**
-     * Returns the port that clients should use to connect to this embedded 
server.
-     *
-     * @return dynamically determined client port
-     */
-    public int getClientPort() {
-        return this.clientPort;
-    }
-
-    /**
-     * Specify whether to start automatically. Default is true.
-     *
-     * @param autoStartup whether to start automatically
-     */
-    public void setAutoStartup(boolean autoStartup) {
-        this.autoStartup = autoStartup;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean isAutoStartup() {
-        return this.autoStartup;
-    }
-
-    /**
-     * Specify the lifecycle phase for the embedded server.
-     *
-     * @param phase the lifecycle phase
-     */
-    public void setPhase(int phase) {
-        this.phase = phase;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public int getPhase() {
-        return this.phase;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean isRunning() {
-        return (zkServerThread != null);
-    }
-
-    /**
-     * Start the ZooKeeper server in a background thread.
-     * <p>
-     * Register an error handler via {@link #setErrorHandler} in order to 
handle
-     * any exceptions thrown during startup or execution.
-     */
-    @Override
-    public synchronized void start() {
-        if (zkServerThread == null) {
-            zkServerThread = new Thread(new ServerRunnable(), "ZooKeeper 
Server Starter");
-            zkServerThread.setDaemon(daemon);
-            zkServerThread.start();
-        }
-    }
-
-    /**
-     * Shutdown the ZooKeeper server.
-     */
-    @Override
-    public synchronized void stop() {
-        if (zkServerThread != null) {
-            // The shutdown method is protected...thus this hack to invoke it.
-            // This will log an exception on shutdown; see
-            // https://issues.apache.org/jira/browse/ZOOKEEPER-1873 for 
details.
-            try {
-                Method shutdown = 
ZooKeeperServerMain.class.getDeclaredMethod("shutdown");
-                shutdown.setAccessible(true);
-                shutdown.invoke(zkServer);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-
-            // It is expected that the thread will exit after
-            // the server is shutdown; this will block until
-            // the shutdown is complete.
-            try {
-                zkServerThread.join(5000);
-                zkServerThread = null;
-            } catch (InterruptedException e) {
-                Thread.currentThread().interrupt();
-                logger.warn("Interrupted while waiting for embedded ZooKeeper 
to exit");
-                // abandoning zk thread
-                zkServerThread = null;
-            }
-        }
-    }
-
-    /**
-     * Stop the server if running and invoke the callback when complete.
-     */
-    @Override
-    public void stop(Runnable callback) {
-        stop();
-        callback.run();
-    }
-
-    /**
-     * Provide an {@link ErrorHandler} to be invoked if an Exception is thrown 
from the ZooKeeper server thread. If none
-     * is provided, only error-level logging will occur.
-     *
-     * @param errorHandler the {@link ErrorHandler} to be invoked
-     */
-    public void setErrorHandler(ErrorHandler errorHandler) {
-        this.errorHandler = errorHandler;
-    }
-
-    /**
-     * Runnable implementation that starts the ZooKeeper server.
-     */
-    private class ServerRunnable implements Runnable {
-
-        @Override
-        public void run() {
-            try {
-                Properties properties = new Properties();
-                File file = new File(System.getProperty("java.io.tmpdir")
-                        + File.separator + UUID.randomUUID());
-                file.deleteOnExit();
-                properties.setProperty("dataDir", file.getAbsolutePath());
-                properties.setProperty("clientPort", 
String.valueOf(clientPort));
-
-                QuorumPeerConfig quorumPeerConfig = new QuorumPeerConfig();
-                quorumPeerConfig.parseProperties(properties);
-
-                zkServer = new ZooKeeperServerMain();
-                ServerConfig configuration = new ServerConfig();
-                configuration.readFrom(quorumPeerConfig);
-
-                zkServer.runFromConfig(configuration);
-            } catch (Exception e) {
-                if (errorHandler != null) {
-                    errorHandler.handleError(e);
-                } else {
-                    logger.error("Exception running embedded ZooKeeper", e);
-                }
-            }
-        }
-    }
-
-}
\ No newline at end of file
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
deleted file mode 100644
index 666e904..0000000
--- 
a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/User.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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
deleted file mode 100644
index 67a836a..0000000
--- 
a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/UserProvider.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * 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/java/com/ikurento/user/ZKTools.java
 
b/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/ZKTools.java
deleted file mode 100644
index 65059ec..0000000
--- 
a/configcenter/zookeeper/dubbo/java-client/src/main/java/com/ikurento/user/ZKTools.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.apache.curator.framework.CuratorFramework;
-import org.apache.curator.framework.CuratorFrameworkFactory;
-import org.apache.curator.retry.ExponentialBackoffRetry;
-
-public class ZKTools {
-    private static String zookeeperHost = 
System.getProperty("zookeeper.address", "127.0.0.1");
-    private static CuratorFramework client;
-
-    public static void main(String[] args) throws Exception {
-        generateDubboProperties();
-    }
-
-    public static void generateDubboProperties() {
-        client = CuratorFrameworkFactory.newClient(zookeeperHost + ":2181", 60 
* 1000, 60 * 1000,
-                new ExponentialBackoffRetry(1000, 3));
-        client.start();
-
-        generateDubboPropertiesForGlobal();
-        generateDubboPropertiesForConsumer();
-    }
-
-    public static void generateDubboPropertiesForGlobal() {
-        String str = "dubbo.registry.address=zookeeper://" + zookeeperHost + 
":2181\n" +
-//                "dubbo.metadata-report.address=zookeeper://" + zookeeperHost 
+ ":2181\n" +
-                "dubbo.protocol.port=-1\n" +
-//                "dubbo.registry.simplified=true\n"+
-                "";
-
-        System.out.println(str);
-
-        try {
-            String path = "/dubbo/config/dubbo/dubbo.properties";
-            if (client.checkExists().forPath(path) == null) {
-                client.create().creatingParentsIfNeeded().forPath(path);
-            }
-            setData(path, str);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public static void generateDubboPropertiesForConsumer() {
-        String str = "dubbo.consumer.timeout=6666\n" +
-                
"dubbo.reference.com.ikurento.user.UserProvider.cluster=failback";
-
-        System.out.println(str);
-
-        try {
-            String path = "/dubbo/config/user-info-client/dubbo.properties";
-            if (client.checkExists().forPath(path) == null) {
-                client.create().creatingParentsIfNeeded().forPath(path);
-            }
-            setData(path, str);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private static void createNode(String path) throws Exception {
-        client.create().forPath(path);
-    }
-
-    private static void deleteNode(String path) throws Exception {
-        client.delete().forPath(path);
-    }
-
-    private static void setData(String path, String data) throws Exception {
-        client.setData().forPath(path, data.getBytes());
-    }
-}
diff --git 
a/configcenter/zookeeper/dubbo/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml
 
b/configcenter/zookeeper/dubbo/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml
deleted file mode 100644
index 8aabb7e..0000000
--- 
a/configcenter/zookeeper/dubbo/java-client/src/main/resources/META-INF/spring/dubbo.consumer.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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-client" />
-       <dubbo:config-center address="zookeeper://127.0.0.1:2181"/>
-
-       <!-- 用dubbo协议在20880端口暴露服务 -->
-       <dubbo:protocol id="dubbo" name="dubbo" />
-       <dubbo:protocol id="jsonrpc" name="jsonrpc" />
-
-       <!-- 声明需要使用的服务接口 -->
-       <dubbo:reference registry="ikurento" check="false" id="userProvider" 
protocol="dubbo" interface="com.ikurento.user.UserProvider">
-               <!--<dubbo:parameter key="heartbeat" value="10000"/ -->
-    </dubbo:reference>
-</beans>
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
deleted file mode 100644
index 529f63e..0000000
--- 
a/configcenter/zookeeper/dubbo/java-client/src/main/resources/META-INF/spring/service.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?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-client/src/main/resources/log4j.properties 
b/configcenter/zookeeper/dubbo/java-client/src/main/resources/log4j.properties
deleted file mode 100644
index 06bcb34..0000000
--- 
a/configcenter/zookeeper/dubbo/java-client/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-## 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/zookeeper/dubbo/java-server/build.sh 
b/configcenter/zookeeper/dubbo/java-server/build.sh
deleted file mode 100644
index 7b5755b..0000000
--- a/configcenter/zookeeper/dubbo/java-server/build.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/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.
-
-# mvn dependency:sources
-mvn clean package -Dmaven.test.skip
-# mvn -X clean compile package -DskipTests=true
diff --git a/configcenter/zookeeper/dubbo/java-server/pom.xml 
b/configcenter/zookeeper/dubbo/java-server/pom.xml
deleted file mode 100644
index 310c617..0000000
--- a/configcenter/zookeeper/dubbo/java-server/pom.xml
+++ /dev/null
@@ -1,210 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
--->
-
-
-<project xmlns="http://maven.apache.org/POM/4.0.0";
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-    <modelVersion>4.0.0</modelVersion>
-
-    <groupId>com.ikurento</groupId>
-    <artifactId>user-info-server</artifactId>
-    <packaging>jar</packaging>
-    <version>0.2.0</version>
-    <description>The demo provider 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>
-        
<main-class>org.apache.dubbo.samples.configcenter.BasicProvider</main-class>
-    </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-server/script/debug.sh 
b/configcenter/zookeeper/dubbo/java-server/script/debug.sh
deleted file mode 100644
index 851957a..0000000
--- a/configcenter/zookeeper/dubbo/java-server/script/debug.sh
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env bash
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements.  See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License.  You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-
-# jdb -classpath 
/Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/*:/Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/
 com.alibaba.dubbo.container.Main
-jdb -classpath /Users/alex/tmp/us/conf:/Users/alex/tmp/us/lib/* -sourcepath 
/Users/alex/test/java/dubbo/2.5.4/dubbo-remoting/dubbo-remoting-api/src/main/java/:/Users/alex/tmp/java-server/src/main/java
 com.alibaba.dubbo.container.Main
-# jdb stop at com.alibaba.dubbo.remoting.exchange.codec.ExchangeCodec:76
-# run
-
diff --git 
a/configcenter/zookeeper/dubbo/java-server/src/main/assembly/assembly.xml 
b/configcenter/zookeeper/dubbo/java-server/src/main/assembly/assembly.xml
deleted file mode 100644
index 5ab3425..0000000
--- a/configcenter/zookeeper/dubbo/java-server/src/main/assembly/assembly.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?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/EmbeddedZooKeeper.java
 
b/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/EmbeddedZooKeeper.java
deleted file mode 100644
index fb99a0d..0000000
--- 
a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/EmbeddedZooKeeper.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * Copyright 2014 the original author or authors.
- *
- * 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 org.apache.zookeeper.server.ServerConfig;
-import org.apache.zookeeper.server.ZooKeeperServerMain;
-import org.apache.zookeeper.server.quorum.QuorumPeerConfig;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.SmartLifecycle;
-import org.springframework.util.ErrorHandler;
-import org.springframework.util.SocketUtils;
-
-import java.io.File;
-import java.lang.reflect.Method;
-import java.util.Properties;
-import java.util.UUID;
-
-/**
- * from: 
https://github.com/spring-projects/spring-xd/blob/v1.3.1.RELEASE/spring-xd-dirt/src/main/java/org/springframework/xd/dirt/zookeeper/ZooKeeperUtils.java
- * <p>
- * Helper class to start an embedded instance of standalone (non clustered) 
ZooKeeper.
- * <p>
- * NOTE: at least an external standalone server (if not an ensemble) are 
recommended, even for
- * {@link org.springframework.xd.dirt.server.singlenode.SingleNodeApplication}
- *
- * @author Patrick Peralta
- * @author Mark Fisher
- * @author David Turanski
- */
-public class EmbeddedZooKeeper implements SmartLifecycle {
-
-    /**
-     * Logger.
-     */
-    private static final Logger logger = 
LoggerFactory.getLogger(EmbeddedZooKeeper.class);
-
-    /**
-     * ZooKeeper client port. This will be determined dynamically upon startup.
-     */
-    private final int clientPort;
-
-    /**
-     * Whether to auto-start. Default is true.
-     */
-    private boolean autoStartup = true;
-
-    /**
-     * Lifecycle phase. Default is 0.
-     */
-    private int phase = 0;
-
-    /**
-     * Thread for running the ZooKeeper server.
-     */
-    private volatile Thread zkServerThread;
-
-    /**
-     * ZooKeeper server.
-     */
-    private volatile ZooKeeperServerMain zkServer;
-
-    /**
-     * {@link ErrorHandler} to be invoked if an Exception is thrown from the 
ZooKeeper server thread.
-     */
-    private ErrorHandler errorHandler;
-
-    private boolean daemon = true;
-
-    /**
-     * Construct an EmbeddedZooKeeper with a random port.
-     */
-    public EmbeddedZooKeeper() {
-        clientPort = SocketUtils.findAvailableTcpPort();
-    }
-
-    /**
-     * Construct an EmbeddedZooKeeper with the provided port.
-     *
-     * @param clientPort port for ZooKeeper server to bind to
-     */
-    public EmbeddedZooKeeper(int clientPort, boolean daemon) {
-        this.clientPort = clientPort;
-        this.daemon = daemon;
-    }
-
-    /**
-     * Returns the port that clients should use to connect to this embedded 
server.
-     *
-     * @return dynamically determined client port
-     */
-    public int getClientPort() {
-        return this.clientPort;
-    }
-
-    /**
-     * Specify whether to start automatically. Default is true.
-     *
-     * @param autoStartup whether to start automatically
-     */
-    public void setAutoStartup(boolean autoStartup) {
-        this.autoStartup = autoStartup;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean isAutoStartup() {
-        return this.autoStartup;
-    }
-
-    /**
-     * Specify the lifecycle phase for the embedded server.
-     *
-     * @param phase the lifecycle phase
-     */
-    public void setPhase(int phase) {
-        this.phase = phase;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public int getPhase() {
-        return this.phase;
-    }
-
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public boolean isRunning() {
-        return (zkServerThread != null);
-    }
-
-    /**
-     * Start the ZooKeeper server in a background thread.
-     * <p>
-     * Register an error handler via {@link #setErrorHandler} in order to 
handle
-     * any exceptions thrown during startup or execution.
-     */
-    @Override
-    public synchronized void start() {
-        if (zkServerThread == null) {
-            zkServerThread = new Thread(new ServerRunnable(), "ZooKeeper 
Server Starter");
-            zkServerThread.setDaemon(daemon);
-            zkServerThread.start();
-        }
-    }
-
-    /**
-     * Shutdown the ZooKeeper server.
-     */
-    @Override
-    public synchronized void stop() {
-        if (zkServerThread != null) {
-            // The shutdown method is protected...thus this hack to invoke it.
-            // This will log an exception on shutdown; see
-            // https://issues.apache.org/jira/browse/ZOOKEEPER-1873 for 
details.
-            try {
-                Method shutdown = 
ZooKeeperServerMain.class.getDeclaredMethod("shutdown");
-                shutdown.setAccessible(true);
-                shutdown.invoke(zkServer);
-            } catch (Exception e) {
-                throw new RuntimeException(e);
-            }
-
-            // It is expected that the thread will exit after
-            // the server is shutdown; this will block until
-            // the shutdown is complete.
-            try {
-                zkServerThread.join(5000);
-                zkServerThread = null;
-            } catch (InterruptedException e) {
-                Thread.currentThread().interrupt();
-                logger.warn("Interrupted while waiting for embedded ZooKeeper 
to exit");
-                // abandoning zk thread
-                zkServerThread = null;
-            }
-        }
-    }
-
-    /**
-     * Stop the server if running and invoke the callback when complete.
-     */
-    @Override
-    public void stop(Runnable callback) {
-        stop();
-        callback.run();
-    }
-
-    /**
-     * Provide an {@link ErrorHandler} to be invoked if an Exception is thrown 
from the ZooKeeper server thread. If none
-     * is provided, only error-level logging will occur.
-     *
-     * @param errorHandler the {@link ErrorHandler} to be invoked
-     */
-    public void setErrorHandler(ErrorHandler errorHandler) {
-        this.errorHandler = errorHandler;
-    }
-
-    /**
-     * Runnable implementation that starts the ZooKeeper server.
-     */
-    private class ServerRunnable implements Runnable {
-
-        @Override
-        public void run() {
-            try {
-                Properties properties = new Properties();
-                File file = new File(System.getProperty("java.io.tmpdir")
-                        + File.separator + UUID.randomUUID());
-                file.deleteOnExit();
-                properties.setProperty("dataDir", file.getAbsolutePath());
-                properties.setProperty("clientPort", 
String.valueOf(clientPort));
-
-                QuorumPeerConfig quorumPeerConfig = new QuorumPeerConfig();
-                quorumPeerConfig.parseProperties(properties);
-
-                zkServer = new ZooKeeperServerMain();
-                ServerConfig configuration = new ServerConfig();
-                configuration.readFrom(quorumPeerConfig);
-
-                zkServer.runFromConfig(configuration);
-            } catch (Exception e) {
-                if (errorHandler != null) {
-                    errorHandler.handleError(e);
-                } else {
-                    logger.error("Exception running embedded ZooKeeper", e);
-                }
-            }
-        }
-    }
-
-}
\ No newline at end of file
diff --git 
a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/Provider.java
 
b/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/Provider.java
deleted file mode 100644
index 2310bdc..0000000
--- 
a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/Provider.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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;
-
-import java.util.concurrent.CountDownLatch;
-
-public class Provider {
-
-    /**
-     * To get ipv6 address to work, add
-     * System.setProperty("java.net.preferIPv6Addresses", "true");
-     * before running your application.
-     */
-    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.provider.xml");
-        context.registerShutdownHook();
-        context.start();
-
-        System.out.println("dubbo service started");
-        new CountDownLatch(1).await();
-    }
-}
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
deleted file mode 100644
index fd2cafb..0000000
--- 
a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/User.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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/ZKTools.java
 
b/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/ZKTools.java
deleted file mode 100644
index 6ed90de..0000000
--- 
a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/ZKTools.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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.apache.curator.framework.CuratorFramework;
-import org.apache.curator.framework.CuratorFrameworkFactory;
-import org.apache.curator.retry.ExponentialBackoffRetry;
-
-public class ZKTools {
-    private static String zookeeperHost = 
System.getProperty("zookeeper.address", "127.0.0.1");
-    private static CuratorFramework client;
-
-    public static void main(String[] args) throws Exception {
-        generateDubboProperties();
-    }
-
-    public static void generateDubboProperties() {
-        client = CuratorFrameworkFactory.newClient(zookeeperHost + ":2181", 60 
* 1000, 60 * 1000,
-                new ExponentialBackoffRetry(1000, 3));
-        client.start();
-
-        generateDubboPropertiesForGlobal();
-        generateDubboPropertiesForApp();
-    }
-
-    public static void generateDubboPropertiesForGlobal() {
-        String str = "dubbo.registry.address=zookeeper://" + zookeeperHost + 
":2181\n" +
-//                "dubbo.metadata-report.address=zookeeper://" + zookeeperHost 
+ ":2181\n" +
-                "dubbo.protocol.port=-1\n" +
-//                "dubbo.registry.simplified=true\n"+
-                "";
-
-        System.out.println(str);
-
-        try {
-            String path = "/dubbo/config/dubbo/dubbo.properties";
-            if (client.checkExists().forPath(path) == null) {
-                client.create().creatingParentsIfNeeded().forPath(path);
-            }
-            setData(path, str);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    public static void generateDubboPropertiesForApp() {
-        String str = "dubbo.provider.timeout=6666\n" +
-                "dubbo.application.qos.port=33333\n" +
-                
"dubbo.service.com.ikurento.user.UserProvider.cluster=failback";
-
-        System.out.println(str);
-
-        try {
-            String path = "/dubbo/config/user-info-server/dubbo.properties";
-            if (client.checkExists().forPath(path) == null) {
-                client.create().creatingParentsIfNeeded().forPath(path);
-            }
-            setData(path, str);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
-
-    private static void createNode(String path) throws Exception {
-        client.create().forPath(path);
-    }
-
-    private static void deleteNode(String path) throws Exception {
-        client.delete().forPath(path);
-    }
-
-    private static void setData(String path, String data) throws Exception {
-        client.setData().forPath(path, data.getBytes());
-    }
-}
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
deleted file mode 100644
index 57f4eba..0000000
--- 
a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/impl/UserProviderImpl.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT 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
deleted file mode 100644
index ad57f83..0000000
--- 
a/configcenter/zookeeper/dubbo/java-server/src/main/resources/META-INF/spring/dubbo.provider.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?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
deleted file mode 100644
index 13c8049..0000000
--- 
a/configcenter/zookeeper/dubbo/java-server/src/main/resources/log4j.properties
+++ /dev/null
@@ -1,20 +0,0 @@
-## 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/zookeeper/dubbo/go-client/app/client.go 
b/configcenter/zookeeper/go-client/cmd/client.go
similarity index 64%
rename from configcenter/zookeeper/dubbo/go-client/app/client.go
rename to configcenter/zookeeper/go-client/cmd/client.go
index 5e73b0e..1f3ab6c 100644
--- a/configcenter/zookeeper/dubbo/go-client/app/client.go
+++ b/configcenter/zookeeper/go-client/cmd/client.go
@@ -19,75 +19,49 @@ package main
 
 import (
        "context"
-       "fmt"
        "os"
-       "os/signal"
-       "syscall"
        "time"
 )
 
 import (
+       hessian "github.com/apache/dubbo-go-hessian2"
+       "github.com/apache/dubbo-samples/golang/helloworld/go-client/pkg"
        "github.com/dubbogo/gost/log"
 )
 
 import (
-       hessian "github.com/apache/dubbo-go-hessian2"
-       "github.com/apache/dubbo-go/common/logger"
+       _ "github.com/apache/dubbo-go/cluster/cluster_impl"
+       _ "github.com/apache/dubbo-go/cluster/loadbalance"
        _ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
        "github.com/apache/dubbo-go/config"
+       _ "github.com/apache/dubbo-go/config_center/nacos"
+       _ "github.com/apache/dubbo-go/config_center/zookeeper"
+       _ "github.com/apache/dubbo-go/filter/filter_impl"
        _ "github.com/apache/dubbo-go/protocol/dubbo"
        _ "github.com/apache/dubbo-go/registry/protocol"
-
-       _ "github.com/apache/dubbo-go/filter/filter_impl"
-
-       _ "github.com/apache/dubbo-go/cluster/cluster_impl"
-       _ "github.com/apache/dubbo-go/cluster/loadbalance"
-       _ "github.com/apache/dubbo-go/config_center/zookeeper"
        _ "github.com/apache/dubbo-go/registry/zookeeper"
 )
 
-var (
-       survivalTimeout int = 10e9
-)
+var userProvider = new(pkg.UserProvider)
+
+func init() {
+       config.SetConsumerService(userProvider)
+       hessian.RegisterPOJO(&pkg.User{})
+}
 
-// they are necessary:
-//             export CONF_CONSUMER_FILE_PATH="xxx"
-//             export APP_LOG_CONF_FILE="xxx"
+// need to setup environment variable "CONF_CONSUMER_FILE_PATH" to 
"conf/client.yml" before run
 func main() {
-       hessian.RegisterPOJO(&User{})
+       hessian.RegisterPOJO(&pkg.User{})
        config.Load()
-       time.Sleep(1e9)
+       time.Sleep(3 * time.Second)
 
        gxlog.CInfo("\n\n\nstart to test dubbo")
-       user := &User{}
+       user := &pkg.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()
-}
-
-func initSignal() {
-       signals := make(chan os.Signal, 1)
-       // It is not possible to block SIGKILL or syscall.SIGSTOP
-       signal.Notify(signals, os.Interrupt, os.Kill, syscall.SIGHUP,
-               syscall.SIGQUIT, syscall.SIGTERM, syscall.SIGINT)
-       for {
-               sig := <-signals
-               logger.Infof("get signal %s", sig.String())
-               switch sig {
-               case syscall.SIGHUP:
-                       // reload()
-               default:
-                       time.AfterFunc(time.Duration(survivalTimeout), func() {
-                               logger.Warnf("app exit now by force...")
-                               os.Exit(1)
-                       })
-
-                       // The program exits normally or timeout forcibly exits.
-                       fmt.Println("app exit now...")
-                       return
-               }
-       }
 }
diff --git a/configcenter/zookeeper/dubbo/go-client/profiles/dev/client.yml 
b/configcenter/zookeeper/go-client/conf/client.yml
similarity index 53%
copy from configcenter/zookeeper/dubbo/go-client/profiles/dev/client.yml
copy to configcenter/zookeeper/go-client/conf/client.yml
index 69de2c0..380f010 100644
--- a/configcenter/zookeeper/dubbo/go-client/profiles/dev/client.yml
+++ b/configcenter/zookeeper/go-client/conf/client.yml
@@ -1,24 +1,52 @@
 # dubbo client yaml configure file
 
-# application config
-application:
-  name  : "user-info-client"
+check: true
+# client
+request_timeout: "3s"
+# connect timeout
+connect_timeout: "3s"
 
+# config center config
 config_center:
   protocol: "zookeeper"
   address: "127.0.0.1:2181"
 
+# application config
+application:
+  organization: "dubbo.io"
+  name: "UserInfoClient"
+  module: "dubbo-go user-info client"
+  version: "0.0.1"
+  environment: "dev"
+
+# registry config
+registries:
+  "demoZk":
+    protocol: "zookeeper"
+    timeout: "3s"
+    address: "127.0.0.1:2181"
+    username: ""
+    password: ""
+
+# reference config
 references:
   "UserProvider":
-    interface : "com.ikurento.user.UserProvider"
+    registry: "demoZk"
+    protocol: "dubbo"
+    interface: "org.apache.dubbo.UserProvider"
+    cluster: "failover"
+    methods:
+      - name: "GetUser"
+        retries: 3
 
+# protocol config
 protocol_conf:
   dubbo:
     reconnect_interval: 0
     connection_number: 1
     heartbeat_period: "5s"
     session_timeout: "180s"
-    pool_size: 4
+    pool_size: 64
     pool_ttl: 600
     getty_session_param:
       compress_encoding: false
diff --git a/configcenter/zookeeper/dubbo/go-client/profiles/dev/log.yml 
b/configcenter/zookeeper/go-client/conf/log.yml
similarity index 88%
rename from configcenter/zookeeper/dubbo/go-client/profiles/dev/log.yml
rename to configcenter/zookeeper/go-client/conf/log.yml
index 59fa427..d0400fe 100644
--- a/configcenter/zookeeper/dubbo/go-client/profiles/dev/log.yml
+++ b/configcenter/zookeeper/go-client/conf/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: "capital"
+  timeEncoder: "iso8601"
+  durationEncoder: "seconds"
+  callerEncoder: "short"
+  nameEncoder: ""
+
+outputPaths:
+  - "stderr"
+errorOutputPaths:
+  - "stderr"
+initialFields:
diff --git a/configcenter/zookeeper/dubbo/go-client/app/user.go 
b/configcenter/zookeeper/go-client/pkg/user.go
similarity index 60%
copy from configcenter/zookeeper/dubbo/go-client/app/user.go
copy to configcenter/zookeeper/go-client/pkg/user.go
index ff4486f..abcad09 100644
--- a/configcenter/zookeeper/dubbo/go-client/app/user.go
+++ b/configcenter/zookeeper/go-client/pkg/user.go
@@ -15,25 +15,17 @@
  * limitations under the License.
  */
 
-package main
+package pkg
 
 import (
        "context"
+       "github.com/apache/dubbo-go/common"
+       "github.com/apache/dubbo-go/protocol"
+       "github.com/apache/dubbo-go/remoting"
+       gxlog "github.com/dubbogo/gost/log"
        "time"
 )
 
-import (
-       hessian "github.com/apache/dubbo-go-hessian2"
-       "github.com/apache/dubbo-go/config"
-)
-
-var userProvider = new(UserProvider)
-
-func init() {
-       config.SetConsumerService(userProvider)
-       hessian.RegisterPOJO(&User{})
-}
-
 type User struct {
        Id   string
        Name string
@@ -43,12 +35,30 @@ type User struct {
 
 type UserProvider struct {
        GetUser func(ctx context.Context, req []interface{}, rsp *User) error
+       Ch      chan *User
 }
 
 func (u *UserProvider) Reference() string {
        return "UserProvider"
 }
 
+// to enable async call:
+// 1. need to implement AsyncCallbackService
+// 2. need to specify references -> UserProvider -> async in conf/client.yml
+func (u *UserProvider) CallBack(res common.CallbackResponse) {
+       gxlog.CInfo("CallBack res: %v", res)
+       if r, ok := res.(remoting.AsyncCallbackResponse); ok {
+               if reply, ok := r.Reply.(*remoting.Response); ok {
+                       if result, ok := reply.Result.(*protocol.RPCResult); ok 
{
+                               if user, ok := result.Rest.(*User); ok {
+                                       u.Ch <- user
+                               }
+                       }
+               }
+       }
+       u.Ch <- nil
+}
+
 func (User) JavaClassName() string {
-       return "com.ikurento.user.User"
+       return "org.apache.dubbo.User"
 }
diff --git a/configcenter/zookeeper/dubbo/go-server/app/server.go 
b/configcenter/zookeeper/go-server/cmd/server.go
similarity index 91%
rename from configcenter/zookeeper/dubbo/go-server/app/server.go
rename to configcenter/zookeeper/go-server/cmd/server.go
index 3cae749..6606c90 100644
--- a/configcenter/zookeeper/dubbo/go-server/app/server.go
+++ b/configcenter/zookeeper/go-server/cmd/server.go
@@ -27,6 +27,8 @@ import (
 
 import (
        hessian "github.com/apache/dubbo-go-hessian2"
+       "github.com/apache/dubbo-samples/golang/helloworld/go-server/pkg"
+
        _ "github.com/apache/dubbo-go/cluster/cluster_impl"
        _ "github.com/apache/dubbo-go/cluster/loadbalance"
        "github.com/apache/dubbo-go/common/logger"
@@ -43,12 +45,9 @@ var (
        survivalTimeout = int(3e9)
 )
 
-// they are necessary:
-//             export CONF_PROVIDER_FILE_PATH="xxx"
-//             export APP_LOG_CONF_FILE="xxx"
+// need to setup environment variable "CONF_PROVIDER_FILE_PATH" to 
"conf/server.yml" before run
 func main() {
-
-       hessian.RegisterPOJO(&User{})
+       hessian.RegisterPOJO(&pkg.User{})
        config.Load()
 
        initSignal()
diff --git a/configcenter/zookeeper/dubbo/go-client/profiles/dev/client.yml 
b/configcenter/zookeeper/go-server/conf/client.yml
similarity index 53%
rename from configcenter/zookeeper/dubbo/go-client/profiles/dev/client.yml
rename to configcenter/zookeeper/go-server/conf/client.yml
index 69de2c0..e65e379 100644
--- a/configcenter/zookeeper/dubbo/go-client/profiles/dev/client.yml
+++ b/configcenter/zookeeper/go-server/conf/client.yml
@@ -1,24 +1,52 @@
 # dubbo client yaml configure file
 
-# application config
-application:
-  name  : "user-info-client"
+check: true
+# client
+request_timeout : "3s"
+# connect timeout
+connect_timeout : "3s"
 
+# config center config
 config_center:
   protocol: "zookeeper"
   address: "127.0.0.1:2181"
 
+# application config
+application:
+  organization : "dubbo.io"
+  name  : "UserInfoTest"
+  module : "dubbo-go user-info client"
+  version : "0.0.1"
+  environment : "dev"
+
+# registry config
+registries :
+  "demoZk":
+    protocol: "zookeeper"
+    timeout    : "3s"
+    address: "127.0.0.1:2181"
+    username: ""
+    password: ""
+
+# reference config
 references:
   "UserProvider":
-    interface : "com.ikurento.user.UserProvider"
+    registry: "demoZk"
+    protocol : "dubbo"
+    interface : "org.apache.dubbo.UserProvider"
+    cluster: "failover"
+    methods :
+    - name: "GetUser"
+      retries: 3
 
+# protocol config
 protocol_conf:
   dubbo:
     reconnect_interval: 0
     connection_number: 1
     heartbeat_period: "5s"
     session_timeout: "180s"
-    pool_size: 4
+    pool_size: 64
     pool_ttl: 600
     getty_session_param:
       compress_encoding: false
diff --git a/configcenter/zookeeper/dubbo/go-server/profiles/dev/log.yml 
b/configcenter/zookeeper/go-server/conf/log.yml
similarity index 88%
rename from configcenter/zookeeper/dubbo/go-server/profiles/dev/log.yml
rename to configcenter/zookeeper/go-server/conf/log.yml
index 59fa427..d0400fe 100644
--- a/configcenter/zookeeper/dubbo/go-server/profiles/dev/log.yml
+++ b/configcenter/zookeeper/go-server/conf/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: "capital"
+  timeEncoder: "iso8601"
+  durationEncoder: "seconds"
+  callerEncoder: "short"
+  nameEncoder: ""
+
+outputPaths:
+  - "stderr"
+errorOutputPaths:
+  - "stderr"
+initialFields:
diff --git a/configcenter/zookeeper/dubbo/go-server/profiles/dev/server.yml 
b/configcenter/zookeeper/go-server/conf/server.yml
similarity index 60%
rename from configcenter/zookeeper/dubbo/go-server/profiles/dev/server.yml
rename to configcenter/zookeeper/go-server/conf/server.yml
index 4176cab..08afdff 100644
--- a/configcenter/zookeeper/dubbo/go-server/profiles/dev/server.yml
+++ b/configcenter/zookeeper/go-server/conf/server.yml
@@ -1,25 +1,44 @@
 # dubbo server yaml configure file
 
-
-# application config
-application:
-  name : "user-info-server"
-
-
+# config center config
 config_center:
   protocol: "zookeeper"
   address: "127.0.0.1:2181"
 
+# application config
+application:
+  organization : "dubbo.io"
+  name : "UserInfoServer"
+  module : "dubbo-go user-info server"
+  version : "0.0.1"
+  environment : "dev"
+
+# registry config
 registries :
   "demoZk":
     protocol: "zookeeper"
     timeout    : "3s"
     address: "127.0.0.1:2181"
 
+# service config
 services:
   "UserProvider":
     registry: "demoZk"
-    interface : "com.ikurento.user.UserProvider"
+    protocol : "dubbo"
+    interface : "org.apache.dubbo.UserProvider"
+    loadbalance: "random"
+    warmup: "100"
+    cluster: "failover"
+    methods:
+    - name: "GetUser"
+      retries: 1
+      loadbalance: "random"
+
+# protocol config
+protocols:
+  "dubbo":
+    name: "dubbo"
+    port: 20000
 
 protocol_conf:
   dubbo:
diff --git a/configcenter/zookeeper/docker/docker-compose.yaml 
b/configcenter/zookeeper/go-server/docker/docker-compose.yml
similarity index 52%
rename from configcenter/zookeeper/docker/docker-compose.yaml
rename to configcenter/zookeeper/go-server/docker/docker-compose.yml
index 4b7bd08..8724179 100644
--- a/configcenter/zookeeper/docker/docker-compose.yaml
+++ b/configcenter/zookeeper/go-server/docker/docker-compose.yml
@@ -1,8 +1,9 @@
-version: '3.1'
+version: '3'
 
 services:
-  zoo1:
+  zookeeper:
     image: zookeeper
-    container_name: zookeeper_1
     ports:
       - 2181:2181
+    restart: on-failure
+
diff --git a/configcenter/zookeeper/dubbo/go-server/app/user.go 
b/configcenter/zookeeper/go-server/pkg/user.go
similarity index 97%
rename from configcenter/zookeeper/dubbo/go-server/app/user.go
rename to configcenter/zookeeper/go-server/pkg/user.go
index 89fa126..37fcb25 100644
--- a/configcenter/zookeeper/dubbo/go-server/app/user.go
+++ b/configcenter/zookeeper/go-server/pkg/user.go
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-package main
+package pkg
 
 import (
        "context"
@@ -59,5 +59,5 @@ func (u *UserProvider) Reference() string {
 }
 
 func (u User) JavaClassName() string {
-       return "com.ikurento.user.User"
+       return "org.apache.dubbo.User"
 }
diff --git a/configcenter/zookeeper/dubbo/go-client/app/user.go 
b/configcenter/zookeeper/go-server/tests/integration/main_test.go
similarity index 68%
rename from configcenter/zookeeper/dubbo/go-client/app/user.go
rename to configcenter/zookeeper/go-server/tests/integration/main_test.go
index ff4486f..15b3e43 100644
--- a/configcenter/zookeeper/dubbo/go-client/app/user.go
+++ b/configcenter/zookeeper/go-server/tests/integration/main_test.go
@@ -1,3 +1,5 @@
+// +build integration
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one or more
  * contributor license agreements.  See the NOTICE file distributed with
@@ -15,23 +17,38 @@
  * limitations under the License.
  */
 
-package main
+package integration
 
 import (
-       "context"
-       "time"
+       hessian "github.com/apache/dubbo-go-hessian2"
+       "github.com/apache/dubbo-go/config"
+
+       _ "github.com/apache/dubbo-go/cluster/cluster_impl"
+       _ "github.com/apache/dubbo-go/cluster/loadbalance"
+       _ "github.com/apache/dubbo-go/common/proxy/proxy_factory"
+       _ "github.com/apache/dubbo-go/config_center/zookeeper"
+       _ "github.com/apache/dubbo-go/filter/filter_impl"
+       _ "github.com/apache/dubbo-go/protocol/dubbo"
+       _ "github.com/apache/dubbo-go/registry/protocol"
+       _ "github.com/apache/dubbo-go/registry/zookeeper"
 )
 
 import (
-       hessian "github.com/apache/dubbo-go-hessian2"
-       "github.com/apache/dubbo-go/config"
+       "context"
+       "os"
+       "testing"
+       "time"
 )
 
 var userProvider = new(UserProvider)
 
-func init() {
+func TestMain(m *testing.M) {
        config.SetConsumerService(userProvider)
        hessian.RegisterPOJO(&User{})
+       config.Load()
+       time.Sleep(3 * time.Second)
+
+       os.Exit(m.Run())
 }
 
 type User struct {
@@ -50,5 +67,5 @@ func (u *UserProvider) Reference() string {
 }
 
 func (User) JavaClassName() string {
-       return "com.ikurento.user.User"
+       return "org.apache.dubbo.User"
 }
diff --git 
a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
 b/configcenter/zookeeper/go-server/tests/integration/userprovider_test.go
similarity index 66%
rename from 
configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
rename to 
configcenter/zookeeper/go-server/tests/integration/userprovider_test.go
index b1eeab8..09b09c3 100644
--- 
a/configcenter/zookeeper/dubbo/java-server/src/main/java/com/ikurento/user/UserProvider.java
+++ b/configcenter/zookeeper/go-server/tests/integration/userprovider_test.go
@@ -1,24 +1,38 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.ikurento.user;
-
-public interface UserProvider {
-
-    User GetUser(String userId); // the first alpha is Upper case to 
compatible with golang.
-
-}
+// +build integration
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT 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 integration
+
+import (
+       "context"
+       "testing"
+)
+import (
+       "github.com/stretchr/testify/assert"
+)
+
+func TestGetUser(t *testing.T) {
+       user := &User{}
+       err := userProvider.GetUser(context.TODO(), []interface{}{"A001"}, user)
+       assert.Nil(t, err)
+       assert.Equal(t, "A001", user.Id)
+       assert.Equal(t, "Alex Stocks", user.Name)
+       assert.Equal(t, int32(18), user.Age)
+       assert.NotNil(t, user.Time)
+}

Reply via email to