You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2019/09/06 13:32:58 UTC

[dubbo] branch cloud-native updated (262bc7c -> 0dad829)

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

liujun pushed a change to branch cloud-native
in repository https://gitbox.apache.org/repos/asf/dubbo.git.


    from 262bc7c  Dubbo cloud native (#5008)
     new 1ade692  add service discovery related samples
     new 0946357  Merge branch 'cloud-native' of https://github.com/apache/dubbo into cloud-native
     new 50f8a51  grpc protocol
     new 0dad829  Merge remote-tracking branch 'origin/cloud-native' into cloud-native

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 dubbo-demo/dubbo-call-sc&dubbo/consumer/pom.xml    | 81 ----------------------
 .../samples/microservices/sc/Application.java      | 56 ---------------
 dubbo-demo/dubbo-call-sc/consumer/pom.xml          | 81 ----------------------
 .../samples/microservices/sc/Application.java      | 55 ---------------
 .../dubbo-sc-consumer}/pom.xml                     | 12 +++-
 .../apache/dubbo/demo/consumer/Application.java    |  9 +--
 .../dubbo/samples/microservices/sc/rest/User.java  |  4 --
 .../samples/microservices/sc/rest/UserService.java |  0
 .../microservices/sc/rest/UserServiceImpl.java     |  0
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-consumer.xml   | 63 +++++++++--------
 .../{provider => dubbo-sc-provider}/pom.xml        |  2 +-
 .../samples/microservices/sc/Application.java      |  0
 .../configuration/RestTemplateConfiguration.java   |  0
 .../microservices/sc/controller/MeController.java  |  0
 .../sc/controller/PropertyController.java          |  0
 .../sc/controller/TestController.java              |  1 +
 .../samples/microservices/sc/controller/User.java  |  0
 .../samples/microservices/sc/feign/TestFeign.java  |  0
 .../src/main/resources/application.yml             |  0
 .../src/main/resources/bootstrap.yml               |  3 +
 dubbo-demo/dubbo-call-sc/pom.xml                   |  4 +-
 .../provider/src/main/resources/bootstrap.yml      | 24 -------
 .../README.md                                      |  0
 .../dubbo-scdubbo-consumer}/pom.xml                | 29 ++++----
 .../apache/dubbo/demo/consumer/Application.java    |  7 ++
 .../dubbo/samples/microservices/sc/rest/User.java  |  4 --
 .../samples/microservices/sc/rest/UserService.java |  0
 .../microservices/sc/rest/UserServiceImpl.java     |  0
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-consumer.xml}  | 17 +++--
 .../dubbo-scdubbo-provider}/pom.xml                |  4 +-
 .../samples/microservices/sc/Application.java      |  0
 .../configuration/RestTemplateConfiguration.java   |  0
 .../microservices/sc/controller/MeController.java  |  0
 .../sc/controller/PropertyController.java          |  0
 .../sc/controller/TestController.java              |  9 ++-
 .../samples/microservices/sc/controller/User.java  |  0
 .../samples/microservices/sc/feign/TestFeign.java  |  0
 .../src/main/resources/application.yml             |  0
 .../src/main/resources/bootstrap.yml               | 26 +++++++
 .../dubbo-scdubbo-provider2}/pom.xml               |  4 +-
 .../apache/dubbo/demo/provider/Application.java    |  0
 .../dubbo/demo/provider/DemoServiceImpl.java       |  0
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-provider.xml   |  4 +-
 .../pom.xml                                        |  7 +-
 .../src/main/resources/spring/dubbo-consumer.xml   |  2 +-
 .../src/main/resources/spring/dubbo-provider.xml   |  2 +-
 dubbo-demo/pom.xml                                 |  8 +--
 .../com/bettercloud/spring/cloud/Application.java  | 15 ----
 .../configuration/RestTemplateConfiguration.java   | 17 -----
 .../spring/cloud/controller/ClientController.java  | 29 --------
 .../src/main/resources/application-holding.yml     |  3 -
 .../consumer/src/main/resources/application.yml    |  7 --
 .../consumer/src/main/resources/bootstrap.yml      | 26 -------
 dubbo-demo/sc-call-dubbo/pom.xml                   |  6 +-
 dubbo-demo/sc-call-dubbo/provider/pom.xml          | 33 ---------
 .../{consumer => sc-dubbo-consumer}/pom.xml        |  5 +-
 .../samples/microservices/sc/Application.java      |  0
 .../configuration/RestTemplateConfiguration.java   |  0
 .../microservices/sc/controller/MeController.java  |  0
 .../sc/controller/PropertyController.java          |  8 +--
 .../sc/controller/TestController.java              | 21 ++----
 .../samples/microservices/sc/controller/User.java  |  0
 .../samples/microservices/sc}/feign/TestFeign.java |  7 +-
 .../src/main/resources/application.yml             |  0
 .../src/main/resources/bootstrap.yml               | 26 +++++++
 .../sc-dubbo-provider}/pom.xml                     | 17 +++--
 .../apache/dubbo/demo/provider/Application.java    | 25 +++++--
 .../org/apache/dubbo/demo/provider}/rest/User.java |  6 +-
 .../dubbo/demo/provider}/rest/UserService.java     |  2 +-
 .../dubbo/demo/provider}/rest/UserServiceImpl.java |  2 +-
 .../src/main/resources/log4j.properties            |  0
 .../pom.xml                                        |  7 +-
 .../pom.xml                                        |  2 +-
 .../apache/dubbo/demo/consumer/Application.java    |  3 +
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-consumer.xml   | 61 ++++++++--------
 .../pom.xml                                        |  2 +-
 .../apache/dubbo/demo/consumer/Application.java    |  6 +-
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-consumer.xml   |  6 +-
 .../servicediscovery-transfer-provider}/pom.xml    |  4 +-
 .../apache/dubbo/demo/provider/Application.java    |  0
 .../dubbo/demo/provider/DemoServiceImpl.java       |  0
 .../dubbo/demo/provider/GreetingServiceImpl.java   |  0
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-provider.xml   | 11 ++-
 .../dubbo/rpc/protocol/grpc/GrpcProtocol.java      | 25 ++-----
 96 files changed, 278 insertions(+), 622 deletions(-)
 delete mode 100644 dubbo-demo/dubbo-call-sc&dubbo/consumer/pom.xml
 delete mode 100644 dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
 delete mode 100644 dubbo-demo/dubbo-call-sc/consumer/pom.xml
 delete mode 100644 dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
 copy dubbo-demo/{dubbo-demo-servicediscovery-xml/servicediscovery-consumer => dubbo-call-sc/dubbo-sc-consumer}/pom.xml (89%)
 copy dubbo-demo/{servicediscovery-transfer/servicediscovery-consumer => dubbo-call-sc/dubbo-sc-consumer}/src/main/java/org/apache/dubbo/demo/consumer/Application.java (78%)
 rename dubbo-demo/dubbo-call-sc/{consumer => dubbo-sc-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java (92%)
 rename dubbo-demo/dubbo-call-sc/{consumer => dubbo-sc-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java (100%)
 rename dubbo-demo/dubbo-call-sc/{consumer => dubbo-sc-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java (100%)
 copy dubbo-demo/{servicediscovery-transfer/servicediscovery-consumer => dubbo-call-sc/dubbo-sc-consumer}/src/main/resources/dubbo.properties (100%)
 copy dubbo-demo/{servicediscovery-transfer/servicediscovery-consumer => dubbo-call-sc/dubbo-sc-consumer}/src/main/resources/log4j.properties (100%)
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-consumer => dubbo-call-sc/dubbo-sc-consumer}/src/main/resources/spring/dubbo-consumer.xml (75%)
 rename dubbo-demo/dubbo-call-sc/{provider => dubbo-sc-provider}/pom.xml (98%)
 copy dubbo-demo/dubbo-call-sc/{provider => dubbo-sc-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java (100%)
 copy dubbo-demo/dubbo-call-sc/{provider => dubbo-sc-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java (100%)
 copy dubbo-demo/dubbo-call-sc/{provider => dubbo-sc-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java (100%)
 rename dubbo-demo/dubbo-call-sc/{provider => dubbo-sc-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java (100%)
 rename dubbo-demo/dubbo-call-sc/{provider => dubbo-sc-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java (99%)
 copy dubbo-demo/dubbo-call-sc/{provider => dubbo-sc-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java (100%)
 rename dubbo-demo/dubbo-call-sc/{provider => dubbo-sc-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java (100%)
 copy dubbo-demo/dubbo-call-sc/{provider => dubbo-sc-provider}/src/main/resources/application.yml (100%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/provider => dubbo-call-sc/dubbo-sc-provider}/src/main/resources/bootstrap.yml (82%)
 delete mode 100644 dubbo-demo/dubbo-call-sc/provider/src/main/resources/bootstrap.yml
 rename dubbo-demo/{dubbo-call-sc&dubbo => dubbo-call-scdubbo}/README.md (100%)
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-provider => dubbo-call-scdubbo/dubbo-scdubbo-consumer}/pom.xml (86%)
 copy dubbo-demo/{servicediscovery-transfer/servicediscovery-consumer => dubbo-call-scdubbo/dubbo-scdubbo-consumer}/src/main/java/org/apache/dubbo/demo/consumer/Application.java (81%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/consumer => dubbo-call-scdubbo/dubbo-scdubbo-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java (92%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/consumer => dubbo-call-scdubbo/dubbo-scdubbo-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java (100%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/consumer => dubbo-call-scdubbo/dubbo-scdubbo-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java (100%)
 copy dubbo-demo/{servicediscovery-transfer/servicediscovery-consumer => dubbo-call-scdubbo/dubbo-scdubbo-consumer}/src/main/resources/dubbo.properties (100%)
 copy dubbo-demo/{servicediscovery-transfer/servicediscovery-consumer => dubbo-call-scdubbo/dubbo-scdubbo-consumer}/src/main/resources/log4j.properties (100%)
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-provider/src/main/resources/spring/dubbo-provider.xml => dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/resources/spring/dubbo-consumer.xml} (63%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider}/pom.xml (96%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java (100%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java (100%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java (100%)
 copy dubbo-demo/{dubbo-call-sc&dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java (100%)
 copy dubbo-demo/{dubbo-call-sc&dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java (85%)
 copy dubbo-demo/{dubbo-call-sc/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java (100%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider}/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java (100%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider}/src/main/resources/application.yml (100%)
 create mode 100644 dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/resources/bootstrap.yml
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-provider => dubbo-call-scdubbo/dubbo-scdubbo-provider2}/pom.xml (97%)
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-provider => dubbo-call-scdubbo/dubbo-scdubbo-provider2}/src/main/java/org/apache/dubbo/demo/provider/Application.java (100%)
 copy dubbo-demo/{sc-call-dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider2}/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java (100%)
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-provider => dubbo-call-scdubbo/dubbo-scdubbo-provider2}/src/main/resources/dubbo.properties (100%)
 rename dubbo-demo/{sc-call-dubbo/provider => dubbo-call-scdubbo/dubbo-scdubbo-provider2}/src/main/resources/log4j.properties (100%)
 copy dubbo-demo/{dubbo-demo-servicediscovery-xml/servicediscovery-provider => dubbo-call-scdubbo/dubbo-scdubbo-provider2}/src/main/resources/spring/dubbo-provider.xml (95%)
 rename dubbo-demo/{dubbo-call-sc&dubbo => dubbo-call-scdubbo}/pom.xml (91%)
 delete mode 100644 dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/Application.java
 delete mode 100644 dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/configuration/RestTemplateConfiguration.java
 delete mode 100644 dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/controller/ClientController.java
 delete mode 100644 dubbo-demo/sc-call-dubbo/consumer/src/main/resources/application-holding.yml
 delete mode 100644 dubbo-demo/sc-call-dubbo/consumer/src/main/resources/application.yml
 delete mode 100644 dubbo-demo/sc-call-dubbo/consumer/src/main/resources/bootstrap.yml
 delete mode 100644 dubbo-demo/sc-call-dubbo/provider/pom.xml
 rename dubbo-demo/sc-call-dubbo/{consumer => sc-dubbo-consumer}/pom.xml (97%)
 rename dubbo-demo/{dubbo-call-sc/provider => sc-call-dubbo/sc-dubbo-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java (100%)
 rename dubbo-demo/{dubbo-call-sc/provider => sc-call-dubbo/sc-dubbo-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java (100%)
 rename dubbo-demo/{dubbo-call-sc/provider => sc-call-dubbo/sc-dubbo-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java (100%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/provider => sc-call-dubbo/sc-dubbo-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java (88%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/provider => sc-call-dubbo/sc-dubbo-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java (68%)
 rename dubbo-demo/{dubbo-call-sc/provider => sc-call-dubbo/sc-dubbo-consumer}/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java (100%)
 rename dubbo-demo/sc-call-dubbo/{consumer/src/main/java/com/bettercloud/spring/cloud => sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc}/feign/TestFeign.java (58%)
 rename dubbo-demo/{dubbo-call-sc/provider => sc-call-dubbo/sc-dubbo-consumer}/src/main/resources/application.yml (100%)
 create mode 100644 dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/resources/bootstrap.yml
 copy dubbo-demo/{dubbo-demo-annotation/dubbo-demo-annotation-provider => sc-call-dubbo/sc-dubbo-provider}/pom.xml (87%)
 rename dubbo-demo/sc-call-dubbo/{provider => sc-dubbo-provider}/src/main/java/org/apache/dubbo/demo/provider/Application.java (57%)
 copy {dubbo-bootstrap/src/test/java/org/apache/dubbo/bootstrap => dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider}/rest/User.java (90%)
 copy {dubbo-bootstrap/src/test/java/org/apache/dubbo/bootstrap => dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider}/rest/UserService.java (97%)
 copy {dubbo-bootstrap/src/test/java/org/apache/dubbo/bootstrap => dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider}/rest/UserServiceImpl.java (96%)
 rename dubbo-demo/{dubbo-call-sc/consumer => sc-call-dubbo/sc-dubbo-provider}/src/main/resources/log4j.properties (100%)
 copy dubbo-demo/{dubbo-demo-servicediscovery-xml => servicediscovery-transfer}/pom.xml (89%)
 copy dubbo-demo/servicediscovery-transfer/{servicediscovery-consumer => servicediscovery-transfer-consumer-old}/pom.xml (98%)
 copy dubbo-demo/servicediscovery-transfer/{servicediscovery-consumer => servicediscovery-transfer-consumer-old}/src/main/java/org/apache/dubbo/demo/consumer/Application.java (86%)
 copy dubbo-demo/servicediscovery-transfer/{servicediscovery-consumer => servicediscovery-transfer-consumer-old}/src/main/resources/dubbo.properties (100%)
 copy dubbo-demo/servicediscovery-transfer/{servicediscovery-consumer => servicediscovery-transfer-consumer-old}/src/main/resources/log4j.properties (100%)
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-consumer => servicediscovery-transfer/servicediscovery-transfer-consumer-old}/src/main/resources/spring/dubbo-consumer.xml (88%)
 rename dubbo-demo/servicediscovery-transfer/{servicediscovery-consumer => servicediscovery-transfer-consumer}/pom.xml (98%)
 rename dubbo-demo/servicediscovery-transfer/{servicediscovery-consumer => servicediscovery-transfer-consumer}/src/main/java/org/apache/dubbo/demo/consumer/Application.java (85%)
 rename dubbo-demo/servicediscovery-transfer/{servicediscovery-consumer => servicediscovery-transfer-consumer}/src/main/resources/dubbo.properties (100%)
 rename dubbo-demo/servicediscovery-transfer/{servicediscovery-consumer => servicediscovery-transfer-consumer}/src/main/resources/log4j.properties (100%)
 rename dubbo-demo/servicediscovery-transfer/{servicediscovery-consumer => servicediscovery-transfer-consumer}/src/main/resources/spring/dubbo-consumer.xml (87%)
 copy dubbo-demo/{dubbo-demo-servicediscovery-xml/servicediscovery-provider => servicediscovery-transfer/servicediscovery-transfer-provider}/pom.xml (96%)
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-provider => servicediscovery-transfer/servicediscovery-transfer-provider}/src/main/java/org/apache/dubbo/demo/provider/Application.java (100%)
 rename dubbo-demo/{sc-call-dubbo/provider => servicediscovery-transfer/servicediscovery-transfer-provider}/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java (100%)
 rename dubbo-demo/servicediscovery-transfer/{provider => servicediscovery-transfer-provider}/src/main/java/org/apache/dubbo/demo/provider/GreetingServiceImpl.java (100%)
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-provider => servicediscovery-transfer/servicediscovery-transfer-provider}/src/main/resources/dubbo.properties (100%)
 rename dubbo-demo/{dubbo-call-sc&dubbo/consumer => servicediscovery-transfer/servicediscovery-transfer-provider}/src/main/resources/log4j.properties (100%)
 copy dubbo-demo/{dubbo-demo-xml/dubbo-demo-xml-provider => servicediscovery-transfer/servicediscovery-transfer-provider}/src/main/resources/spring/dubbo-provider.xml (69%)


[dubbo] 03/04: grpc protocol

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch cloud-native
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 50f8a5127bb1eaf08c1c5f9ce7a102898027a55b
Author: ken.lj <ke...@gmail.com>
AuthorDate: Fri Sep 6 21:32:33 2019 +0800

    grpc protocol
---
 .../dubbo/rpc/protocol/grpc/GrpcProtocol.java      | 25 ++++++----------------
 1 file changed, 7 insertions(+), 18 deletions(-)

diff --git a/dubbo-rpc/dubbo-rpc-grpc/src/main/java/org/apache/dubbo/rpc/protocol/grpc/GrpcProtocol.java b/dubbo-rpc/dubbo-rpc-grpc/src/main/java/org/apache/dubbo/rpc/protocol/grpc/GrpcProtocol.java
index 5d78cf9..73fd804 100644
--- a/dubbo-rpc/dubbo-rpc-grpc/src/main/java/org/apache/dubbo/rpc/protocol/grpc/GrpcProtocol.java
+++ b/dubbo-rpc/dubbo-rpc-grpc/src/main/java/org/apache/dubbo/rpc/protocol/grpc/GrpcProtocol.java
@@ -54,15 +54,7 @@ public class GrpcProtocol extends AbstractProxyProtocol {
 
     private final Map<String, ManagedChannel> channelMap = new ConcurrentHashMap<>();
 
-    /**
-     * 传进来的impl implements DubboInterface, DubboInterface包含特定的3个通用方法就可以了
-     * @param impl
-     * @param type
-     * @param url
-     * @param <T>
-     * @return
-     * @throws RpcException
-     */
+
     @Override
     protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {
         String key = url.getAddress();
@@ -86,14 +78,6 @@ public class GrpcProtocol extends AbstractProxyProtocol {
         return super.export(new GrpcInvoker<>(invoker));
     }
 
-    /**
-     * 这里返回的impl必须要有所有的方法, Stub BlockingStube FutureStub
-     * @param type
-     * @param url
-     * @param <T>
-     * @return
-     * @throws RpcException
-     */
     @Override
     protected <T> T doRefer(Class<T> type, URL url) throws RpcException {
         Class<?> enclosingClass = type.getEnclosingClass();
@@ -130,7 +114,8 @@ public class GrpcProtocol extends AbstractProxyProtocol {
 
     @Override
     public void destroy() {
-        // FIXME
+        serverMap.values().forEach(GrpcServer::stop);
+        channelMap.values().forEach(ManagedChannel::shutdown);
     }
 
     private class GrpcServer {
@@ -154,6 +139,10 @@ public class GrpcProtocol extends AbstractProxyProtocol {
         public DubboHandlerRegistry getRegistry() {
             return registry;
         }
+
+        public void stop() {
+            this.server.shutdown();
+        }
     }
 
     private class GrpcInvoker<T> implements Invoker<T> {


[dubbo] 02/04: Merge branch 'cloud-native' of https://github.com/apache/dubbo into cloud-native

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch cloud-native
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 09463577c85bdd3202604972b83c0027ca50454f
Merge: 1ade692 374899c
Author: ken.lj <ke...@gmail.com>
AuthorDate: Thu Aug 29 09:25:16 2019 +0800

    Merge branch 'cloud-native' of https://github.com/apache/dubbo into cloud-native

 .gitignore                                         |    6 +-
 LICENSE                                            |    3 +
 NOTICE                                             |   10 +
 dubbo-all/pom.xml                                  |    8 +
 dubbo-bom/pom.xml                                  |    5 +
 .../dubbo-demo-xml/dubbo-demo-xml-consumer/pom.xml |    4 +
 dubbo-demo/dubbo-demo-xml/pom.xml                  |    8 +
 dubbo-dependencies-bom/pom.xml                     |   17 +
 dubbo-distribution/src/assembly/source-release.xml |    1 +
 .../.gradle/4.3/fileChanges/last-build.bin         |  Bin 0 -> 1 bytes
 .../4.3/fileContent/annotation-processors.bin      |  Bin 0 -> 19793 bytes
 .../.gradle/4.3/fileContent/fileContent.lock       |  Bin 0 -> 17 bytes
 .../compiler/.gradle/4.3/fileHashes/fileHashes.bin |  Bin 0 -> 523091 bytes
 .../.gradle/4.3/fileHashes/fileHashes.lock         |  Bin 0 -> 17 bytes
 .../.gradle/4.3/fileHashes/resourceHashesCache.bin |  Bin 0 -> 193707 bytes
 .../.gradle/4.3/nativeCompile/nativeCompile.bin    |  Bin 0 -> 18497 bytes
 .../.gradle/4.3/nativeCompile/nativeCompile.lock   |  Bin 0 -> 17 bytes
 .../.gradle/4.3/taskHistory/taskHistory.bin        |  Bin 0 -> 5498488 bytes
 .../.gradle/4.3/taskHistory/taskHistory.lock       |  Bin 0 -> 17 bytes
 .../.gradle/4.9/fileChanges/last-build.bin         |  Bin 0 -> 1 bytes
 .../4.9/fileContent/annotation-processors.bin      |  Bin 0 -> 19064 bytes
 .../.gradle/4.9/fileContent/fileContent.lock       |  Bin 0 -> 17 bytes
 .../.gradle/4.9/fileContent/parsedCSource.bin      |  Bin 0 -> 4542342 bytes
 .../compiler/.gradle/4.9/fileHashes/fileHashes.bin |  Bin 0 -> 882335 bytes
 .../.gradle/4.9/fileHashes/fileHashes.lock         |  Bin 0 -> 17 bytes
 .../.gradle/4.9/fileHashes/resourceHashesCache.bin |  Bin 0 -> 397477 bytes
 .../.gradle/4.9/nativeCompile/nativeCompile.bin    |  Bin 0 -> 50817 bytes
 .../.gradle/4.9/nativeCompile/nativeCompile.lock   |  Bin 0 -> 17 bytes
 .../.gradle/4.9/taskHistory/taskHistory.bin        |  Bin 0 -> 12054698 bytes
 .../.gradle/4.9/taskHistory/taskHistory.lock       |  Bin 0 -> 17 bytes
 .../buildOutputCleanup/buildOutputCleanup.lock     |  Bin 0 -> 17 bytes
 .../.gradle/buildOutputCleanup/cache.properties    |    2 +
 .../.gradle/buildOutputCleanup/outputFiles.bin     |  Bin 0 -> 57533 bytes
 .../compiler/.gradle/vcsWorkingDirs/gc.properties  |    0
 dubbo-rpc/dubbo-rpc-grpc/compiler/BUILD.bazel      |   12 +
 dubbo-rpc/dubbo-rpc-grpc/compiler/README.md        |  171 +++
 dubbo-rpc/dubbo-rpc-grpc/compiler/build.gradle     |  405 +++++
 .../dubbo-rpc-grpc/compiler/check-artifact.sh      |  131 ++
 .../gradle/wrapper/gradle-wrapper.properties       |    5 +
 dubbo-rpc/dubbo-rpc-grpc/compiler/gradlew          |  172 +++
 dubbo-rpc/dubbo-rpc-grpc/compiler/gradlew.bat      |   84 ++
 .../src/java_plugin/cpp/java_generator.cpp         | 1553 ++++++++++++++++++++
 .../compiler/src/java_plugin/cpp/java_generator.h  |   57 +
 .../compiler/src/java_plugin/cpp/java_plugin.cpp   |   70 +
 .../src/test/golden/TestDeprecatedService.java.txt |  316 ++++
 .../compiler/src/test/golden/TestService.java.txt  |  665 +++++++++
 .../test/proto/grpc/testing/compiler/test.proto    |   83 ++
 .../testLite/golden/TestDeprecatedService.java.txt |  279 ++++
 .../src/testLite/golden/TestService.java.txt       |  623 ++++++++
 .../testNano/golden/TestDeprecatedService.java.txt |  305 ++++
 .../src/testNano/golden/TestService.java.txt       |  664 +++++++++
 dubbo-rpc/{ => dubbo-rpc-grpc}/pom.xml             |   56 +-
 .../rpc/protocol/grpc/DubboHandlerRegistry.java    |   70 +
 .../dubbo/rpc/protocol/grpc/GrpcProtocol.java      |  200 +++
 .../dubbo/internal/org.apache.dubbo.rpc.Protocol   |    1 +
 dubbo-rpc/pom.xml                                  |    1 +
 pom.xml                                            |   24 +-
 57 files changed, 5976 insertions(+), 35 deletions(-)


[dubbo] 04/04: Merge remote-tracking branch 'origin/cloud-native' into cloud-native

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch cloud-native
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 0dad8290ea7e95500db4a2255a23c2d335dde78a
Merge: 50f8a51 262bc7c
Author: ken.lj <ke...@gmail.com>
AuthorDate: Fri Sep 6 21:32:42 2019 +0800

    Merge remote-tracking branch 'origin/cloud-native' into cloud-native

 dubbo-all/pom.xml                                  |  76 +++++++--
 dubbo-bootstrap/pom.xml                            |   7 +
 .../org/apache/dubbo/bootstrap/DubboBootstrap.java |  22 +++
 .../EtcdDubboServiceConsumerBootstrap.java         |   2 +-
 .../EtcdDubboServiceProviderBootstrap.java         |   6 +-
 .../NacosDubboServiceConsumerBootstrap.java        |   3 +
 .../ZookeeperDubboServiceProviderBootstrap.java    |   2 +-
 .../configcenter/AbstractDynamicConfiguration.java |  18 +-
 .../AbstractDynamicConfigurationFactory.java       |   5 +-
 .../config/configcenter/ConfigChangedEvent.java    |  26 +--
 .../file/FileSystemDynamicConfiguration.java       |   4 +-
 .../dubbo/common/lang/ShutdownHookCallbacks.java   |   2 +-
 .../org/apache/dubbo/common/utils/UrlUtils.java    |  30 +++-
 .../common/config/InmemoryConfigurationTest.java   |  21 ++-
 .../AbstractDynamicConfigurationFactoryTest.java   |  52 ++++++
 .../AbstractDynamicConfigurationTest.java          | 167 +++++++++++++++++++
 .../config/configcenter/ConfigChangeTypeTest.java  |  30 ++--
 .../configcenter/ConfigChangedEventTest.java       |  71 ++++++++
 .../FileSystemDynamicConfigurationFactoryTest.java |  40 +++++
 .../file/FileSystemDynamicConfigurationTest.java   |  11 +-
 .../extension/AdaptiveClassCodeGeneratorTest.java  |  48 ++++++
 .../common/extension/ExtensionLoaderTest.java      | 133 ++++++++-------
 .../ThrowableActionTest.java}                      |  18 +-
 .../ThrowableConsumerTest.java}                    |  18 +-
 .../ThrowableFunctionTest.java}                    |  18 +-
 ...sTest.java => DefaultShutdownHookCallback.java} |  15 +-
 .../apache/dubbo/common/lang/PrioritizedTest.java  |   2 +-
 .../common/lang/ShutdownHookCallbacksTest.java     |  32 ++++
 .../DefaultCharSequence.java}                      |  26 ++-
 .../dubbo/common/utils/DubboServiceLoaderTest.java |  32 ++--
 .../META-INF/services/java.lang.CharSequence       |   3 +
 ...g.apache.dubbo.common.lang.ShutdownHookCallback |   1 +
 .../extension/adaptive/HasAdaptiveExt$Adaptive     |  12 ++
 .../dubbo/config/AbstractInterfaceConfig.java      |   7 +-
 .../metadata/ServiceInstancePortCustomizer.java    |   3 +-
 .../event/DubboServiceDestroyedEventTest.java      |  58 +++++++
 .../DubboShutdownHookRegisteredEventTest.java      |  59 +++++++
 .../DubboShutdownHookUnregisteredEventTest.java    |  60 +++++++
 .../event/ReferenceConfigDestroyedEventTest.java   |  65 ++++++++
 .../event/ReferenceConfigInitializedEventTest.java |  59 +++++++
 .../ConfigurableMetadataServiceExporterTest.java   |   2 +-
 .../ServiceInstancePortCustomizerTest.java         |  60 +++++++
 .../context/annotation/EnableDubboLifecycle.java   |   3 +-
 .../annotation/EnableDubboLifecycleTest.java}      |  45 +++--
 .../spring/context/annotation/MyLifecycle.java}    |  54 ++++--
 .../org.apache.dubbo.common.context.Lifecycle      |   1 +
 dubbo-dependencies-bom/pom.xml                     |   2 +-
 .../dubbo-dependencies-zookeeper/pom.xml           |   2 +-
 .../store/InMemoryWritableMetadataService.java     |  52 +++++-
 .../store/RemoteWritableMetadataService.java       |  30 ++--
 .../RemoteWritableMetadataServiceDelegate.java     |  14 +-
 .../store/InMemoryWritableMetadataServiceTest.java |  79 +++++++++
 .../store/RemoteWritableMeatadataServiceTest.java  |  88 ++++++++--
 .../RemoteWritableMetadataServiceDelegateTest.java | 182 +++++++++++++++++++++
 .../metadata/test/JTestMetadataReport4Test.java    |  13 +-
 .../metadata/store/etcd/EtcdMetadataReport.java    |   6 +-
 .../store/etcd/EtcdMetadataReportTest.java         | 125 +++++++++++++-
 .../zookeeper/ZookeeperMetadataReportTest.java     | 118 +++++++++++++
 .../metadata/proxy/RemoteMetadataServiceProxy.java |  17 +-
 .../dubbo/registry/etcd/EtcdServiceDiscovery.java  |  12 +-
 .../registry/etcd/EtcdServiceDiscoveryTest.java    | 108 ++++++++++++
 pom.xml                                            |   2 +-
 62 files changed, 2026 insertions(+), 253 deletions(-)


[dubbo] 01/04: add service discovery related samples

Posted by li...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

liujun pushed a commit to branch cloud-native
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit 1ade69248c0a6ab83053e4751142a495cfcd35e2
Author: ken.lj <ke...@gmail.com>
AuthorDate: Wed Aug 28 17:24:06 2019 +0800

    add service discovery related samples
---
 .../samples/microservices/sc/Application.java      | 56 ---------------
 .../provider/src/main/resources/bootstrap.yml      | 24 -------
 dubbo-demo/dubbo-call-sc/consumer/pom.xml          | 81 ----------------------
 .../samples/microservices/sc/Application.java      | 55 ---------------
 .../dubbo-sc-consumer}/pom.xml                     | 12 +++-
 .../apache/dubbo/demo/consumer/Application.java    |  9 +--
 .../dubbo/samples/microservices/sc/rest/User.java  |  4 --
 .../samples/microservices/sc/rest/UserService.java |  0
 .../microservices/sc/rest/UserServiceImpl.java     |  0
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-consumer.xml   |  9 ++-
 .../{provider => dubbo-sc-provider}/pom.xml        |  2 +-
 .../samples/microservices/sc/Application.java      |  0
 .../configuration/RestTemplateConfiguration.java   |  0
 .../microservices/sc/controller/MeController.java  |  0
 .../sc/controller/PropertyController.java          |  0
 .../sc/controller/TestController.java              |  1 +
 .../samples/microservices/sc/controller/User.java  |  0
 .../samples/microservices/sc/feign/TestFeign.java  |  0
 .../src/main/resources/application.yml             |  0
 .../src/main/resources/bootstrap.yml               |  3 +
 dubbo-demo/dubbo-call-sc/pom.xml                   |  4 +-
 .../README.md                                      |  0
 .../dubbo-scdubbo-consumer}/pom.xml                | 16 ++++-
 .../apache/dubbo/demo/consumer/Application.java    |  7 ++
 .../dubbo/samples/microservices/sc/rest/User.java  |  4 --
 .../samples/microservices/sc/rest/UserService.java |  0
 .../microservices/sc/rest/UserServiceImpl.java     |  0
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-consumer.xml}  | 17 +++--
 .../dubbo-scdubbo-provider}/pom.xml                |  4 +-
 .../samples/microservices/sc/Application.java      |  0
 .../configuration/RestTemplateConfiguration.java   |  0
 .../microservices/sc/controller/MeController.java  |  0
 .../sc/controller/PropertyController.java          |  0
 .../sc/controller/TestController.java              |  9 ++-
 .../samples/microservices/sc/controller/User.java  |  0
 .../samples/microservices/sc/feign/TestFeign.java  |  0
 .../src/main/resources/application.yml             |  0
 .../src/main/resources/bootstrap.yml               | 26 +++++++
 .../dubbo-scdubbo-provider2}/pom.xml               | 25 +++++--
 .../apache/dubbo/demo/provider}/Application.java   | 12 ++--
 .../dubbo/demo/provider/DemoServiceImpl.java       |  0
 .../src/main/resources/dubbo.properties            |  1 +
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-provider.xml   |  4 +-
 .../pom.xml                                        |  7 +-
 .../src/main/resources/spring/dubbo-consumer.xml   |  2 +-
 .../src/main/resources/spring/dubbo-provider.xml   |  2 +-
 dubbo-demo/pom.xml                                 |  8 +--
 .../com/bettercloud/spring/cloud/Application.java  | 15 ----
 .../configuration/RestTemplateConfiguration.java   | 17 -----
 .../spring/cloud/controller/ClientController.java  | 29 --------
 .../src/main/resources/application-holding.yml     |  3 -
 .../consumer/src/main/resources/application.yml    |  7 --
 .../consumer/src/main/resources/bootstrap.yml      | 26 -------
 dubbo-demo/sc-call-dubbo/pom.xml                   |  6 +-
 .../{consumer => sc-dubbo-consumer}/pom.xml        |  5 +-
 .../samples/microservices/sc/Application.java      |  0
 .../configuration/RestTemplateConfiguration.java   |  0
 .../microservices/sc/controller/MeController.java  |  0
 .../sc/controller/PropertyController.java          |  8 +--
 .../sc/controller/TestController.java              | 21 ++----
 .../samples/microservices/sc/controller/User.java  |  0
 .../samples/microservices/sc}/feign/TestFeign.java |  7 +-
 .../src/main/resources/application.yml             |  0
 .../src/main/resources/bootstrap.yml               | 26 +++++++
 .../sc-dubbo-provider}/pom.xml                     | 60 ++++++++++++----
 .../apache/dubbo/demo/provider/Application.java    | 25 +++++--
 .../org/apache/dubbo/demo/provider}/rest/User.java |  6 +-
 .../dubbo/demo/provider}/rest/UserService.java     |  2 +-
 .../dubbo/demo/provider}/rest/UserServiceImpl.java |  2 +-
 .../src/main/resources/log4j.properties            |  0
 .../provider => servicediscovery-transfer}/pom.xml | 33 ++++++++-
 .../pom.xml                                        |  2 +-
 .../apache/dubbo/demo/consumer/Application.java    |  3 +
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-consumer.xml   |  5 +-
 .../pom.xml                                        |  2 +-
 .../apache/dubbo/demo/consumer/Application.java    |  6 +-
 .../src/main/resources/dubbo.properties            |  0
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-consumer.xml   |  6 +-
 .../pom.xml                                        | 23 ++++--
 .../apache/dubbo/demo/provider}/Application.java   | 12 ++--
 .../dubbo/demo/provider/DemoServiceImpl.java       |  0
 .../dubbo/demo/provider/GreetingServiceImpl.java   |  0
 .../src/main/resources/dubbo.properties            |  1 +
 .../src/main/resources/log4j.properties            |  0
 .../src/main/resources/spring/dubbo-provider.xml   | 11 ++-
 93 files changed, 321 insertions(+), 452 deletions(-)

diff --git a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java b/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
deleted file mode 100644
index 4164f60..0000000
--- a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
+++ /dev/null
@@ -1,56 +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 org.apache.dubbo.samples.microservices.sc;
-
-import org.apache.dubbo.bootstrap.DubboBootstrap;
-import org.apache.dubbo.config.ApplicationConfig;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.config.context.ConfigManager;
-import org.apache.dubbo.samples.microservices.sc.rest.UserService;
-
-public class Application {
-    public static void main(String[] args) {
-        RegistryConfig interfaceRegistry = new RegistryConfig();
-        interfaceRegistry.setId("interfaceRegistry");
-        interfaceRegistry.setAddress("zookeeper://127.0.0.1:2181");
-
-        new DubboBootstrap()
-                .application("dubbo-consumer-demo")
-                // Zookeeper
-                .registry(interfaceRegistry)
-                // Nacos
-//                .registry("consul", builder -> builder.address("consul://127.0.0.1:8500?registry.type=service&subscribed.services=dubbo-provider-demo"))
-                .reference("user", builder -> builder.interfaceClass(UserService.class).protocol("rest"))
-                .onlyRegisterProvider(true)
-                .start()
-                .await();
-
-        ConfigManager configManager = ConfigManager.getInstance();
-
-        ReferenceConfig<UserService> referenceConfig1 = configManager.getReferenceConfig("user");
-        UserService userService = referenceConfig1.get();
-
-        for (int i = 0; i < 500; i++) {
-            Thread.sleep(2000L);
-            System.out.println(echoService.echo("Hello,World"));
-            System.out.println(userService.getUser(1L));
-        }
-    }
-}
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/resources/bootstrap.yml b/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/resources/bootstrap.yml
deleted file mode 100644
index cabb49f..0000000
--- a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,24 +0,0 @@
-server:
-  port: 8099
-
-spring:
-  application:
-    name: spring-cloud-provider-for-dubbo
-  cloud:
-    consul:
-      host: localhost
-      port: 8500
-      enabled: true
-      discovery:
-        instance-id: ${spring.application.name}:${random.value}
-        service-name: ${spring.application.name}
-      config:
-        format: yaml
-        prefix: config
-        defaultContext: application
-        data-key: data
-        profileSeparator: '-'
-
-management:
-  security:
-    enabled: false
\ No newline at end of file
diff --git a/dubbo-demo/dubbo-call-sc/consumer/pom.xml b/dubbo-demo/dubbo-call-sc/consumer/pom.xml
deleted file mode 100644
index f1d9dfd..0000000
--- a/dubbo-demo/dubbo-call-sc/consumer/pom.xml
+++ /dev/null
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one
-  ~ or more contributor license agreements.  See the NOTICE file
-  ~ distributed with this work for additional information
-  ~ regarding copyright ownership.  The ASF licenses this file
-  ~ to you under the Apache License, Version 2.0 (the
-  ~ "License"); you may not use this file except in compliance
-  ~ with the License.  You may obtain a copy of the License at
-  ~
-  ~   http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing,
-  ~ software distributed under the License is distributed on an
-  ~ "AS IS" BASIS, WITHOUT 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">
-    <parent>
-        <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-call-sc</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>consumer</artifactId>
-
-    <properties>
-        <skip_maven_deploy>true</skip_maven_deploy>
-    </properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-config-api</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-demo-interface</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-multicast</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-dubbo</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-remoting-netty4</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-serialization-hessian2</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-bootstrap</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-consul</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-rest</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-    </dependencies>
-
-</project>
diff --git a/dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java b/dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
deleted file mode 100644
index 3a017a2..0000000
--- a/dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
+++ /dev/null
@@ -1,55 +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 org.apache.dubbo.samples.microservices.sc;
-
-import org.apache.dubbo.bootstrap.DubboBootstrap;
-import org.apache.dubbo.config.ReferenceConfig;
-import org.apache.dubbo.config.RegistryConfig;
-import org.apache.dubbo.config.context.ConfigManager;
-import org.apache.dubbo.samples.microservices.sc.rest.UserService;
-
-public class Application {
-    public static void main(String[] args) throws Exception{
-        RegistryConfig interfaceRegistry = new RegistryConfig();
-        interfaceRegistry.setId("interfaceRegistry");
-        interfaceRegistry.setAddress("zookeeper://127.0.0.1:2181?" +
-                "registry.type=service&subscribed.services=spring-cloud-provider-for-dubbo");
-
-        new DubboBootstrap()
-                .application("dubbo-consumer-demo")
-                // Zookeeper
-                .registry(interfaceRegistry)
-                // Nacos
-//                .registry("consul", builder -> builder.address("consul://127.0.0.1:8500?registry.type=service&subscribed.services=dubbo-provider-demo"))
-                .reference("user", builder -> builder.interfaceClass(UserService.class).protocol("rest"))
-                .onlyRegisterProvider(true)
-                .start()
-                .await();
-
-        ConfigManager configManager = ConfigManager.getInstance();
-
-        ReferenceConfig<UserService> referenceConfig1 = configManager.getReferenceConfig("user");
-        UserService userService = referenceConfig1.get();
-
-        for (int i = 0; i < 500; i++) {
-            Thread.sleep(2000L);
-            System.out.println(userService.getUser(1L));
-        }
-    }
-}
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/pom.xml
similarity index 89%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/pom.xml
index dcf6e28..3c8e87f 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
+++ b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/pom.xml
@@ -19,11 +19,11 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>servicediscovery-transfer</artifactId>
+        <artifactId>dubbo-call-sc</artifactId>
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-    <artifactId>servicediscovery-consumer</artifactId>
+    <artifactId>dubbo-sc-consumer</artifactId>
     <packaging>jar</packaging>
     <name>${project.artifactId}</name>
     <description>The demo consumer module of dubbo project</description>
@@ -74,11 +74,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-rpc-rest</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-remoting-netty4</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-serialization-hessian2</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-registry-consul</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
similarity index 78%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
index f448a18..0bfd8a2 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
+++ b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
@@ -16,7 +16,8 @@
  */
 package org.apache.dubbo.demo.consumer;
 
-import org.apache.dubbo.demo.DemoService;
+import org.apache.dubbo.samples.microservices.sc.rest.User;
+import org.apache.dubbo.samples.microservices.sc.rest.UserService;
 
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
@@ -24,8 +25,8 @@ public class Application {
     public static void main(String[] args) {
         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-consumer.xml");
         context.start();
-        DemoService demoService = context.getBean("demoService", DemoService.class);
-        String hello = demoService.sayHello("world");
-        System.out.println("result: " + hello);
+        UserService userService = context.getBean("userService", UserService.class);
+        User user = userService.getUser(1L);
+        System.out.println("result: " + user);
     }
 }
diff --git a/dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
similarity index 92%
copy from dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
index c365f8f..6387049 100644
--- a/dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
+++ b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
@@ -18,14 +18,12 @@
  */
 package org.apache.dubbo.samples.microservices.sc.rest;
 
-import org.codehaus.jackson.annotate.JsonProperty;
 
 import javax.validation.constraints.Min;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import java.io.Serializable;
 
@@ -37,8 +35,6 @@ public class User implements Serializable {
     @Min(1L)
     private Long id;
 
-    @JsonProperty("username")
-    @XmlElement(name = "username")
     @NotNull
     @Size(min = 6, max = 50)
     private String name;
diff --git a/dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java
rename to dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java
diff --git a/dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java
rename to dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/dubbo.properties b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/resources/dubbo.properties
similarity index 100%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/dubbo.properties
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/resources/dubbo.properties
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/log4j.properties b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/resources/log4j.properties
similarity index 100%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/log4j.properties
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/resources/log4j.properties
diff --git a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/resources/spring/dubbo-consumer.xml
similarity index 75%
copy from dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/resources/spring/dubbo-consumer.xml
index d3081f6..cfd722d 100644
--- a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml
+++ b/dubbo-demo/dubbo-call-sc/dubbo-sc-consumer/src/main/resources/spring/dubbo-consumer.xml
@@ -21,10 +21,13 @@
        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">
 
-    <dubbo:application name="demo-consumer"/>
+    <dubbo:application name="dubbo-sc-consumer"/>
 
-    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry.type=service"/>
+    <dubbo:registry address="consul://127.0.0.1:8500">
+        <dubbo:parameter key="registry-type" value="service"/>
+    </dubbo:registry>
 
-    <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.demo.DemoService"/>
+    <dubbo:reference provided-by="spring-cloud-provider-for-dubbo" id="userService" check="false" protocol="rest"
+                     interface="org.apache.dubbo.samples.microservices.sc.rest.UserService"/>
 
 </beans>
diff --git a/dubbo-demo/dubbo-call-sc/provider/pom.xml b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/pom.xml
similarity index 98%
rename from dubbo-demo/dubbo-call-sc/provider/pom.xml
rename to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/pom.xml
index f3a3ea0..d9d1d66 100644
--- a/dubbo-demo/dubbo-call-sc/provider/pom.xml
+++ b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/pom.xml
@@ -28,7 +28,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>provider</artifactId>
+    <artifactId>dubbo-sc-provider</artifactId>
 
     <dependencyManagement>
         <dependencies>
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
similarity index 100%
copy from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java
similarity index 100%
copy from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java
similarity index 100%
copy from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
rename to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
similarity index 99%
rename from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
rename to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
index 96801f8..ade2917 100644
--- a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
+++ b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
@@ -1,6 +1,7 @@
 package org.apache.dubbo.samples.microservices.sc.controller;
 
 import org.apache.dubbo.samples.microservices.sc.feign.TestFeign;
+
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java
similarity index 100%
copy from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java
rename to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/resources/application.yml b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/resources/application.yml
similarity index 100%
copy from dubbo-demo/dubbo-call-sc/provider/src/main/resources/application.yml
copy to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/resources/application.yml
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/resources/bootstrap.yml b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/resources/bootstrap.yml
similarity index 82%
rename from dubbo-demo/dubbo-call-sc/provider/src/main/resources/bootstrap.yml
rename to dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/resources/bootstrap.yml
index cabb49f..2829237 100644
--- a/dubbo-demo/dubbo-call-sc/provider/src/main/resources/bootstrap.yml
+++ b/dubbo-demo/dubbo-call-sc/dubbo-sc-provider/src/main/resources/bootstrap.yml
@@ -12,6 +12,9 @@ spring:
       discovery:
         instance-id: ${spring.application.name}:${random.value}
         service-name: ${spring.application.name}
+        heartbeat:
+          enabled: false
+        health-check-interval: 1000s
       config:
         format: yaml
         prefix: config
diff --git a/dubbo-demo/dubbo-call-sc/pom.xml b/dubbo-demo/dubbo-call-sc/pom.xml
index 46625c4..23bd275 100644
--- a/dubbo-demo/dubbo-call-sc/pom.xml
+++ b/dubbo-demo/dubbo-call-sc/pom.xml
@@ -30,8 +30,8 @@
     <packaging>pom</packaging>
 
     <modules>
-        <module>provider</module>
-        <module>consumer</module>
+        <module>dubbo-sc-provider</module>
+        <module>dubbo-sc-consumer</module>
     </modules>
 
     <properties>
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/README.md b/dubbo-demo/dubbo-call-scdubbo/README.md
similarity index 100%
rename from dubbo-demo/dubbo-call-sc&dubbo/README.md
rename to dubbo-demo/dubbo-call-scdubbo/README.md
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/pom.xml
similarity index 85%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/pom.xml
index dcf6e28..6e06da3 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/pom.xml
@@ -19,11 +19,11 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>servicediscovery-transfer</artifactId>
+        <artifactId>dubbo-call-scdubbo</artifactId>
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-    <artifactId>servicediscovery-consumer</artifactId>
+    <artifactId>dubbo-scdubbo-consumer</artifactId>
     <packaging>jar</packaging>
     <name>${project.artifactId}</name>
     <description>The demo consumer module of dubbo project</description>
@@ -62,6 +62,10 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-configcenter-consul</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-metadata-report-nacos</artifactId>
         </dependency>
         <dependency>
@@ -74,11 +78,19 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-rpc-rest</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-remoting-netty4</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-serialization-hessian2</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-registry-consul</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
similarity index 81%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
index f448a18..5b2d932 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
@@ -17,6 +17,8 @@
 package org.apache.dubbo.demo.consumer;
 
 import org.apache.dubbo.demo.DemoService;
+import org.apache.dubbo.samples.microservices.sc.rest.User;
+import org.apache.dubbo.samples.microservices.sc.rest.UserService;
 
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
@@ -24,6 +26,11 @@ public class Application {
     public static void main(String[] args) {
         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-consumer.xml");
         context.start();
+
+        UserService userService = context.getBean("userService", UserService.class);
+        User user = userService.getUser(1L);
+        System.out.println("result: " + user);
+
         DemoService demoService = context.getBean("demoService", DemoService.class);
         String hello = demoService.sayHello("world");
         System.out.println("result: " + hello);
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
similarity index 92%
rename from dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
rename to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
index c365f8f..6387049 100644
--- a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
@@ -18,14 +18,12 @@
  */
 package org.apache.dubbo.samples.microservices.sc.rest;
 
-import org.codehaus.jackson.annotate.JsonProperty;
 
 import javax.validation.constraints.Min;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import java.io.Serializable;
 
@@ -37,8 +35,6 @@ public class User implements Serializable {
     @Min(1L)
     private Long id;
 
-    @JsonProperty("username")
-    @XmlElement(name = "username")
     @NotNull
     @Size(min = 6, max = 50)
     private String name;
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java
similarity index 100%
copy from dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java
similarity index 100%
copy from dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/dubbo.properties b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/resources/dubbo.properties
similarity index 100%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/dubbo.properties
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/resources/dubbo.properties
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/log4j.properties b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/resources/log4j.properties
similarity index 100%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/log4j.properties
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/resources/log4j.properties
diff --git a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/resources/spring/dubbo-consumer.xml
similarity index 63%
copy from dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/resources/spring/dubbo-consumer.xml
index 1eaf379..c93add5 100644
--- a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-consumer/src/main/resources/spring/dubbo-consumer.xml
@@ -21,14 +21,19 @@
        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">
 
-    <dubbo:application name="demo-provider"/>
+    <dubbo:application name="dubbo-sc-consumer"/>
 
-    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry.type=service"/>
+    <!-- consumes Native Dubbo service -->
+    <dubbo:registry id="dubbo" address="zookeeper://127.0.0.1:2181?registry-type=service"/>
+    <dubbo:reference registry="dubbo" id="demoService" check="false"
+                     interface="org.apache.dubbo.demo.DemoService"/>
 
-    <dubbo:protocol name="dubbo"/>
+    <!--     consumes Spring Cloud service-->
+    <dubbo:registry id="sc" address="consul://127.0.0.1:8500">
+        <dubbo:parameter key="registry-type" value="service"/>
+    </dubbo:registry>
+    <dubbo:reference registry="sc" provided-by="scdubbo-provider" id="userService" check="false" protocol="rest"
+                     interface="org.apache.dubbo.samples.microservices.sc.rest.UserService"/>
 
-    <bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
-
-    <dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoService"/>
 
 </beans>
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/pom.xml b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/pom.xml
similarity index 96%
rename from dubbo-demo/dubbo-call-sc&dubbo/provider/pom.xml
rename to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/pom.xml
index f3a3ea0..91b6738 100644
--- a/dubbo-demo/dubbo-call-sc&dubbo/provider/pom.xml
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/pom.xml
@@ -22,13 +22,13 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-call-sc</artifactId>
+        <artifactId>dubbo-call-scdubbo</artifactId>
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>provider</artifactId>
+    <artifactId>dubbo-scdubbo-provider</artifactId>
 
     <dependencyManagement>
         <dependencies>
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
rename to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java
rename to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java
rename to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
similarity index 100%
copy from dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
similarity index 85%
copy from dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
index 615e998..c21c007 100644
--- a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
@@ -1,13 +1,15 @@
 package org.apache.dubbo.samples.microservices.sc.controller;
 
 import org.apache.dubbo.samples.microservices.sc.feign.TestFeign;
+
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.RestTemplate;
 
 @RestController
-@RequestMapping("/ping")
+@RequestMapping("/users")
 public class TestController {
 
     @Value("${spring.application.name}")
@@ -22,6 +24,11 @@ public class TestController {
         this.testFeign = testFeign;
     }
 
+    @RequestMapping("{id}")
+    public User getUser(@PathVariable("id") Long id) {
+        return new User(id, "username-" + id);
+    }
+
     @RequestMapping
     public String doAlive() {
         return "Alive!";
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java
similarity index 100%
copy from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java
rename to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/resources/application.yml b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/resources/application.yml
similarity index 100%
rename from dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/resources/application.yml
rename to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/resources/application.yml
diff --git a/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/resources/bootstrap.yml b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..d6bad3c
--- /dev/null
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider/src/main/resources/bootstrap.yml
@@ -0,0 +1,26 @@
+server:
+  port: 8099
+
+spring:
+  application:
+    name: scdubbo-provider
+  cloud:
+    consul:
+      host: localhost
+      port: 8500
+      enabled: true
+
+management:
+  security:
+    enabled: false
+
+  endpoint:
+    consul:
+      enabled: false
+  health:
+    consul:
+      enabled: false
+
+endpoints:
+  consul:
+    enabled: false
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/pom.xml
similarity index 82%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/pom.xml
index dcf6e28..34845d5 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/pom.xml
@@ -19,17 +19,19 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>servicediscovery-transfer</artifactId>
+        <artifactId>dubbo-call-scdubbo</artifactId>
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-    <artifactId>servicediscovery-consumer</artifactId>
+    <artifactId>dubbo-scdubbo-provider2</artifactId>
     <packaging>jar</packaging>
     <name>${project.artifactId}</name>
-    <description>The demo consumer module of dubbo project</description>
+    <description>The demo provider module of dubbo project</description>
     <properties>
         <skip_maven_deploy>true</skip_maven_deploy>
+        <slf4j-log4j12.version>1.7.25</slf4j-log4j12.version>
     </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
@@ -66,11 +68,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-config-spring</artifactId>
+            <artifactId>dubbo-rpc-dubbo</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-dubbo</artifactId>
+            <artifactId>dubbo-config-spring</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
@@ -80,5 +82,18 @@
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-serialization-hessian2</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>${slf4j-log4j12.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/java/org/apache/dubbo/demo/provider/Application.java
similarity index 73%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/java/org/apache/dubbo/demo/provider/Application.java
index f448a18..d1ab5be 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/java/org/apache/dubbo/demo/provider/Application.java
@@ -14,18 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.demo.consumer;
-
-import org.apache.dubbo.demo.DemoService;
+package org.apache.dubbo.demo.provider;
 
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class Application {
-    public static void main(String[] args) {
-        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-consumer.xml");
+    public static void main(String[] args) throws Exception {
+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-provider.xml");
         context.start();
-        DemoService demoService = context.getBean("demoService", DemoService.class);
-        String hello = demoService.sayHello("world");
-        System.out.println("result: " + hello);
+        System.in.read();
     }
 }
diff --git a/dubbo-demo/sc-call-dubbo/provider/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java
similarity index 100%
copy from dubbo-demo/sc-call-dubbo/provider/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java
diff --git a/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/resources/dubbo.properties b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/resources/dubbo.properties
new file mode 100644
index 0000000..ad602ba
--- /dev/null
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/resources/dubbo.properties
@@ -0,0 +1 @@
+dubbo.application.qos.port=22222
diff --git a/dubbo-demo/sc-call-dubbo/provider/src/main/resources/log4j.properties b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/resources/log4j.properties
similarity index 100%
rename from dubbo-demo/sc-call-dubbo/provider/src/main/resources/log4j.properties
rename to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/resources/log4j.properties
diff --git a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/resources/spring/dubbo-provider.xml
similarity index 95%
copy from dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml
copy to dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/resources/spring/dubbo-provider.xml
index 1eaf379..7b4cd15 100644
--- a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml
+++ b/dubbo-demo/dubbo-call-scdubbo/dubbo-scdubbo-provider2/src/main/resources/spring/dubbo-provider.xml
@@ -21,9 +21,9 @@
        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">
 
-    <dubbo:application name="demo-provider"/>
+    <dubbo:application name="scdubbo-provider2"/>
 
-    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry.type=service"/>
+    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>
 
     <dubbo:protocol name="dubbo"/>
 
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/pom.xml b/dubbo-demo/dubbo-call-scdubbo/pom.xml
similarity index 91%
rename from dubbo-demo/dubbo-call-sc&dubbo/pom.xml
rename to dubbo-demo/dubbo-call-scdubbo/pom.xml
index 46625c4..2b7e079 100644
--- a/dubbo-demo/dubbo-call-sc&dubbo/pom.xml
+++ b/dubbo-demo/dubbo-call-scdubbo/pom.xml
@@ -30,8 +30,9 @@
     <packaging>pom</packaging>
 
     <modules>
-        <module>provider</module>
-        <module>consumer</module>
+        <module>dubbo-scdubbo-provider</module>
+        <module>dubbo-scdubbo-provider2</module>
+        <module>dubbo-scdubbo-consumer</module>
     </modules>
 
     <properties>
@@ -39,7 +40,7 @@
         <spring-boot-maven-plugin.version>2.1.4.RELEASE</spring-boot-maven-plugin.version>
     </properties>
 
-    <artifactId>dubbo-call-sc</artifactId>
+    <artifactId>dubbo-call-scdubbo</artifactId>
 
     <build>
         <plugins>
diff --git a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml b/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml
index d3081f6..892392a 100644
--- a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml
+++ b/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml
@@ -23,7 +23,7 @@
 
     <dubbo:application name="demo-consumer"/>
 
-    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry.type=service"/>
+    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>
 
     <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.demo.DemoService"/>
 
diff --git a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml b/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml
index 1eaf379..fce0c7f 100644
--- a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml
+++ b/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml
@@ -23,7 +23,7 @@
 
     <dubbo:application name="demo-provider"/>
 
-    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry.type=service"/>
+    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>
 
     <dubbo:protocol name="dubbo"/>
 
diff --git a/dubbo-demo/pom.xml b/dubbo-demo/pom.xml
index a4dae32..2b4959c 100644
--- a/dubbo-demo/pom.xml
+++ b/dubbo-demo/pom.xml
@@ -36,10 +36,10 @@
         <module>dubbo-demo-annotation</module>
         <module>dubbo-demo-api</module>
         <module>dubbo-demo-servicediscovery-xml</module>
-        <!--        <module>servicediscovery-transfer</module>-->
-        <!--        <module>dubbo-call-sc</module>-->
-        <!--        <module>dubbo-call-sc&dubbo</module>-->
-        <!--        <module>sc-call-dubbo</module>-->
+        <module>servicediscovery-transfer</module>
+        <module>dubbo-call-sc</module>
+        <module>dubbo-call-scdubbo</module>
+        <module>sc-call-dubbo</module>
     </modules>
 
     <dependencyManagement>
diff --git a/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/Application.java b/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/Application.java
deleted file mode 100644
index e1f07cb..0000000
--- a/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/Application.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.bettercloud.spring.cloud;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
-import org.springframework.cloud.netflix.feign.EnableFeignClients;
-
-@SpringBootApplication
-@EnableDiscoveryClient
-@EnableFeignClients
-public class Application {
-    public static void main(String[] args) {
-        SpringApplication.run(Application.class, args);
-    }
-}
\ No newline at end of file
diff --git a/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/configuration/RestTemplateConfiguration.java b/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/configuration/RestTemplateConfiguration.java
deleted file mode 100644
index cf0a2b1..0000000
--- a/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/configuration/RestTemplateConfiguration.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.bettercloud.spring.cloud.configuration;
-
-import org.springframework.cloud.client.loadbalancer.LoadBalanced;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.client.RestTemplate;
-
-@Configuration
-public class RestTemplateConfiguration {
-
-    @Bean
-    @LoadBalanced
-    RestTemplate loadBalancedRestTemplate() {
-        return new RestTemplate();
-    }
-
-}
diff --git a/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/controller/ClientController.java b/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/controller/ClientController.java
deleted file mode 100644
index b38edf3..0000000
--- a/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/controller/ClientController.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package com.bettercloud.spring.cloud.controller;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.client.RestTemplate;
-
-
-@RestController
-@RequestMapping("/client")
-public class ClientController {
-
-    private String serviceEndpoint;
-    private RestTemplate restTemplate;
-
-    @Autowired
-    public ClientController(@Value("${service.me}") final String serviceEndpoint, final RestTemplate restTemplate) {
-        this.serviceEndpoint = serviceEndpoint;
-        this.restTemplate = restTemplate;
-    }
-
-    @GetMapping
-    public String getService() {
-        return restTemplate.getForEntity(serviceEndpoint, String.class).getBody();
-    }
-
-}
diff --git a/dubbo-demo/sc-call-dubbo/consumer/src/main/resources/application-holding.yml b/dubbo-demo/sc-call-dubbo/consumer/src/main/resources/application-holding.yml
deleted file mode 100644
index 7a8a421..0000000
--- a/dubbo-demo/sc-call-dubbo/consumer/src/main/resources/application-holding.yml
+++ /dev/null
@@ -1,3 +0,0 @@
-service:
-  host: http://service-holding
-  me: ${service.host}/me
diff --git a/dubbo-demo/sc-call-dubbo/consumer/src/main/resources/application.yml b/dubbo-demo/sc-call-dubbo/consumer/src/main/resources/application.yml
deleted file mode 100644
index bb7bfea..0000000
--- a/dubbo-demo/sc-call-dubbo/consumer/src/main/resources/application.yml
+++ /dev/null
@@ -1,7 +0,0 @@
-management:
-  security:
-    enabled: false
-endpoints:
-  shutdown:
-    enabled: true
-
diff --git a/dubbo-demo/sc-call-dubbo/consumer/src/main/resources/bootstrap.yml b/dubbo-demo/sc-call-dubbo/consumer/src/main/resources/bootstrap.yml
deleted file mode 100644
index 73dacfc..0000000
--- a/dubbo-demo/sc-call-dubbo/consumer/src/main/resources/bootstrap.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-server:
-  port: 8080
-
-spring:
-  application:
-    name: client
-  cloud:
-    consul:
-      host: consul
-      port: 8500
-      enabled: true
-      config:
-        format: yaml
-        prefix: config
-        defaultContext: application
-        data-key: data
-        profileSeparator: '-'
-    vault:
-      scheme: http
-      host: vault
-      authentication: TOKEN
-      token: ${VAULT_APP_TOKEN}
-
-management:
-  security:
-    enabled: false
\ No newline at end of file
diff --git a/dubbo-demo/sc-call-dubbo/pom.xml b/dubbo-demo/sc-call-dubbo/pom.xml
index 46625c4..a21890e 100644
--- a/dubbo-demo/sc-call-dubbo/pom.xml
+++ b/dubbo-demo/sc-call-dubbo/pom.xml
@@ -30,8 +30,8 @@
     <packaging>pom</packaging>
 
     <modules>
-        <module>provider</module>
-        <module>consumer</module>
+        <module>sc-dubbo-provider</module>
+        <module>sc-dubbo-consumer</module>
     </modules>
 
     <properties>
@@ -39,7 +39,7 @@
         <spring-boot-maven-plugin.version>2.1.4.RELEASE</spring-boot-maven-plugin.version>
     </properties>
 
-    <artifactId>dubbo-call-sc</artifactId>
+    <artifactId>sc-call-dubbo</artifactId>
 
     <build>
         <plugins>
diff --git a/dubbo-demo/sc-call-dubbo/consumer/pom.xml b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/pom.xml
similarity index 97%
rename from dubbo-demo/sc-call-dubbo/consumer/pom.xml
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/pom.xml
index e938869..1dc5a0e 100644
--- a/dubbo-demo/sc-call-dubbo/consumer/pom.xml
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/pom.xml
@@ -22,14 +22,13 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-call-sc</artifactId>
+        <artifactId>sc-call-dubbo</artifactId>
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>consumer</artifactId>
-
+    <artifactId>sc-dubbo-consumer</artifactId>
 
     <dependencyManagement>
         <dependencies>
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/Application.java
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/configuration/RestTemplateConfiguration.java
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/MeController.java
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
similarity index 88%
rename from dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
index cb24179..513df7f 100644
--- a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/PropertyController.java
@@ -28,18 +28,18 @@ public class PropertyController {
     @Value("${infrastructurePassword:default value}")
     private String infrastructurePassword;
 
-	@Value("${password:mypassword}")
-	private String secret;
+    @Value("${password:mypassword}")
+    private String secret;
 
     @RequestMapping
     public String getProperty() {
         return "<h3>applicationProperty:</h3> " + applicationProperty + "</br>"
-                + "<h3>property:</h3> " +  property + "</br>"
+                + "<h3>property:</h3> " + property + "</br>"
                 + "<h3>property2:</h3> " + property2 + "</br>"
                 + "<h3>infrastructureDesc:</h3> " + infrastructureDesc + "</br>"
                 + "<h3>infrastructureUserName:</h3> " + infrastructureUserName + "</br>"
                 + "<h3>infrastructurePassword:</h3> " + infrastructurePassword + "</br>"
-				+ "<h3>vault password:</h3>" + secret + "</br>";
+                + "<h3>vault password:</h3>" + secret + "</br>";
     }
 
 }
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
similarity index 68%
rename from dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
index 615e998..bfbe620 100644
--- a/dubbo-demo/dubbo-call-sc&dubbo/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/TestController.java
@@ -1,13 +1,14 @@
 package org.apache.dubbo.samples.microservices.sc.controller;
 
 import org.apache.dubbo.samples.microservices.sc.feign.TestFeign;
+
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.RestTemplate;
 
 @RestController
-@RequestMapping("/ping")
+@RequestMapping("/dubbo")
 public class TestController {
 
     @Value("${spring.application.name}")
@@ -22,24 +23,14 @@ public class TestController {
         this.testFeign = testFeign;
     }
 
-    @RequestMapping
-    public String doAlive() {
-        return "Alive!";
-    }
-
-    @RequestMapping("/rest")
-    public String doRestAlive() {
-        return new RestTemplate().getForObject("http://localhost:8099/ping", String.class);
-    }
-
-    @RequestMapping("/rest/ribbon")
+    @RequestMapping("/rest/user")
     public String doRestAliveUsingEurekaAndRibbon() {
-        String url = "http://dubbo-provider-demo/users/1";
-        System.out.println("url: "+url);
+        String url = "http://dubbo-provider-for-sc/users/1";
+        System.out.println("url: " + url);
         return restTemplate.getForObject(url, String.class);
     }
 
-    @RequestMapping("/rest/feign")
+    @RequestMapping("/rest/user/feign")
     public String doRestAliveUsingFeign() {
         return testFeign.doAlive();
     }
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/provider/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/controller/User.java
diff --git a/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/feign/TestFeign.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java
similarity index 58%
rename from dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/feign/TestFeign.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java
index e8663ec..15abd1f 100644
--- a/dubbo-demo/sc-call-dubbo/consumer/src/main/java/com/bettercloud/spring/cloud/feign/TestFeign.java
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/feign/TestFeign.java
@@ -1,12 +1,13 @@
-package com.bettercloud.spring.cloud.feign;
+package org.apache.dubbo.samples.microservices.sc.feign;
 
 import org.springframework.cloud.netflix.feign.FeignClient;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 
-@FeignClient(name = "springcloudwebtest")
+@FeignClient(name = "dubbo-provider-for-sc")
 public interface TestFeign {
 
-    @RequestMapping(value="/ping", method = RequestMethod.GET)
+    @RequestMapping(value = "/users/1", method = RequestMethod.GET)
     String doAlive();
+
 }
diff --git a/dubbo-demo/dubbo-call-sc/provider/src/main/resources/application.yml b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/resources/application.yml
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/provider/src/main/resources/application.yml
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/resources/application.yml
diff --git a/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/resources/bootstrap.yml b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/resources/bootstrap.yml
new file mode 100644
index 0000000..d6bad3c
--- /dev/null
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-consumer/src/main/resources/bootstrap.yml
@@ -0,0 +1,26 @@
+server:
+  port: 8099
+
+spring:
+  application:
+    name: scdubbo-provider
+  cloud:
+    consul:
+      host: localhost
+      port: 8500
+      enabled: true
+
+management:
+  security:
+    enabled: false
+
+  endpoint:
+    consul:
+      enabled: false
+  health:
+    consul:
+      enabled: false
+
+endpoints:
+  consul:
+    enabled: false
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/consumer/pom.xml b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/pom.xml
similarity index 64%
rename from dubbo-demo/dubbo-call-sc&dubbo/consumer/pom.xml
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-provider/pom.xml
index f1d9dfd..88f2a73 100644
--- a/dubbo-demo/dubbo-call-sc&dubbo/consumer/pom.xml
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/pom.xml
@@ -22,59 +22,89 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-call-sc</artifactId>
+        <artifactId>sc-call-dubbo</artifactId>
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>consumer</artifactId>
-
     <properties>
         <skip_maven_deploy>true</skip_maven_deploy>
+        <slf4j-log4j12.version>1.7.25</slf4j-log4j12.version>
     </properties>
 
+    <artifactId>sc-dubbo-provider</artifactId>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-config-api</artifactId>
+            <artifactId>dubbo-demo-interface</artifactId>
             <version>${project.parent.version}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-demo-interface</artifactId>
-            <version>${project.parent.version}</version>
+            <artifactId>dubbo-registry-multicast</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-multicast</artifactId>
+            <artifactId>dubbo-registry-nacos</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-dubbo</artifactId>
+            <artifactId>dubbo-registry-zookeeper</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-remoting-netty4</artifactId>
+            <artifactId>dubbo-registry-consul</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-serialization-hessian2</artifactId>
+            <artifactId>dubbo-configcenter-zookeeper</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-bootstrap</artifactId>
-            <version>${project.parent.version}</version>
+            <artifactId>dubbo-configcenter-nacos</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-consul</artifactId>
-            <version>${project.parent.version}</version>
+            <artifactId>dubbo-metadata-report-nacos</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-rpc-dubbo</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-rpc-rest</artifactId>
-            <version>${project.parent.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-config-spring</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-remoting-netty4</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-serialization-hessian2</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>${slf4j-log4j12.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/dubbo-demo/sc-call-dubbo/provider/src/main/java/org/apache/dubbo/demo/provider/Application.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/Application.java
similarity index 57%
rename from dubbo-demo/sc-call-dubbo/provider/src/main/java/org/apache/dubbo/demo/provider/Application.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/Application.java
index 5990d75..f1826ce 100644
--- a/dubbo-demo/sc-call-dubbo/provider/src/main/java/org/apache/dubbo/demo/provider/Application.java
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/Application.java
@@ -18,19 +18,30 @@
  */
 package org.apache.dubbo.demo.provider;
 
+import org.apache.dubbo.bootstrap.DubboBootstrap;
 import org.apache.dubbo.config.ApplicationConfig;
+import org.apache.dubbo.config.ProtocolConfig;
 import org.apache.dubbo.config.RegistryConfig;
 import org.apache.dubbo.config.ServiceConfig;
-import org.apache.dubbo.demo.DemoService;
+import org.apache.dubbo.demo.provider.rest.UserService;
+import org.apache.dubbo.demo.provider.rest.UserServiceImpl;
 
 public class Application {
     public static void main(String[] args) throws Exception {
-        ServiceConfig<DemoServiceImpl> service = new ServiceConfig<>();
-        service.setApplication(new ApplicationConfig("dubbo-demo-api-provider"));
-        service.setRegistry(new RegistryConfig("zookeeper://127.0.0.1:2181"));
-        service.setInterface(DemoService.class);
-        service.setRef(new DemoServiceImpl());
-        service.export();
+        ServiceConfig<UserService> service = new ServiceConfig<>();
+        service.setInterface(UserService.class);
+        service.setRef(new UserServiceImpl());
+
+        ProtocolConfig protocolConfig = new ProtocolConfig("rest");
+        protocolConfig.setPort(8090);
+
+        DubboBootstrap bootstrap = new DubboBootstrap();
+        bootstrap.application(new ApplicationConfig("dubbo-provider-for-sc"))
+                .registry(new RegistryConfig("consul://127.0.0.1:8500?registry-type=service"))
+                .protocol(protocolConfig)
+                .service(service)
+                .start();
+
         System.in.read();
     }
 }
diff --git a/dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/rest/User.java
similarity index 89%
rename from dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/rest/User.java
index c365f8f..bf63212 100644
--- a/dubbo-demo/dubbo-call-sc/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/User.java
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/rest/User.java
@@ -16,16 +16,14 @@
  *   limitations under the License.
  *
  */
-package org.apache.dubbo.samples.microservices.sc.rest;
+package org.apache.dubbo.demo.provider.rest;
 
-import org.codehaus.jackson.annotate.JsonProperty;
 
 import javax.validation.constraints.Min;
 import javax.validation.constraints.NotNull;
 import javax.validation.constraints.Size;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import java.io.Serializable;
 
@@ -37,8 +35,6 @@ public class User implements Serializable {
     @Min(1L)
     private Long id;
 
-    @JsonProperty("username")
-    @XmlElement(name = "username")
     @NotNull
     @Size(min = 6, max = 50)
     private String name;
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/rest/UserService.java
similarity index 96%
rename from dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/rest/UserService.java
index 06dcb2c..14b2f38 100644
--- a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserService.java
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/rest/UserService.java
@@ -16,7 +16,7 @@
  *   limitations under the License.
  *
  */
-package org.apache.dubbo.samples.microservices.sc.rest;
+package org.apache.dubbo.demo.provider.rest;
 
 
 import org.apache.dubbo.rpc.protocol.rest.support.ContentType;
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/rest/UserServiceImpl.java
similarity index 95%
rename from dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/rest/UserServiceImpl.java
index fcf8875..397f437 100644
--- a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/java/org/apache/dubbo/samples/microservices/sc/rest/UserServiceImpl.java
+++ b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/java/org/apache/dubbo/demo/provider/rest/UserServiceImpl.java
@@ -16,7 +16,7 @@
  *   limitations under the License.
  *
  */
-package org.apache.dubbo.samples.microservices.sc.rest;
+package org.apache.dubbo.demo.provider.rest;
 
 import java.util.concurrent.atomic.AtomicLong;
 
diff --git a/dubbo-demo/dubbo-call-sc/consumer/src/main/resources/log4j.properties b/dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/resources/log4j.properties
similarity index 100%
rename from dubbo-demo/dubbo-call-sc/consumer/src/main/resources/log4j.properties
rename to dubbo-demo/sc-call-dubbo/sc-dubbo-provider/src/main/resources/log4j.properties
diff --git a/dubbo-demo/sc-call-dubbo/provider/pom.xml b/dubbo-demo/servicediscovery-transfer/pom.xml
similarity index 54%
rename from dubbo-demo/sc-call-dubbo/provider/pom.xml
rename to dubbo-demo/servicediscovery-transfer/pom.xml
index 9f98d0e..146e5e2 100644
--- a/dubbo-demo/sc-call-dubbo/provider/pom.xml
+++ b/dubbo-demo/servicediscovery-transfer/pom.xml
@@ -22,12 +22,41 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo-call-sc</artifactId>
+        <artifactId>dubbo-demo</artifactId>
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
+    <packaging>pom</packaging>
 
-    <artifactId>provider</artifactId>
+    <artifactId>servicediscovery-transfer</artifactId>
+
+    <properties>
+        <skip_maven_deploy>true</skip_maven_deploy>
+        <spring-boot-maven-plugin.version>2.1.4.RELEASE</spring-boot-maven-plugin.version>
+    </properties>
+
+    <modules>
+        <module>servicediscovery-transfer-provider</module>
+        <module>servicediscovery-transfer-consumer-old</module>
+        <module>servicediscovery-transfer-consumer</module>
+    </modules>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot-maven-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
 
 </project>
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/pom.xml
similarity index 98%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
copy to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/pom.xml
index dcf6e28..c1ad6c7 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/pom.xml
@@ -23,7 +23,7 @@
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-    <artifactId>servicediscovery-consumer</artifactId>
+    <artifactId>servicediscovery-transfer-consumer-old</artifactId>
     <packaging>jar</packaging>
     <name>${project.artifactId}</name>
     <description>The demo consumer module of dubbo project</description>
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/java/org/apache/dubbo/demo/consumer/Application.java
similarity index 86%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
copy to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/java/org/apache/dubbo/demo/consumer/Application.java
index f448a18..2ecc664 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/java/org/apache/dubbo/demo/consumer/Application.java
@@ -17,6 +17,7 @@
 package org.apache.dubbo.demo.consumer;
 
 import org.apache.dubbo.demo.DemoService;
+import org.apache.dubbo.demo.GreetingService;
 
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
@@ -27,5 +28,7 @@ public class Application {
         DemoService demoService = context.getBean("demoService", DemoService.class);
         String hello = demoService.sayHello("world");
         System.out.println("result: " + hello);
+        GreetingService greetingService = context.getBean("greetingService", GreetingService.class);
+        System.out.print("greetings: " + greetingService.hello());
     }
 }
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/dubbo.properties b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/resources/dubbo.properties
similarity index 100%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/dubbo.properties
copy to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/resources/dubbo.properties
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/log4j.properties b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/resources/log4j.properties
similarity index 100%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/log4j.properties
copy to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/resources/log4j.properties
diff --git a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/resources/spring/dubbo-consumer.xml
similarity index 85%
copy from dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml
copy to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/resources/spring/dubbo-consumer.xml
index d3081f6..d2a9d7d 100644
--- a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer-old/src/main/resources/spring/dubbo-consumer.xml
@@ -21,10 +21,11 @@
        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">
 
-    <dubbo:application name="demo-consumer"/>
+    <dubbo:application name="servicediscovery-transfer-consumer-old"/>
 
-    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry.type=service"/>
+    <dubbo:registry address="zookeeper://127.0.0.1:2181"/>
 
     <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.demo.DemoService"/>
+    <dubbo:reference id="greetingService" check="false" interface="org.apache.dubbo.demo.GreetingService"/>
 
 </beans>
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/pom.xml
similarity index 98%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
copy to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/pom.xml
index dcf6e28..54b4509 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/pom.xml
@@ -23,7 +23,7 @@
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-    <artifactId>servicediscovery-consumer</artifactId>
+    <artifactId>servicediscovery-transfer-consumer</artifactId>
     <packaging>jar</packaging>
     <name>${project.artifactId}</name>
     <description>The demo consumer module of dubbo project</description>
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
similarity index 85%
copy from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
copy to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
index f448a18..14e2793 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
@@ -16,7 +16,7 @@
  */
 package org.apache.dubbo.demo.consumer;
 
-import org.apache.dubbo.demo.DemoService;
+import org.apache.dubbo.demo.GreetingService;
 
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
@@ -24,8 +24,8 @@ public class Application {
     public static void main(String[] args) {
         ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-consumer.xml");
         context.start();
-        DemoService demoService = context.getBean("demoService", DemoService.class);
-        String hello = demoService.sayHello("world");
+        GreetingService greetingService = context.getBean("greetingService", GreetingService.class);
+        String hello = greetingService.hello();
         System.out.println("result: " + hello);
     }
 }
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/dubbo.properties b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/resources/dubbo.properties
similarity index 100%
rename from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/dubbo.properties
rename to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/resources/dubbo.properties
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/log4j.properties b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/resources/log4j.properties
similarity index 100%
rename from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/log4j.properties
rename to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/resources/log4j.properties
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/resources/spring/dubbo-consumer.xml
similarity index 87%
rename from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml
rename to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/resources/spring/dubbo-consumer.xml
index d3081f6..508e65e 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/resources/spring/dubbo-consumer.xml
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-consumer/src/main/resources/spring/dubbo-consumer.xml
@@ -21,10 +21,10 @@
        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">
 
-    <dubbo:application name="demo-consumer"/>
+    <dubbo:application name="servicediscovery-transfer-consumer"/>
 
-    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry.type=service"/>
+    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry-type=service"/>
 
-    <dubbo:reference id="demoService" check="false" interface="org.apache.dubbo.demo.DemoService"/>
+    <dubbo:reference id="greetingService" check="false" interface="org.apache.dubbo.demo.GreetingService"/>
 
 </beans>
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/pom.xml
similarity index 84%
rename from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
rename to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/pom.xml
index dcf6e28..6bd8975 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/pom.xml
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/pom.xml
@@ -23,13 +23,15 @@
         <version>${revision}</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
-    <artifactId>servicediscovery-consumer</artifactId>
+    <artifactId>servicediscovery-transfer-provider</artifactId>
     <packaging>jar</packaging>
     <name>${project.artifactId}</name>
-    <description>The demo consumer module of dubbo project</description>
+    <description>The demo provider module of dubbo project</description>
     <properties>
         <skip_maven_deploy>true</skip_maven_deploy>
+        <slf4j-log4j12.version>1.7.25</slf4j-log4j12.version>
     </properties>
+
     <dependencies>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
@@ -66,11 +68,11 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-config-spring</artifactId>
+            <artifactId>dubbo-rpc-dubbo</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-dubbo</artifactId>
+            <artifactId>dubbo-config-spring</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
@@ -80,5 +82,18 @@
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-serialization-hessian2</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-log4j12</artifactId>
+            <version>${slf4j-log4j12.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>log4j</groupId>
+            <artifactId>log4j</artifactId>
+        </dependency>
     </dependencies>
 </project>
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/java/org/apache/dubbo/demo/provider/Application.java
similarity index 73%
rename from dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
rename to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/java/org/apache/dubbo/demo/provider/Application.java
index f448a18..d1ab5be 100644
--- a/dubbo-demo/servicediscovery-transfer/servicediscovery-consumer/src/main/java/org/apache/dubbo/demo/consumer/Application.java
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/java/org/apache/dubbo/demo/provider/Application.java
@@ -14,18 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.demo.consumer;
-
-import org.apache.dubbo.demo.DemoService;
+package org.apache.dubbo.demo.provider;
 
 import org.springframework.context.support.ClassPathXmlApplicationContext;
 
 public class Application {
-    public static void main(String[] args) {
-        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-consumer.xml");
+    public static void main(String[] args) throws Exception {
+        ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-provider.xml");
         context.start();
-        DemoService demoService = context.getBean("demoService", DemoService.class);
-        String hello = demoService.sayHello("world");
-        System.out.println("result: " + hello);
+        System.in.read();
     }
 }
diff --git a/dubbo-demo/sc-call-dubbo/provider/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java
similarity index 100%
rename from dubbo-demo/sc-call-dubbo/provider/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java
rename to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/java/org/apache/dubbo/demo/provider/DemoServiceImpl.java
diff --git a/dubbo-demo/servicediscovery-transfer/provider/src/main/java/org/apache/dubbo/demo/provider/GreetingServiceImpl.java b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/java/org/apache/dubbo/demo/provider/GreetingServiceImpl.java
similarity index 100%
rename from dubbo-demo/servicediscovery-transfer/provider/src/main/java/org/apache/dubbo/demo/provider/GreetingServiceImpl.java
rename to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/java/org/apache/dubbo/demo/provider/GreetingServiceImpl.java
diff --git a/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/resources/dubbo.properties b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/resources/dubbo.properties
new file mode 100644
index 0000000..ad602ba
--- /dev/null
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/resources/dubbo.properties
@@ -0,0 +1 @@
+dubbo.application.qos.port=22222
diff --git a/dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/resources/log4j.properties b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/resources/log4j.properties
similarity index 100%
rename from dubbo-demo/dubbo-call-sc&dubbo/consumer/src/main/resources/log4j.properties
rename to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/resources/log4j.properties
diff --git a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/resources/spring/dubbo-provider.xml
similarity index 69%
copy from dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml
copy to dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/resources/spring/dubbo-provider.xml
index 1eaf379..8fd1dc5 100644
--- a/dubbo-demo/dubbo-demo-servicediscovery-xml/servicediscovery-provider/src/main/resources/spring/dubbo-provider.xml
+++ b/dubbo-demo/servicediscovery-transfer/servicediscovery-transfer-provider/src/main/resources/spring/dubbo-provider.xml
@@ -21,14 +21,19 @@
        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">
 
-    <dubbo:application name="demo-provider"/>
+    <dubbo:application name="servicediscovery-transfer-provider"/>
 
-    <dubbo:registry address="zookeeper://127.0.0.1:2181?registry.type=service"/>
+    <dubbo:registry id="service-discovery" address="zookeeper://127.0.0.1:2181?registry-type=service"/>
+    <dubbo:registry id="normal" address="zookeeper://127.0.0.1:2181"/>
 
     <dubbo:protocol name="dubbo"/>
 
     <bean id="demoService" class="org.apache.dubbo.demo.provider.DemoServiceImpl"/>
+    <bean id="greetingService" class="org.apache.dubbo.demo.provider.GreetingServiceImpl"/>
 
-    <dubbo:service interface="org.apache.dubbo.demo.DemoService" ref="demoService"/>
+    <!-- only to normal registry -->
+    <dubbo:service registry="normal" interface="org.apache.dubbo.demo.DemoService" ref="demoService"/>
+    <!-- to both sides -->
+    <dubbo:service interface="org.apache.dubbo.demo.GreetingService" ref="greetingService"/>
 
 </beans>