You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicecomb.apache.org by li...@apache.org on 2018/11/19 09:33:36 UTC

[servicecomb-java-chassis] branch master updated (9fa563e -> defbfa4)

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

liubao pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git.


    from 9fa563e  [SCB-1022] measure tcpServer and tcpClient
     new 10032bd  [SCB-986] Cache instances result in CseDiscoveryClient
     new 7ec5e23  [SCB-986] Make InstanceDiscoveryFilter standalone
     new a0d9633  [SCB-986] Move shared code of service discovery to spring-boot-common
     new 87a535b  [SCB-986] Re-structure spring related projects
     new defbfa4  [SCB-986] Rename CseXXX to ScbXXX in discovery starter

The 5 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:
 java-chassis-dependencies/pom.xml                  |  5 ++
 .../pom.xml                                        | 12 +--
 .../spring-boot-common}/pom.xml                    | 32 ++++----
 .../springboot/common/AbstractDiscoveryClient.java | 38 ++++------
 .../springboot/common/InstanceDiscoveryFilter.java | 78 ++++++++++++++++++++
 .../spring-boot-starter}/pom.xml                   |  2 +-
 .../spring-boot-starter-configuration/pom.xml      |  0
 .../spring-boot-starter-discovery/pom.xml          |  4 +
 .../starter/discovery/ScbDiscoveryClient.java      | 36 +++++----
 .../discovery/ScbDiscoveryClientConfiguration.java |  4 +-
 .../discovery/ScbRibbonClientConfiguration.java    |  2 +-
 .../starter/discovery/ScbRibbonConfiguration.java  |  4 +-
 .../ScbRibbonEndpointDiscoveryFilter.java          |  2 +-
 .../starter/discovery/ServiceCombServerList.java   |  2 +-
 .../springboot/starter/discovery/package-info.java |  0
 .../src/main/resources/META-INF/spring.factories   |  8 +-
 .../starter/discovery/TestScbDiscoveryClient.java  | 26 +++----
 .../TestScbDiscoveryClientConfiguration.java       |  6 +-
 .../TestScbRibbonClientConfiguration.java          |  4 +-
 .../discovery/TestServiceCombServerList.java       |  0
 .../spring-boot-starter-provider/pom.xml           |  0
 .../src/main/resources/application.properties      |  0
 .../spring-boot-starter-registry/pom.xml           |  0
 .../starter/registry/RegistryIntializer.java       |  0
 .../ServiceCenterRegistryConfiguration.java        |  0
 .../src/main/resources/META-INF/spring.factories   |  0
 .../TestServiceCenterRegistryConfiguration.java    |  0
 .../spring-boot-starter-servicecomb/pom.xml        |  0
 .../starter/provider/EnableServiceComb.java        |  0
 .../provider/ServiceCombSpringConfiguration.java   |  0
 .../springboot/starter/provider/package-info.java  |  0
 .../spring-boot-starter-transport/pom.xml          |  0
 .../starter/transport/RestServletInitializer.java  |  0
 .../springboot/starter/transport/package-info.java |  0
 .../transport/TestRestServletInitializer.java      |  0
 .../spring-cloud-zuul-zipkin/pom.xml               |  0
 .../zuul/tracing/SpringTracingConfiguration.java   |  0
 .../cloud/zuul/tracing/TracePostZuulFilter.java    |  0
 .../cloud/zuul/tracing/TracePreZuulFilter.java     |  0
 .../tracing/SpringTracingConfigurationTest.java    |  0
 .../spring-boot-starter}/spring-cloud-zuul/pom.xml |  0
 .../spring/cloud/zuul/ContextHeaderZuulFilter.java |  0
 .../spring-boot2-starter-parent}/pom.xml           |  2 +-
 .../spring-boot2-starter-discovery/pom.xml         |  4 +
 .../starter/discovery/ScbDiscoveryClient.java      | 32 ++++----
 .../discovery/ScbDiscoveryClientConfiguration.java |  4 +-
 .../discovery/ScbRibbonClientConfiguration.java    |  2 +-
 .../starter/discovery/ScbRibbonConfiguration.java  |  4 +-
 .../ScbRibbonEndpointDiscoveryFilter.java          |  2 +-
 .../starter/discovery/ServiceCombServerList.java   |  2 +-
 .../starter/discovery/package-info.java            |  0
 .../src/main/resources/META-INF/spring.factories   |  8 +-
 .../spring-boot2-starter-servlet/pom.xml           |  0
 .../starter/servlet/RestServletInitializer.java    |  0
 .../springboot2/starter/servlet/package-info.java  |  0
 .../spring-boot2-starter-standalone/pom.xml        |  0
 .../spring-boot2-starter/pom.xml                   |  0
 .../springboot2/starter/EnableServiceComb.java     |  0
 .../starter/ServiceCombSpringConfiguration.java    |  0
 pom.xml                                            |  3 +-
 .../starter/discovery/CseDiscoveryClient.java      | 85 ----------------------
 61 files changed, 207 insertions(+), 206 deletions(-)
 copy {metrics/metrics-integration => java-chassis-spring-boot}/pom.xml (84%)
 copy {tracing => java-chassis-spring-boot/spring-boot-common}/pom.xml (72%)
 rename spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java => java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java (67%)
 create mode 100644 java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/pom.xml (97%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-configuration/pom.xml (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-discovery/pom.xml (95%)
 copy spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java => java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClient.java (51%)
 rename spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java => java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClientConfiguration.java (95%)
 rename spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java => java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonClientConfiguration.java (94%)
 rename spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java => java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonConfiguration.java (91%)
 rename spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java => java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java (96%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java (97%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/package-info.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories (81%)
 rename spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java => java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClient.java (77%)
 rename spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java => java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClientConfiguration.java (84%)
 rename spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java => java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbRibbonClientConfiguration.java (91%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestServiceCombServerList.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-provider/pom.xml (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-provider/src/main/resources/application.properties (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-registry/pom.xml (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/RegistryIntializer.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/ServiceCenterRegistryConfiguration.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-registry/src/main/resources/META-INF/spring.factories (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-registry/src/test/java/org/apache/servicecomb/springboot/starter/registry/TestServiceCenterRegistryConfiguration.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-servicecomb/pom.xml (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/EnableServiceComb.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/ServiceCombSpringConfiguration.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/package-info.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-transport/pom.xml (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/package-info.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-boot-starter-transport/src/test/java/org/apache/servicecomb/springboot/starter/transport/TestRestServletInitializer.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-cloud-zuul-zipkin/pom.xml (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfiguration.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePostZuulFilter.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePreZuulFilter.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-cloud-zuul-zipkin/src/test/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfigurationTest.java (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-cloud-zuul/pom.xml (100%)
 rename {spring-boot-starter => java-chassis-spring-boot/spring-boot-starter}/spring-cloud-zuul/src/main/java/org/apache/servicecomb/spring/cloud/zuul/ContextHeaderZuulFilter.java (100%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/pom.xml (95%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter-discovery/pom.xml (96%)
 copy spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java => java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClient.java (51%)
 rename spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java => java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClientConfiguration.java (95%)
 rename spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java => java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonClientConfiguration.java (94%)
 rename spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java => java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonConfiguration.java (91%)
 rename spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java => java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java (96%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java (97%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java (100%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories (81%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter-servlet/pom.xml (100%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/RestServletInitializer.java (100%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/package-info.java (100%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter-standalone/pom.xml (100%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter/pom.xml (100%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/EnableServiceComb.java (100%)
 rename {spring-boot2-starter-parent => java-chassis-spring-boot/spring-boot2-starter-parent}/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/ServiceCombSpringConfiguration.java (100%)
 delete mode 100644 spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java


[servicecomb-java-chassis] 04/05: [SCB-986] Re-structure spring related projects

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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit 87a535bd940f5d766bfcc04c3a56dcd8591bef7e
Author: Yang Bo <ya...@huawei.com>
AuthorDate: Fri Nov 16 16:56:59 2018 +0800

    [SCB-986] Re-structure spring related projects
---
 .../pom.xml                                        | 24 ++++++--------
 .../spring-boot-common}/pom.xml                    | 35 +++++++++++---------
 .../common/AbstractInstanceDiscoveryFilter.java    |  0
 .../springboot/common/DiscoveryClientUtil.java     |  0
 .../spring-boot-starter}/pom.xml                   |  2 +-
 .../spring-boot-starter-configuration/pom.xml      |  0
 .../spring-boot-starter-discovery/pom.xml          |  0
 .../starter/discovery/CseDiscoveryClient.java      |  0
 .../discovery/CseDiscoveryClientConfiguration.java |  0
 .../discovery/CseRibbonClientConfiguration.java    |  0
 .../starter/discovery/CseRibbonConfiguration.java  |  0
 .../CseRibbonEndpointDiscoveryFilter.java          |  0
 .../starter/discovery/InstanceDiscoveryFilter.java |  0
 .../starter/discovery/ServiceCombServerList.java   |  0
 .../springboot/starter/discovery/package-info.java |  0
 .../src/main/resources/META-INF/spring.factories   |  0
 .../starter/discovery/TestCseDiscoveryClient.java  |  0
 .../TestCseDiscoveryClientConfiguration.java       |  0
 .../TestCseRibbonClientConfiguration.java          |  0
 .../discovery/TestServiceCombServerList.java       |  0
 .../spring-boot-starter-provider/pom.xml           |  0
 .../src/main/resources/application.properties      |  0
 .../spring-boot-starter-registry/pom.xml           |  0
 .../starter/registry/RegistryIntializer.java       |  0
 .../ServiceCenterRegistryConfiguration.java        |  0
 .../src/main/resources/META-INF/spring.factories   |  0
 .../TestServiceCenterRegistryConfiguration.java    |  0
 .../spring-boot-starter-servicecomb/pom.xml        |  0
 .../starter/provider/EnableServiceComb.java        |  0
 .../provider/ServiceCombSpringConfiguration.java   |  0
 .../springboot/starter/provider/package-info.java  |  0
 .../spring-boot-starter-transport/pom.xml          |  0
 .../starter/transport/RestServletInitializer.java  |  0
 .../springboot/starter/transport/package-info.java |  0
 .../transport/TestRestServletInitializer.java      |  0
 .../spring-cloud-zuul-zipkin/pom.xml               |  0
 .../zuul/tracing/SpringTracingConfiguration.java   |  0
 .../cloud/zuul/tracing/TracePostZuulFilter.java    |  0
 .../cloud/zuul/tracing/TracePreZuulFilter.java     |  0
 .../tracing/SpringTracingConfigurationTest.java    |  0
 .../spring-boot-starter}/spring-cloud-zuul/pom.xml |  0
 .../spring/cloud/zuul/ContextHeaderZuulFilter.java |  0
 .../spring-boot2-starter-parent}/pom.xml           |  2 +-
 .../spring-boot2-starter-discovery/pom.xml         |  0
 .../starter/discovery/CseDiscoveryClient.java      |  0
 .../discovery/CseDiscoveryClientConfiguration.java |  0
 .../discovery/CseRibbonClientConfiguration.java    |  0
 .../starter/discovery/CseRibbonConfiguration.java  |  0
 .../CseRibbonEndpointDiscoveryFilter.java          |  0
 .../starter/discovery/InstanceDiscoveryFilter.java |  0
 .../starter/discovery/ServiceCombServerList.java   |  0
 .../starter/discovery/package-info.java            |  0
 .../src/main/resources/META-INF/spring.factories   |  0
 .../spring-boot2-starter-servlet/pom.xml           |  0
 .../starter/servlet/RestServletInitializer.java    |  0
 .../springboot2/starter/servlet/package-info.java  |  0
 .../spring-boot2-starter-standalone/pom.xml        |  0
 .../spring-boot2-starter/pom.xml                   |  0
 .../springboot2/starter/EnableServiceComb.java     |  0
 .../starter/ServiceCombSpringConfiguration.java    |  0
 pom.xml                                            |  4 +--
 spring-boot-common/pom.xml                         | 37 ----------------------
 62 files changed, 32 insertions(+), 72 deletions(-)

diff --git a/spring-boot-starter/spring-boot-starter-provider/pom.xml b/java-chassis-spring-boot/pom.xml
similarity index 70%
copy from spring-boot-starter/spring-boot-starter-provider/pom.xml
copy to java-chassis-spring-boot/pom.xml
index 9b45dd3..a20df52 100644
--- a/spring-boot-starter/spring-boot-starter-provider/pom.xml
+++ b/java-chassis-spring-boot/pom.xml
@@ -20,24 +20,18 @@
   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>
-    <artifactId>spring-boot-starter-parent</artifactId>
+    <artifactId>java-chassis</artifactId>
     <groupId>org.apache.servicecomb</groupId>
     <version>1.1.0-SNAPSHOT</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
+  <packaging>pom</packaging>
+  <artifactId>java-chassis-spring-boot</artifactId>
 
-  <artifactId>spring-boot-starter-provider</artifactId>
-  <name>Java Chassis::Spring Boot Starter::Provider</name>
+  <modules>
+    <module>spring-boot-common</module>
+    <module>spring-boot-starter</module>
+    <module>spring-boot2-starter-parent</module>
+  </modules>
 
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>spring-boot-starter-servicecomb</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>transport-rest-vertx</artifactId>
-    </dependency>
-  </dependencies>
-
-</project>
+</project>
\ No newline at end of file
diff --git a/spring-boot-starter/spring-cloud-zuul/pom.xml b/java-chassis-spring-boot/spring-boot-common/pom.xml
similarity index 76%
copy from spring-boot-starter/spring-cloud-zuul/pom.xml
copy to java-chassis-spring-boot/spring-boot-common/pom.xml
index 19d948a..bf17ea7 100644
--- a/spring-boot-starter/spring-cloud-zuul/pom.xml
+++ b/java-chassis-spring-boot/spring-boot-common/pom.xml
@@ -20,31 +20,36 @@
   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>
-    <artifactId>spring-boot-starter-parent</artifactId>
+    <artifactId>java-chassis-parent</artifactId>
     <groupId>org.apache.servicecomb</groupId>
     <version>1.1.0-SNAPSHOT</version>
+    <relativePath>../../parent</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
-  <artifactId>spring-cloud-zuul</artifactId>
-  <name>Java Chassis::Spring Boot Starter::Spring Cloud Zuul</name>
-
+  <artifactId>spring-boot-common</artifactId>
   <dependencies>
     <dependency>
       <groupId>org.apache.servicecomb</groupId>
-      <artifactId>java-chassis-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>foundation-config</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
       <artifactId>service-registry</artifactId>
     </dependency>
     <dependency>
-      <groupId>org.springframework.cloud</groupId>
-      <artifactId>spring-cloud-starter-zuul</artifactId>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>java-chassis-core</artifactId>
     </dependency>
   </dependencies>
-</project>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
\ No newline at end of file
diff --git a/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java
similarity index 100%
rename from spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java
rename to java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java
diff --git a/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java
similarity index 100%
rename from spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java
rename to java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java
diff --git a/spring-boot-starter/pom.xml b/java-chassis-spring-boot/spring-boot-starter/pom.xml
similarity index 97%
rename from spring-boot-starter/pom.xml
rename to java-chassis-spring-boot/spring-boot-starter/pom.xml
index c29c4de..fb83727 100644
--- a/spring-boot-starter/pom.xml
+++ b/java-chassis-spring-boot/spring-boot-starter/pom.xml
@@ -22,7 +22,7 @@
     <groupId>org.apache.servicecomb</groupId>
     <artifactId>java-chassis-parent</artifactId>
     <version>1.1.0-SNAPSHOT</version>
-    <relativePath>../parent</relativePath>
+    <relativePath>../../parent</relativePath>
   </parent>
   <artifactId>spring-boot-starter-parent</artifactId>
   <name>Java Chassis::Spring Boot Starter::Parent</name>
diff --git a/spring-boot-starter/spring-boot-starter-configuration/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-configuration/pom.xml
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-configuration/pom.xml
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-configuration/pom.xml
diff --git a/spring-boot-starter/spring-boot-starter-discovery/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/pom.xml
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/pom.xml
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/pom.xml
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/package-info.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/package-info.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/package-info.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/package-info.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestServiceCombServerList.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestServiceCombServerList.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestServiceCombServerList.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestServiceCombServerList.java
diff --git a/spring-boot-starter/spring-boot-starter-provider/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-provider/pom.xml
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-provider/pom.xml
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-provider/pom.xml
diff --git a/spring-boot-starter/spring-boot-starter-provider/src/main/resources/application.properties b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-provider/src/main/resources/application.properties
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-provider/src/main/resources/application.properties
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-provider/src/main/resources/application.properties
diff --git a/spring-boot-starter/spring-boot-starter-registry/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/pom.xml
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-registry/pom.xml
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/pom.xml
diff --git a/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/RegistryIntializer.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/RegistryIntializer.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/RegistryIntializer.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/RegistryIntializer.java
diff --git a/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/ServiceCenterRegistryConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/ServiceCenterRegistryConfiguration.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/ServiceCenterRegistryConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/java/org/apache/servicecomb/springboot/starter/registry/ServiceCenterRegistryConfiguration.java
diff --git a/spring-boot-starter/spring-boot-starter-registry/src/main/resources/META-INF/spring.factories b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-registry/src/main/resources/META-INF/spring.factories
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/main/resources/META-INF/spring.factories
diff --git a/spring-boot-starter/spring-boot-starter-registry/src/test/java/org/apache/servicecomb/springboot/starter/registry/TestServiceCenterRegistryConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/test/java/org/apache/servicecomb/springboot/starter/registry/TestServiceCenterRegistryConfiguration.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-registry/src/test/java/org/apache/servicecomb/springboot/starter/registry/TestServiceCenterRegistryConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-registry/src/test/java/org/apache/servicecomb/springboot/starter/registry/TestServiceCenterRegistryConfiguration.java
diff --git a/spring-boot-starter/spring-boot-starter-servicecomb/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/pom.xml
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-servicecomb/pom.xml
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/pom.xml
diff --git a/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/EnableServiceComb.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/EnableServiceComb.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/EnableServiceComb.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/EnableServiceComb.java
diff --git a/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/ServiceCombSpringConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/ServiceCombSpringConfiguration.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/ServiceCombSpringConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/ServiceCombSpringConfiguration.java
diff --git a/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/package-info.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/package-info.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/package-info.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-servicecomb/src/main/java/org/apache/servicecomb/springboot/starter/provider/package-info.java
diff --git a/spring-boot-starter/spring-boot-starter-transport/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/pom.xml
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-transport/pom.xml
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/pom.xml
diff --git a/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/RestServletInitializer.java
diff --git a/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/package-info.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/package-info.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/package-info.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/main/java/org/apache/servicecomb/springboot/starter/transport/package-info.java
diff --git a/spring-boot-starter/spring-boot-starter-transport/src/test/java/org/apache/servicecomb/springboot/starter/transport/TestRestServletInitializer.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/test/java/org/apache/servicecomb/springboot/starter/transport/TestRestServletInitializer.java
similarity index 100%
rename from spring-boot-starter/spring-boot-starter-transport/src/test/java/org/apache/servicecomb/springboot/starter/transport/TestRestServletInitializer.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-transport/src/test/java/org/apache/servicecomb/springboot/starter/transport/TestRestServletInitializer.java
diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/pom.xml
similarity index 100%
rename from spring-boot-starter/spring-cloud-zuul-zipkin/pom.xml
rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/pom.xml
diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfiguration.java
similarity index 100%
rename from spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfiguration.java
diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePostZuulFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePostZuulFilter.java
similarity index 100%
rename from spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePostZuulFilter.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePostZuulFilter.java
diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePreZuulFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePreZuulFilter.java
similarity index 100%
rename from spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePreZuulFilter.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/main/java/org/apache/servicecomb/spring/cloud/zuul/tracing/TracePreZuulFilter.java
diff --git a/spring-boot-starter/spring-cloud-zuul-zipkin/src/test/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfigurationTest.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/test/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfigurationTest.java
similarity index 100%
rename from spring-boot-starter/spring-cloud-zuul-zipkin/src/test/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfigurationTest.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul-zipkin/src/test/java/org/apache/servicecomb/spring/cloud/zuul/tracing/SpringTracingConfigurationTest.java
diff --git a/spring-boot-starter/spring-cloud-zuul/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul/pom.xml
similarity index 100%
rename from spring-boot-starter/spring-cloud-zuul/pom.xml
rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul/pom.xml
diff --git a/spring-boot-starter/spring-cloud-zuul/src/main/java/org/apache/servicecomb/spring/cloud/zuul/ContextHeaderZuulFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul/src/main/java/org/apache/servicecomb/spring/cloud/zuul/ContextHeaderZuulFilter.java
similarity index 100%
rename from spring-boot-starter/spring-cloud-zuul/src/main/java/org/apache/servicecomb/spring/cloud/zuul/ContextHeaderZuulFilter.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-cloud-zuul/src/main/java/org/apache/servicecomb/spring/cloud/zuul/ContextHeaderZuulFilter.java
diff --git a/spring-boot2-starter-parent/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/pom.xml
similarity index 95%
rename from spring-boot2-starter-parent/pom.xml
rename to java-chassis-spring-boot/spring-boot2-starter-parent/pom.xml
index 08f9117..eabeac7 100644
--- a/spring-boot2-starter-parent/pom.xml
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/pom.xml
@@ -23,7 +23,7 @@
     <groupId>org.apache.servicecomb</groupId>
     <artifactId>java-chassis-dependencies-springboot2</artifactId>
     <version>1.1.0-SNAPSHOT</version>
-    <relativePath>../java-chassis-dependencies-springboot2</relativePath>
+    <relativePath>../../java-chassis-dependencies-springboot2</relativePath>
   </parent>
   <modelVersion>4.0.0</modelVersion>
 
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/package-info.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-servlet/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/pom.xml
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-servlet/pom.xml
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/pom.xml
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/RestServletInitializer.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/RestServletInitializer.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/RestServletInitializer.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/RestServletInitializer.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/package-info.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/package-info.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/package-info.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-servlet/src/main/java/org/apache/servicecomb/springboot2/starter/servlet/package-info.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-standalone/pom.xml
diff --git a/spring-boot2-starter-parent/spring-boot2-starter/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/pom.xml
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter/pom.xml
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/pom.xml
diff --git a/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/EnableServiceComb.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/EnableServiceComb.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/EnableServiceComb.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/EnableServiceComb.java
diff --git a/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/ServiceCombSpringConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/ServiceCombSpringConfiguration.java
similarity index 100%
rename from spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/ServiceCombSpringConfiguration.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter/src/main/java/org/apache/servicecomb/springboot2/starter/ServiceCombSpringConfiguration.java
diff --git a/pom.xml b/pom.xml
index 55336f8..c63541d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -101,15 +101,13 @@
     <module>swagger</module>
     <module>core</module>
     <module>service-registry</module>
-    <module>spring-boot-starter</module>
     <module>tracing</module>
     <module>edge</module>
     <module>metrics</module>
     <module>dynamic-config</module>
     <module>archetypes</module>
     <module>java-chassis-dependencies-springboot2</module>
-    <module>spring-boot2-starter-parent</module>
-    <module>spring-boot-common</module>
+    <module>java-chassis-spring-boot</module>
   </modules>
 
   <build>
diff --git a/spring-boot-common/pom.xml b/spring-boot-common/pom.xml
deleted file mode 100644
index 2d87010..0000000
--- a/spring-boot-common/pom.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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>
-    <artifactId>java-chassis-dependencies</artifactId>
-    <groupId>org.apache.servicecomb</groupId>
-    <version>1.1.0-SNAPSHOT</version>
-  </parent>
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>spring-boot-common</artifactId>
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>service-registry</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>java-chassis-core</artifactId>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <configuration>
-          <source>1.8</source>
-          <target>1.8</target>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
\ No newline at end of file


[servicecomb-java-chassis] 02/05: [SCB-986] Make InstanceDiscoveryFilter standalone

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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit 7ec5e235fa4e271c92a436f76599d0406c438dab
Author: Yang Bo <ya...@huawei.com>
AuthorDate: Wed Nov 14 10:19:58 2018 +0800

    [SCB-986] Make InstanceDiscoveryFilter standalone
---
 .../starter/discovery/CseDiscoveryClient.java      | 43 -----------------
 .../starter/discovery/InstanceDiscoveryFilter.java | 54 ++++++++++++++++++++++
 .../starter/discovery/CseDiscoveryClient.java      | 47 ++-----------------
 .../starter/discovery/InstanceDiscoveryFilter.java | 54 ++++++++++++++++++++++
 4 files changed, 113 insertions(+), 85 deletions(-)

diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
index 4291a2d..e774e30 100644
--- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
+++ b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
@@ -20,27 +20,18 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.cloud.client.DefaultServiceInstance;
 import org.springframework.cloud.client.ServiceInstance;
 import org.springframework.cloud.client.discovery.DiscoveryClient;
 
 public class CseDiscoveryClient implements DiscoveryClient {
-  private static final Logger LOGGER = LoggerFactory.getLogger(CseDiscoveryClient.class);
 
   private Map<String, DiscoveryTree> discoveryTrees = new ConcurrentHashMapEx<>();
 
@@ -51,39 +42,6 @@ public class CseDiscoveryClient implements DiscoveryClient {
 
   @Override
   public List<ServiceInstance> getInstances(final String serviceId) {
-    class InstanceDiscoveryFilter implements DiscoveryFilter {
-      @Override
-      public int getOrder() {
-        return Short.MAX_VALUE;
-      }
-
-      @Override
-      public DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent) {
-        return parent.children()
-            .computeIfAbsent(context.getInputParameters(), etn -> createDiscoveryTreeNode(context, parent));
-      }
-
-      @SuppressWarnings("unchecked")
-      protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context,
-          DiscoveryTreeNode parent) {
-        String serviceName = context.getInputParameters();
-            List<ServiceInstance> instances = new ArrayList<>();
-        for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
-          for (String endpoint : instance.getEndpoints()) {
-              String scheme = endpoint.split(":", 2)[0];
-              if (!scheme.equalsIgnoreCase(Const.RESTFUL)) {
-                LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint);
-                continue;
-              }
-              URIEndpointObject uri = new URIEndpointObject(endpoint);
-              instances.add(new DefaultServiceInstance(serviceId, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
-          }
-        }
-        return new DiscoveryTreeNode()
-            .subName(parent, serviceName)
-            .data(instances);
-      }
-    };
 
     DiscoveryContext context = new DiscoveryContext();
     context.setInputParameters(serviceId);
@@ -102,7 +60,6 @@ public class CseDiscoveryClient implements DiscoveryClient {
     return serversVersionedCache.data();
   }
 
-  @Override
   @Deprecated
   public ServiceInstance getLocalServiceInstance() {
     return null;
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
new file mode 100644
index 0000000..4ed82d6
--- /dev/null
+++ b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
@@ -0,0 +1,54 @@
+package org.apache.servicecomb.springboot.starter.discovery;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.servicecomb.core.Const;
+import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
+import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.client.DefaultServiceInstance;
+import org.springframework.cloud.client.ServiceInstance;
+
+class InstanceDiscoveryFilter implements DiscoveryFilter {
+
+  private static final Logger LOGGER = LoggerFactory.getLogger(InstanceDiscoveryFilter.class);
+
+  @Override
+  public int getOrder() {
+    return Short.MAX_VALUE;
+  }
+
+  @Override
+  public DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent) {
+    return parent.children()
+        .computeIfAbsent(context.getInputParameters(), etn -> createDiscoveryTreeNode(context, parent));
+  }
+
+  @SuppressWarnings("unchecked")
+  protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context,
+      DiscoveryTreeNode parent) {
+    String serviceName = context.getInputParameters();
+    List<ServiceInstance> instances = new ArrayList<>();
+    for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
+      for (String endpoint : instance.getEndpoints()) {
+        String scheme = endpoint.split(":", 2)[0];
+        if (!scheme.equalsIgnoreCase(Const.RESTFUL)) {
+          LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint);
+          continue;
+        }
+        URIEndpointObject uri = new URIEndpointObject(endpoint);
+        instances.add(new DefaultServiceInstance(serviceName, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
+      }
+    }
+
+    return new DiscoveryTreeNode()
+        .subName(parent, serviceName)
+        .data(instances);
+  }
+};
\ No newline at end of file
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
index 306cfc0..1cb2d3b 100644
--- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
+++ b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
@@ -20,27 +20,18 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.cloud.client.DefaultServiceInstance;
 import org.springframework.cloud.client.ServiceInstance;
 import org.springframework.cloud.client.discovery.DiscoveryClient;
 
 public class CseDiscoveryClient implements DiscoveryClient {
-  private static final Logger LOGGER = LoggerFactory.getLogger(CseDiscoveryClient.class);
 
   private Map<String, DiscoveryTree> discoveryTrees = new ConcurrentHashMapEx<>();
 
@@ -51,39 +42,6 @@ public class CseDiscoveryClient implements DiscoveryClient {
 
   @Override
   public List<ServiceInstance> getInstances(final String serviceId) {
-    class InstanceDiscoveryFilter implements DiscoveryFilter {
-      @Override
-      public int getOrder() {
-        return Short.MAX_VALUE;
-      }
-
-      @Override
-      public DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent) {
-        return parent.children()
-            .computeIfAbsent(context.getInputParameters(), etn -> createDiscoveryTreeNode(context, parent));
-      }
-
-      @SuppressWarnings("unchecked")
-      protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context,
-          DiscoveryTreeNode parent) {
-        String serviceName = context.getInputParameters();
-        List<ServiceInstance> instances = new ArrayList<>();
-        for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
-          for (String endpoint : instance.getEndpoints()) {
-            String scheme = endpoint.split(":", 2)[0];
-            if (!scheme.equalsIgnoreCase(Const.RESTFUL)) {
-              LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint);
-              continue;
-            }
-            URIEndpointObject uri = new URIEndpointObject(endpoint);
-            instances.add(new DefaultServiceInstance(serviceId, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
-          }
-        }
-        return new DiscoveryTreeNode()
-            .subName(parent, serviceName)
-            .data(instances);
-      }
-    };
 
     DiscoveryContext context = new DiscoveryContext();
     context.setInputParameters(serviceId);
@@ -102,6 +60,11 @@ public class CseDiscoveryClient implements DiscoveryClient {
     return serversVersionedCache.data();
   }
 
+  @Deprecated
+  public ServiceInstance getLocalServiceInstance() {
+    return null;
+  }
+
   @Override
   public List<String> getServices() {
     ServiceRegistryClient client = RegistryUtils.getServiceRegistryClient();
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
new file mode 100644
index 0000000..a2c7828
--- /dev/null
+++ b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
@@ -0,0 +1,54 @@
+package org.apache.servicecomb.springboot2.starter.discovery;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.servicecomb.core.Const;
+import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
+import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.client.DefaultServiceInstance;
+import org.springframework.cloud.client.ServiceInstance;
+
+class InstanceDiscoveryFilter implements DiscoveryFilter {
+
+  private static final Logger LOGGER = LoggerFactory.getLogger(InstanceDiscoveryFilter.class);
+
+  @Override
+  public int getOrder() {
+    return Short.MAX_VALUE;
+  }
+
+  @Override
+  public DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent) {
+    return parent.children()
+        .computeIfAbsent(context.getInputParameters(), etn -> createDiscoveryTreeNode(context, parent));
+  }
+
+  @SuppressWarnings("unchecked")
+  protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context,
+      DiscoveryTreeNode parent) {
+    String serviceName = context.getInputParameters();
+    List<ServiceInstance> instances = new ArrayList<>();
+    for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
+      for (String endpoint : instance.getEndpoints()) {
+        String scheme = endpoint.split(":", 2)[0];
+        if (!scheme.equalsIgnoreCase(Const.RESTFUL)) {
+          LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint);
+          continue;
+        }
+        URIEndpointObject uri = new URIEndpointObject(endpoint);
+        instances.add(new DefaultServiceInstance(serviceName, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
+      }
+    }
+
+    return new DiscoveryTreeNode()
+        .subName(parent, serviceName)
+        .data(instances);
+  }
+};
\ No newline at end of file


[servicecomb-java-chassis] 03/05: [SCB-986] Move shared code of service discovery to spring-boot-common

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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit a0d9633df6f18cd2c12fcd8e1818bfcfa88fd12c
Author: Yang Bo <ya...@huawei.com>
AuthorDate: Thu Nov 15 11:41:30 2018 +0800

    [SCB-986] Move shared code of service discovery to spring-boot-common
---
 java-chassis-dependencies/pom.xml                  |  5 +++
 pom.xml                                            |  1 +
 spring-boot-common/pom.xml                         | 37 +++++++++++++++
 .../common/AbstractInstanceDiscoveryFilter.java    | 31 ++++++++++---
 .../springboot/common/DiscoveryClientUtil.java     | 25 ++++-------
 .../spring-boot-starter-discovery/pom.xml          |  4 ++
 .../starter/discovery/CseDiscoveryClient.java      | 42 +++--------------
 .../starter/discovery/InstanceDiscoveryFilter.java | 52 +++-------------------
 .../spring-boot2-starter-discovery/pom.xml         |  4 ++
 .../starter/discovery/CseDiscoveryClient.java      | 44 +++---------------
 .../starter/discovery/InstanceDiscoveryFilter.java | 51 +++------------------
 11 files changed, 104 insertions(+), 192 deletions(-)

diff --git a/java-chassis-dependencies/pom.xml b/java-chassis-dependencies/pom.xml
index 6ab3994..50a0778 100644
--- a/java-chassis-dependencies/pom.xml
+++ b/java-chassis-dependencies/pom.xml
@@ -1041,6 +1041,11 @@
         <version>1.1.0-SNAPSHOT</version>
       </dependency>
       <dependency>
+        <groupId>org.apache.servicecomb</groupId>
+        <artifactId>spring-boot-common</artifactId>
+        <version>1.1.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
         <groupId>com.google.protobuf</groupId>
         <artifactId>protobuf-java</artifactId>
         <version>3.5.1</version>
diff --git a/pom.xml b/pom.xml
index dbfd9c3..55336f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -109,6 +109,7 @@
     <module>archetypes</module>
     <module>java-chassis-dependencies-springboot2</module>
     <module>spring-boot2-starter-parent</module>
+    <module>spring-boot-common</module>
   </modules>
 
   <build>
diff --git a/spring-boot-common/pom.xml b/spring-boot-common/pom.xml
new file mode 100644
index 0000000..2d87010
--- /dev/null
+++ b/spring-boot-common/pom.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<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>
+    <artifactId>java-chassis-dependencies</artifactId>
+    <groupId>org.apache.servicecomb</groupId>
+    <version>1.1.0-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+
+  <artifactId>spring-boot-common</artifactId>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>service-registry</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>java-chassis-core</artifactId>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <source>1.8</source>
+          <target>1.8</target>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+</project>
\ No newline at end of file
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java b/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java
similarity index 57%
copy from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
copy to spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java
index 4ed82d6..be8503e 100644
--- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
+++ b/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java
@@ -1,4 +1,20 @@
-package org.apache.servicecomb.springboot.starter.discovery;
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES 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.servicecomb.springboot.common;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -12,12 +28,10 @@ import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.cloud.client.DefaultServiceInstance;
-import org.springframework.cloud.client.ServiceInstance;
 
-class InstanceDiscoveryFilter implements DiscoveryFilter {
+public abstract class AbstractInstanceDiscoveryFilter implements DiscoveryFilter {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(InstanceDiscoveryFilter.class);
+  private static final Logger LOGGER = LoggerFactory.getLogger(AbstractInstanceDiscoveryFilter.class);
 
   @Override
   public int getOrder() {
@@ -34,7 +48,8 @@ class InstanceDiscoveryFilter implements DiscoveryFilter {
   protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context,
       DiscoveryTreeNode parent) {
     String serviceName = context.getInputParameters();
-    List<ServiceInstance> instances = new ArrayList<>();
+
+    List<Object> instances = new ArrayList<>();
     for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
       for (String endpoint : instance.getEndpoints()) {
         String scheme = endpoint.split(":", 2)[0];
@@ -43,7 +58,7 @@ class InstanceDiscoveryFilter implements DiscoveryFilter {
           continue;
         }
         URIEndpointObject uri = new URIEndpointObject(endpoint);
-        instances.add(new DefaultServiceInstance(serviceName, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
+        instances.add(createInstance(serviceName, uri));
       }
     }
 
@@ -51,4 +66,6 @@ class InstanceDiscoveryFilter implements DiscoveryFilter {
         .subName(parent, serviceName)
         .data(instances);
   }
+
+  abstract protected Object createInstance(String name, URIEndpointObject uri);
 };
\ No newline at end of file
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java b/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java
similarity index 81%
copy from spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
copy to spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java
index e774e30..4aa3266 100644
--- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
+++ b/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.servicecomb.springboot.starter.discovery;
+package org.apache.servicecomb.springboot.common;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -27,28 +27,25 @@ import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
-import org.springframework.cloud.client.ServiceInstance;
-import org.springframework.cloud.client.discovery.DiscoveryClient;
 
-public class CseDiscoveryClient implements DiscoveryClient {
+public  class DiscoveryClientUtil<T> {
 
   private Map<String, DiscoveryTree> discoveryTrees = new ConcurrentHashMapEx<>();
+  private DiscoveryFilter filter = null;
 
-  @Override
-  public String description() {
-    return "Spring Cloud CSE Discovery Client";
+  public DiscoveryClientUtil(DiscoveryFilter filter){
+    this.filter = filter;
   }
 
-  @Override
-  public List<ServiceInstance> getInstances(final String serviceId) {
-
+  public List<T> getInstances(final String serviceId) {
     DiscoveryContext context = new DiscoveryContext();
     context.setInputParameters(serviceId);
 
     DiscoveryTree discoveryTree = discoveryTrees.computeIfAbsent(serviceId, key -> {
       DiscoveryTree tree =  new DiscoveryTree();
-      tree.addFilter(new InstanceDiscoveryFilter());
+      tree.addFilter(filter);
       return tree;
     });
 
@@ -60,12 +57,6 @@ public class CseDiscoveryClient implements DiscoveryClient {
     return serversVersionedCache.data();
   }
 
-  @Deprecated
-  public ServiceInstance getLocalServiceInstance() {
-    return null;
-  }
-
-  @Override
   public List<String> getServices() {
     ServiceRegistryClient client = RegistryUtils.getServiceRegistryClient();
     List<Microservice> services = client.getAllMicroservices();
diff --git a/spring-boot-starter/spring-boot-starter-discovery/pom.xml b/spring-boot-starter/spring-boot-starter-discovery/pom.xml
index 1ea2842..7ccfe9c 100644
--- a/spring-boot-starter/spring-boot-starter-discovery/pom.xml
+++ b/spring-boot-starter/spring-boot-starter-discovery/pom.xml
@@ -79,5 +79,9 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>java-chassis-core</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>spring-boot-common</artifactId>
+    </dependency>
   </dependencies>
 </project>
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
index e774e30..b44cfd1 100644
--- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
+++ b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
@@ -16,24 +16,15 @@
  */
 package org.apache.servicecomb.springboot.starter.discovery;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
-import org.apache.servicecomb.foundation.common.cache.VersionedCache;
-import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.springboot.common.DiscoveryClientUtil;
 import org.springframework.cloud.client.ServiceInstance;
 import org.springframework.cloud.client.discovery.DiscoveryClient;
 
 public class CseDiscoveryClient implements DiscoveryClient {
-
-  private Map<String, DiscoveryTree> discoveryTrees = new ConcurrentHashMapEx<>();
+  private DiscoveryClientUtil<ServiceInstance>
+      discoveryClientUtil = new DiscoveryClientUtil<>(new InstanceDiscoveryFilter());
 
   @Override
   public String description() {
@@ -42,22 +33,7 @@ public class CseDiscoveryClient implements DiscoveryClient {
 
   @Override
   public List<ServiceInstance> getInstances(final String serviceId) {
-
-    DiscoveryContext context = new DiscoveryContext();
-    context.setInputParameters(serviceId);
-
-    DiscoveryTree discoveryTree = discoveryTrees.computeIfAbsent(serviceId, key -> {
-      DiscoveryTree tree =  new DiscoveryTree();
-      tree.addFilter(new InstanceDiscoveryFilter());
-      return tree;
-    });
-
-    VersionedCache serversVersionedCache = discoveryTree.discovery(context,
-        RegistryUtils.getAppId(),
-        serviceId,
-        DefinitionConst.VERSION_RULE_ALL);
-
-    return serversVersionedCache.data();
+    return discoveryClientUtil.getInstances(serviceId);
   }
 
   @Deprecated
@@ -67,14 +43,6 @@ public class CseDiscoveryClient implements DiscoveryClient {
 
   @Override
   public List<String> getServices() {
-    ServiceRegistryClient client = RegistryUtils.getServiceRegistryClient();
-    List<Microservice> services = client.getAllMicroservices();
-    List<String> serviceIDList = new ArrayList<>();
-    if (null != services && !services.isEmpty()) {
-      for (Microservice service : services) {
-        serviceIDList.add(service.getServiceName());
-      }
-    }
-    return serviceIDList;
+    return discoveryClientUtil.getServices();
   }
 }
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
index 4ed82d6..ed516df 100644
--- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
+++ b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
@@ -1,54 +1,12 @@
 package org.apache.servicecomb.springboot.starter.discovery;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.servicecomb.springboot.common.AbstractInstanceDiscoveryFilter;
 import org.springframework.cloud.client.DefaultServiceInstance;
-import org.springframework.cloud.client.ServiceInstance;
-
-class InstanceDiscoveryFilter implements DiscoveryFilter {
-
-  private static final Logger LOGGER = LoggerFactory.getLogger(InstanceDiscoveryFilter.class);
 
+class InstanceDiscoveryFilter extends AbstractInstanceDiscoveryFilter {
   @Override
-  public int getOrder() {
-    return Short.MAX_VALUE;
-  }
-
-  @Override
-  public DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent) {
-    return parent.children()
-        .computeIfAbsent(context.getInputParameters(), etn -> createDiscoveryTreeNode(context, parent));
-  }
-
-  @SuppressWarnings("unchecked")
-  protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context,
-      DiscoveryTreeNode parent) {
-    String serviceName = context.getInputParameters();
-    List<ServiceInstance> instances = new ArrayList<>();
-    for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
-      for (String endpoint : instance.getEndpoints()) {
-        String scheme = endpoint.split(":", 2)[0];
-        if (!scheme.equalsIgnoreCase(Const.RESTFUL)) {
-          LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint);
-          continue;
-        }
-        URIEndpointObject uri = new URIEndpointObject(endpoint);
-        instances.add(new DefaultServiceInstance(serviceName, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
-      }
-    }
-
-    return new DiscoveryTreeNode()
-        .subName(parent, serviceName)
-        .data(instances);
+  protected Object createInstance(String name, URIEndpointObject uri) {
+    return new DefaultServiceInstance(name, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled());
   }
-};
\ No newline at end of file
+}
\ No newline at end of file
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml b/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
index bf8c58f..00d720d 100644
--- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
+++ b/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
@@ -98,5 +98,9 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>spring-boot2-starter</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>spring-boot-common</artifactId>
+    </dependency>
   </dependencies>
 </project>
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
index 1cb2d3b..b574108 100644
--- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
+++ b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
@@ -16,48 +16,24 @@
  */
 package org.apache.servicecomb.springboot2.starter.discovery;
 
-import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
-import org.apache.servicecomb.foundation.common.cache.VersionedCache;
-import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
-import org.apache.servicecomb.serviceregistry.RegistryUtils;
-import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
-import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.springboot.common.DiscoveryClientUtil;
 import org.springframework.cloud.client.ServiceInstance;
 import org.springframework.cloud.client.discovery.DiscoveryClient;
 
 public class CseDiscoveryClient implements DiscoveryClient {
-
-  private Map<String, DiscoveryTree> discoveryTrees = new ConcurrentHashMapEx<>();
+  private DiscoveryClientUtil<ServiceInstance>
+      discoveryClientUtil = new DiscoveryClientUtil<>(new InstanceDiscoveryFilter());
 
   @Override
   public String description() {
-    return "Spring Cloud CSE Discovery Client";
+    return "Spring Cloud 2 CSE Discovery Client";
   }
 
   @Override
   public List<ServiceInstance> getInstances(final String serviceId) {
-
-    DiscoveryContext context = new DiscoveryContext();
-    context.setInputParameters(serviceId);
-
-    DiscoveryTree discoveryTree = discoveryTrees.computeIfAbsent(serviceId, key -> {
-      DiscoveryTree tree =  new DiscoveryTree();
-      tree.addFilter(new InstanceDiscoveryFilter());
-      return tree;
-    });
-
-    VersionedCache serversVersionedCache = discoveryTree.discovery(context,
-        RegistryUtils.getAppId(),
-        serviceId,
-        DefinitionConst.VERSION_RULE_ALL);
-
-    return serversVersionedCache.data();
+    return discoveryClientUtil.getInstances(serviceId);
   }
 
   @Deprecated
@@ -67,14 +43,6 @@ public class CseDiscoveryClient implements DiscoveryClient {
 
   @Override
   public List<String> getServices() {
-    ServiceRegistryClient client = RegistryUtils.getServiceRegistryClient();
-    List<Microservice> services = client.getAllMicroservices();
-    List<String> serviceIDList = new ArrayList<>();
-    if (null != services && !services.isEmpty()) {
-      for (Microservice service : services) {
-        serviceIDList.add(service.getServiceName());
-      }
-    }
-    return serviceIDList;
+    return discoveryClientUtil.getServices();
   }
 }
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
index a2c7828..b972768 100644
--- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
+++ b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
@@ -1,54 +1,13 @@
 package org.apache.servicecomb.springboot2.starter.discovery;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.apache.servicecomb.springboot.common.AbstractInstanceDiscoveryFilter;
 import org.springframework.cloud.client.DefaultServiceInstance;
-import org.springframework.cloud.client.ServiceInstance;
-
-class InstanceDiscoveryFilter implements DiscoveryFilter {
-
-  private static final Logger LOGGER = LoggerFactory.getLogger(InstanceDiscoveryFilter.class);
-
-  @Override
-  public int getOrder() {
-    return Short.MAX_VALUE;
-  }
 
+class InstanceDiscoveryFilter extends AbstractInstanceDiscoveryFilter {
   @Override
-  public DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent) {
-    return parent.children()
-        .computeIfAbsent(context.getInputParameters(), etn -> createDiscoveryTreeNode(context, parent));
-  }
-
-  @SuppressWarnings("unchecked")
-  protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context,
-      DiscoveryTreeNode parent) {
-    String serviceName = context.getInputParameters();
-    List<ServiceInstance> instances = new ArrayList<>();
-    for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
-      for (String endpoint : instance.getEndpoints()) {
-        String scheme = endpoint.split(":", 2)[0];
-        if (!scheme.equalsIgnoreCase(Const.RESTFUL)) {
-          LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint);
-          continue;
-        }
-        URIEndpointObject uri = new URIEndpointObject(endpoint);
-        instances.add(new DefaultServiceInstance(serviceName, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
-      }
-    }
+  protected Object createInstance(String name, URIEndpointObject uri) {
 
-    return new DiscoveryTreeNode()
-        .subName(parent, serviceName)
-        .data(instances);
+    return new DefaultServiceInstance(name, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled());
   }
-};
\ No newline at end of file
+}
\ No newline at end of file


[servicecomb-java-chassis] 05/05: [SCB-986] Rename CseXXX to ScbXXX in discovery starter

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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit defbfa4e67504356f309a0c447840dae06f22726
Author: Yang Bo <ya...@huawei.com>
AuthorDate: Mon Nov 19 16:08:13 2018 +0800

    [SCB-986] Rename CseXXX to ScbXXX in discovery starter
---
 .../spring-boot-common/pom.xml                     |  4 ---
 ...lientUtil.java => AbstractDiscoveryClient.java} |  6 ++---
 ...eryFilter.java => InstanceDiscoveryFilter.java} | 21 ++++++++++------
 .../spring-boot-starter-discovery/pom.xml          |  4 ---
 .../starter/discovery/InstanceDiscoveryFilter.java | 12 ---------
 ...iscoveryClient.java => ScbDiscoveryClient.java} | 23 +++++++++--------
 ...n.java => ScbDiscoveryClientConfiguration.java} |  4 +--
 ...tion.java => ScbRibbonClientConfiguration.java} |  2 +-
 ...figuration.java => ScbRibbonConfiguration.java} |  4 +--
 ....java => ScbRibbonEndpointDiscoveryFilter.java} |  2 +-
 .../starter/discovery/ServiceCombServerList.java   |  2 +-
 .../src/main/resources/META-INF/spring.factories   |  8 +++---
 ...veryClient.java => TestScbDiscoveryClient.java} |  4 +--
 ...va => TestScbDiscoveryClientConfiguration.java} |  6 ++---
 ....java => TestScbRibbonClientConfiguration.java} |  4 +--
 .../spring-boot2-starter-discovery/pom.xml         |  4 ---
 .../starter/discovery/InstanceDiscoveryFilter.java | 13 ----------
 ...iscoveryClient.java => ScbDiscoveryClient.java} | 29 +++++++++-------------
 ...n.java => ScbDiscoveryClientConfiguration.java} |  4 +--
 ...tion.java => ScbRibbonClientConfiguration.java} |  2 +-
 ...figuration.java => ScbRibbonConfiguration.java} |  4 +--
 ....java => ScbRibbonEndpointDiscoveryFilter.java} |  2 +-
 .../starter/discovery/ServiceCombServerList.java   |  2 +-
 .../src/main/resources/META-INF/spring.factories   |  8 +++---
 24 files changed, 70 insertions(+), 104 deletions(-)

diff --git a/java-chassis-spring-boot/spring-boot-common/pom.xml b/java-chassis-spring-boot/spring-boot-common/pom.xml
index bf17ea7..ad6f288 100644
--- a/java-chassis-spring-boot/spring-boot-common/pom.xml
+++ b/java-chassis-spring-boot/spring-boot-common/pom.xml
@@ -33,10 +33,6 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>service-registry</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
-      <artifactId>java-chassis-core</artifactId>
-    </dependency>
   </dependencies>
 
   <build>
diff --git a/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java
similarity index 94%
rename from java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java
rename to java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java
index 4aa3266..f114439 100644
--- a/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/DiscoveryClientUtil.java
+++ b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractDiscoveryClient.java
@@ -30,16 +30,16 @@ import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
 
-public  class DiscoveryClientUtil<T> {
+public abstract class AbstractDiscoveryClient {
 
   private Map<String, DiscoveryTree> discoveryTrees = new ConcurrentHashMapEx<>();
   private DiscoveryFilter filter = null;
 
-  public DiscoveryClientUtil(DiscoveryFilter filter){
+  public AbstractDiscoveryClient(DiscoveryFilter filter){
     this.filter = filter;
   }
 
-  public List<T> getInstances(final String serviceId) {
+  public <T> List<T> doGetInstances(final String serviceId) {
     DiscoveryContext context = new DiscoveryContext();
     context.setInputParameters(serviceId);
 
diff --git a/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java
similarity index 82%
rename from java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java
rename to java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java
index be8503e..86f84a9 100644
--- a/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/AbstractInstanceDiscoveryFilter.java
+++ b/java-chassis-spring-boot/spring-boot-common/src/main/java/org/apache/servicecomb/springboot/common/InstanceDiscoveryFilter.java
@@ -20,7 +20,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
-import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
 import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
@@ -29,9 +28,19 @@ import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public abstract class AbstractInstanceDiscoveryFilter implements DiscoveryFilter {
+public class InstanceDiscoveryFilter implements DiscoveryFilter {
 
-  private static final Logger LOGGER = LoggerFactory.getLogger(AbstractInstanceDiscoveryFilter.class);
+  private static final Logger LOGGER = LoggerFactory.getLogger(InstanceDiscoveryFilter.class);
+
+  public interface InstanceFactory {
+    Object createInstance(String name, URIEndpointObject uri);
+  }
+
+  InstanceFactory instanceFactory;
+
+  public InstanceDiscoveryFilter(InstanceFactory factory){
+    instanceFactory = factory;
+  }
 
   @Override
   public int getOrder() {
@@ -53,12 +62,12 @@ public abstract class AbstractInstanceDiscoveryFilter implements DiscoveryFilter
     for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
       for (String endpoint : instance.getEndpoints()) {
         String scheme = endpoint.split(":", 2)[0];
-        if (!scheme.equalsIgnoreCase(Const.RESTFUL)) {
+        if (!scheme.equalsIgnoreCase("rest")) {
           LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint);
           continue;
         }
         URIEndpointObject uri = new URIEndpointObject(endpoint);
-        instances.add(createInstance(serviceName, uri));
+        instances.add(instanceFactory.createInstance(serviceName, uri));
       }
     }
 
@@ -66,6 +75,4 @@ public abstract class AbstractInstanceDiscoveryFilter implements DiscoveryFilter
         .subName(parent, serviceName)
         .data(instances);
   }
-
-  abstract protected Object createInstance(String name, URIEndpointObject uri);
 };
\ No newline at end of file
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/pom.xml b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/pom.xml
index 7ccfe9c..7ff4b87 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/pom.xml
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/pom.xml
@@ -77,10 +77,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.servicecomb</groupId>
-      <artifactId>java-chassis-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
       <artifactId>spring-boot-common</artifactId>
     </dependency>
   </dependencies>
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
deleted file mode 100644
index ed516df..0000000
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/InstanceDiscoveryFilter.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.apache.servicecomb.springboot.starter.discovery;
-
-import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.springboot.common.AbstractInstanceDiscoveryFilter;
-import org.springframework.cloud.client.DefaultServiceInstance;
-
-class InstanceDiscoveryFilter extends AbstractInstanceDiscoveryFilter {
-  @Override
-  protected Object createInstance(String name, URIEndpointObject uri) {
-    return new DefaultServiceInstance(name, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled());
-  }
-}
\ No newline at end of file
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClient.java
similarity index 63%
rename from java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClient.java
index b44cfd1..22565b6 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClient.java
@@ -18,13 +18,19 @@ package org.apache.servicecomb.springboot.starter.discovery;
 
 import java.util.List;
 
-import org.apache.servicecomb.springboot.common.DiscoveryClientUtil;
+import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
+import org.apache.servicecomb.springboot.common.AbstractDiscoveryClient;
+import org.apache.servicecomb.springboot.common.InstanceDiscoveryFilter;
+import org.springframework.cloud.client.DefaultServiceInstance;
 import org.springframework.cloud.client.ServiceInstance;
 import org.springframework.cloud.client.discovery.DiscoveryClient;
 
-public class CseDiscoveryClient implements DiscoveryClient {
-  private DiscoveryClientUtil<ServiceInstance>
-      discoveryClientUtil = new DiscoveryClientUtil<>(new InstanceDiscoveryFilter());
+public class ScbDiscoveryClient extends AbstractDiscoveryClient implements DiscoveryClient {
+
+  public ScbDiscoveryClient() {
+    super(new InstanceDiscoveryFilter((String name, URIEndpointObject uri) ->
+        new DefaultServiceInstance(name, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled())));
+  }
 
   @Override
   public String description() {
@@ -32,17 +38,12 @@ public class CseDiscoveryClient implements DiscoveryClient {
   }
 
   @Override
-  public List<ServiceInstance> getInstances(final String serviceId) {
-    return discoveryClientUtil.getInstances(serviceId);
-  }
-
   @Deprecated
   public ServiceInstance getLocalServiceInstance() {
     return null;
   }
 
-  @Override
-  public List<String> getServices() {
-    return discoveryClientUtil.getServices();
+  public List<ServiceInstance> getInstances(String serviceId) {
+    return super.doGetInstances(serviceId);
   }
 }
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClientConfiguration.java
similarity index 95%
rename from java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClientConfiguration.java
index a6c377e..b26f459 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClientConfiguration.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbDiscoveryClientConfiguration.java
@@ -26,11 +26,11 @@ import org.springframework.core.annotation.Order;
 
 @AutoConfigureBefore(SimpleDiscoveryClientAutoConfiguration.class)
 @Configuration
-public class CseDiscoveryClientConfiguration {
+public class ScbDiscoveryClientConfiguration {
   @Bean
   @Order(5000)
   @ConditionalOnProperty(value = "servicecomb.discoveryClient.enabled", havingValue = "true", matchIfMissing = true)
   public DiscoveryClient cseDiscoveryClient() {
-    return new CseDiscoveryClient();
+    return new ScbDiscoveryClient();
   }
 }
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonClientConfiguration.java
similarity index 94%
rename from java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonClientConfiguration.java
index 6358cbd..d93dd08 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonClientConfiguration.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonClientConfiguration.java
@@ -29,7 +29,7 @@ import com.netflix.loadbalancer.ServerList;
  * @see <a href="http://cloud.spring.io/spring-cloud-static/Camden.SR4/#_customizing_the_ribbon_client">
  * Customizing the Ribbon Client </a>
  */
-public class CseRibbonClientConfiguration {
+public class ScbRibbonClientConfiguration {
   @Bean
   public ServerList<Server> ribbonServerList(
       IClientConfig config) {
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonConfiguration.java
similarity index 91%
rename from java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonConfiguration.java
index b5ebd8b..4cabac6 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonConfiguration.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonConfiguration.java
@@ -28,7 +28,7 @@ import org.springframework.context.annotation.Configuration;
 @EnableConfigurationProperties
 @ConditionalOnBean(SpringClientFactory.class)
 @AutoConfigureAfter(RibbonAutoConfiguration.class)
-@RibbonClients(defaultConfiguration = CseRibbonClientConfiguration.class)
-public class CseRibbonConfiguration {
+@RibbonClients(defaultConfiguration = ScbRibbonClientConfiguration.class)
+public class ScbRibbonConfiguration {
 
 }
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
similarity index 96%
rename from java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
index 65f72d7..a9a4de5 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
@@ -25,7 +25,7 @@ import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
 
 import com.netflix.loadbalancer.Server;
 
-public class CseRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter {
+public class ScbRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter {
   @Override
   protected String findTransportName(DiscoveryContext context, DiscoveryTreeNode parent) {
     //only need rest endpoints
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java
index 13f092b..aa20b39 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/ServiceCombServerList.java
@@ -35,7 +35,7 @@ public class ServiceCombServerList extends AbstractServerList<Server> {
   private String serviceId;
 
   public ServiceCombServerList() {
-    discoveryTree.addFilter(new CseRibbonEndpointDiscoveryFilter());
+    discoveryTree.addFilter(new ScbRibbonEndpointDiscoveryFilter());
   }
 
   @Override
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories
index 25c4a47..92267e7 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/main/resources/META-INF/spring.factories
@@ -16,9 +16,9 @@
 ## ---------------------------------------------------------------------------
 
 org.apache.servicecomb.springboot.starter.provider.EnableServiceComb=\
-  org.apache.servicecomb.springboot.starter.discovery.CseDiscoveryClientConfiguration,\
-  org.apache.servicecomb.springboot.starter.discovery.CseRibbonConfiguration
+  org.apache.servicecomb.springboot.starter.discovery.ScbDiscoveryClientConfiguration,\
+  org.apache.servicecomb.springboot.starter.discovery.ScbRibbonConfiguration
 org.springframework.cloud.client.discovery.EnableDiscoveryClient=\
-  org.apache.servicecomb.springboot.starter.discovery.CseDiscoveryClientConfiguration
+  org.apache.servicecomb.springboot.starter.discovery.ScbDiscoveryClientConfiguration
 org.springframework.cloud.netflix.ribbon.RibbonClient=\
-  org.apache.servicecomb.springboot.starter.discovery.CseRibbonConfiguration
\ No newline at end of file
+  org.apache.servicecomb.springboot.starter.discovery.ScbRibbonConfiguration
\ No newline at end of file
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClient.java
similarity index 97%
rename from java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClient.java
index 9ed7946..786fd0e 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClient.java
@@ -35,7 +35,7 @@ import mockit.Expectations;
 import mockit.Injectable;
 import mockit.Mocked;
 
-public class TestCseDiscoveryClient {
+public class TestScbDiscoveryClient {
   @Test
   public void testCseDiscoveryClient(@Mocked RegistryUtils registryUtils,
       @Injectable InstanceCacheManager instanceCacheManager,
@@ -69,7 +69,7 @@ public class TestCseDiscoveryClient {
       }
     };
 
-    DiscoveryClient client = new CseDiscoveryClient();
+    DiscoveryClient client = new ScbDiscoveryClient();
     Assert.assertEquals("Spring Cloud CSE Discovery Client", client.description());
     Assert.assertEquals(2, client.getServices().size());
     Assert.assertEquals("server2", client.getServices().get(1));
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClientConfiguration.java
similarity index 84%
rename from java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClientConfiguration.java
index ad8f4dc..455c95e 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClientConfiguration.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbDiscoveryClientConfiguration.java
@@ -19,10 +19,10 @@ package org.apache.servicecomb.springboot.starter.discovery;
 import org.junit.Assert;
 import org.junit.Test;
 
-public class TestCseDiscoveryClientConfiguration {
+public class TestScbDiscoveryClientConfiguration {
   @Test
   public void testCseDiscoveryClientConfiguration() {
-    CseDiscoveryClientConfiguration discoveryClientConfiguration = new CseDiscoveryClientConfiguration();
-    Assert.assertTrue(discoveryClientConfiguration.cseDiscoveryClient() instanceof CseDiscoveryClient);
+    ScbDiscoveryClientConfiguration discoveryClientConfiguration = new ScbDiscoveryClientConfiguration();
+    Assert.assertTrue(discoveryClientConfiguration.cseDiscoveryClient() instanceof ScbDiscoveryClient);
   }
 }
diff --git a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbRibbonClientConfiguration.java
similarity index 91%
rename from java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbRibbonClientConfiguration.java
index 078905f..d833dd7 100644
--- a/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseRibbonClientConfiguration.java
+++ b/java-chassis-spring-boot/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestScbRibbonClientConfiguration.java
@@ -24,10 +24,10 @@ import com.netflix.client.config.IClientConfig;
 
 import mockit.Injectable;
 
-public class TestCseRibbonClientConfiguration {
+public class TestScbRibbonClientConfiguration {
   @Test
   public void testCseRibbonClientConfiguration(@Injectable IClientConfig clientConfig) {
-    CseRibbonClientConfiguration config = new CseRibbonClientConfiguration();
+    ScbRibbonClientConfiguration config = new ScbRibbonClientConfiguration();
     Assert.assertTrue(config.ribbonServerList(clientConfig) instanceof ServiceCombServerList);
   }
 }
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
index 00d720d..e52c5bb 100644
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
@@ -92,10 +92,6 @@
     </dependency>
     <dependency>
       <groupId>org.apache.servicecomb</groupId>
-      <artifactId>java-chassis-core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicecomb</groupId>
       <artifactId>spring-boot2-starter</artifactId>
     </dependency>
     <dependency>
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
deleted file mode 100644
index b972768..0000000
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/InstanceDiscoveryFilter.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.apache.servicecomb.springboot2.starter.discovery;
-
-import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
-import org.apache.servicecomb.springboot.common.AbstractInstanceDiscoveryFilter;
-import org.springframework.cloud.client.DefaultServiceInstance;
-
-class InstanceDiscoveryFilter extends AbstractInstanceDiscoveryFilter {
-  @Override
-  protected Object createInstance(String name, URIEndpointObject uri) {
-
-    return new DefaultServiceInstance(name, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled());
-  }
-}
\ No newline at end of file
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClient.java
similarity index 61%
rename from java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClient.java
index b574108..eddafc3 100644
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClient.java
@@ -18,31 +18,26 @@ package org.apache.servicecomb.springboot2.starter.discovery;
 
 import java.util.List;
 
-import org.apache.servicecomb.springboot.common.DiscoveryClientUtil;
+import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
+import org.apache.servicecomb.springboot.common.AbstractDiscoveryClient;
+import org.apache.servicecomb.springboot.common.InstanceDiscoveryFilter;
+import org.springframework.cloud.client.DefaultServiceInstance;
 import org.springframework.cloud.client.ServiceInstance;
 import org.springframework.cloud.client.discovery.DiscoveryClient;
 
-public class CseDiscoveryClient implements DiscoveryClient {
-  private DiscoveryClientUtil<ServiceInstance>
-      discoveryClientUtil = new DiscoveryClientUtil<>(new InstanceDiscoveryFilter());
+public class ScbDiscoveryClient extends AbstractDiscoveryClient implements DiscoveryClient {
 
-  @Override
-  public String description() {
-    return "Spring Cloud 2 CSE Discovery Client";
+  public ScbDiscoveryClient() {
+    super(new InstanceDiscoveryFilter((String name, URIEndpointObject uri) ->
+        new DefaultServiceInstance(name, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled())));
   }
 
   @Override
-  public List<ServiceInstance> getInstances(final String serviceId) {
-    return discoveryClientUtil.getInstances(serviceId);
-  }
-
-  @Deprecated
-  public ServiceInstance getLocalServiceInstance() {
-    return null;
+  public String description() {
+    return "Spring Cloud 2 CSE Discovery Client";
   }
 
-  @Override
-  public List<String> getServices() {
-    return discoveryClientUtil.getServices();
+  public List<ServiceInstance> getInstances(String serviceId) {
+    return super.doGetInstances(serviceId);
   }
 }
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClientConfiguration.java
similarity index 95%
rename from java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClientConfiguration.java
index c99befd..75730b7 100644
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClientConfiguration.java
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbDiscoveryClientConfiguration.java
@@ -26,11 +26,11 @@ import org.springframework.core.annotation.Order;
 
 @AutoConfigureBefore(SimpleDiscoveryClientAutoConfiguration.class)
 @Configuration
-public class CseDiscoveryClientConfiguration {
+public class ScbDiscoveryClientConfiguration {
   @Bean
   @Order(5000)
   @ConditionalOnProperty(value = "servicecomb.discoveryClient.enabled", havingValue = "true", matchIfMissing = true)
   public DiscoveryClient cseDiscoveryClient() {
-    return new CseDiscoveryClient();
+    return new ScbDiscoveryClient();
   }
 }
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonClientConfiguration.java
similarity index 94%
rename from java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonClientConfiguration.java
index 3ff1fd3..fa896dc 100644
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonClientConfiguration.java
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonClientConfiguration.java
@@ -29,7 +29,7 @@ import com.netflix.loadbalancer.ServerList;
  * @see <a href="http://cloud.spring.io/spring-cloud-static/Camden.SR4/#_customizing_the_ribbon_client">
  * Customizing the Ribbon Client </a>
  */
-public class CseRibbonClientConfiguration {
+public class ScbRibbonClientConfiguration {
   @Bean
   public ServerList<Server> ribbonServerList(
       IClientConfig config) {
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonConfiguration.java
similarity index 91%
rename from java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonConfiguration.java
index 72f905e..0ffeab3 100644
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonConfiguration.java
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonConfiguration.java
@@ -28,7 +28,7 @@ import org.springframework.context.annotation.Configuration;
 @EnableConfigurationProperties
 @ConditionalOnBean(SpringClientFactory.class)
 @AutoConfigureAfter(RibbonAutoConfiguration.class)
-@RibbonClients(defaultConfiguration = CseRibbonClientConfiguration.class)
-public class CseRibbonConfiguration {
+@RibbonClients(defaultConfiguration = ScbRibbonClientConfiguration.class)
+public class ScbRibbonConfiguration {
 
 }
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
similarity index 96%
rename from java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
rename to java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
index 8ab7d36..1f17df5 100644
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseRibbonEndpointDiscoveryFilter.java
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ScbRibbonEndpointDiscoveryFilter.java
@@ -25,7 +25,7 @@ import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
 
 import com.netflix.loadbalancer.Server;
 
-public class CseRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter {
+public class ScbRibbonEndpointDiscoveryFilter extends AbstractEndpointDiscoveryFilter {
   @Override
   protected String findTransportName(DiscoveryContext context, DiscoveryTreeNode parent) {
     //only need rest endpoints
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
index 4592ea9..61ac3ea 100644
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/ServiceCombServerList.java
@@ -35,7 +35,7 @@ public class ServiceCombServerList extends AbstractServerList<Server> {
   private String serviceId;
 
   public ServiceCombServerList() {
-    discoveryTree.addFilter(new CseRibbonEndpointDiscoveryFilter());
+    discoveryTree.addFilter(new ScbRibbonEndpointDiscoveryFilter());
   }
 
   @Override
diff --git a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories
index 268f112..de5a9fc 100644
--- a/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories
+++ b/java-chassis-spring-boot/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/resources/META-INF/spring.factories
@@ -16,9 +16,9 @@
 ## ---------------------------------------------------------------------------
 
 org.apache.servicecomb.springboot.starter.provider.EnableServiceComb=\
-  org.apache.servicecomb.springboot2.starter.discovery.CseDiscoveryClientConfiguration,\
-  org.apache.servicecomb.springboot2.starter.discovery.CseRibbonConfiguration
+  org.apache.servicecomb.springboot2.starter.discovery.ScbDiscoveryClientConfiguration,\
+  org.apache.servicecomb.springboot2.starter.discovery.ScbRibbonConfiguration
 org.springframework.cloud.client.discovery.EnableDiscoveryClient=\
-  org.apache.servicecomb.springboot2.starter.discovery.CseDiscoveryClientConfiguration
+  org.apache.servicecomb.springboot2.starter.discovery.ScbDiscoveryClientConfiguration
 org.springframework.cloud.netflix.ribbon.RibbonClient=\
-  org.apache.servicecomb.springboot2.starter.discovery.CseRibbonConfiguration
\ No newline at end of file
+  org.apache.servicecomb.springboot2.starter.discovery.ScbRibbonConfiguration
\ No newline at end of file


[servicecomb-java-chassis] 01/05: [SCB-986] Cache instances result in CseDiscoveryClient

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

liubao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/servicecomb-java-chassis.git

commit 10032bdb70200466f69eaa2bf85b0488ec091814
Author: Yang Bo <ya...@huawei.com>
AuthorDate: Wed Oct 31 09:38:40 2018 +0800

    [SCB-986] Cache instances result in CseDiscoveryClient
---
 .../spring-boot-starter-discovery/pom.xml          |  4 ++
 .../starter/discovery/CseDiscoveryClient.java      | 58 ++++++++++++++++++----
 .../starter/discovery/TestCseDiscoveryClient.java  | 22 ++++----
 .../spring-boot2-starter-discovery/pom.xml         |  4 ++
 .../starter/discovery/CseDiscoveryClient.java      | 58 ++++++++++++++++++----
 5 files changed, 113 insertions(+), 33 deletions(-)

diff --git a/spring-boot-starter/spring-boot-starter-discovery/pom.xml b/spring-boot-starter/spring-boot-starter-discovery/pom.xml
index b8d6b2c..1ea2842 100644
--- a/spring-boot-starter/spring-boot-starter-discovery/pom.xml
+++ b/spring-boot-starter/spring-boot-starter-discovery/pom.xml
@@ -75,5 +75,9 @@
       <groupId>org.apache.servicecomb</groupId>
       <artifactId>service-registry</artifactId>
     </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
+      <artifactId>java-chassis-core</artifactId>
+    </dependency>
   </dependencies>
 </project>
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
index ef48575..4291a2d 100644
--- a/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
+++ b/spring-boot-starter/spring-boot-starter-discovery/src/main/java/org/apache/servicecomb/springboot/starter/discovery/CseDiscoveryClient.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
@@ -29,12 +30,18 @@ import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.cloud.client.DefaultServiceInstance;
 import org.springframework.cloud.client.ServiceInstance;
 import org.springframework.cloud.client.discovery.DiscoveryClient;
 
 public class CseDiscoveryClient implements DiscoveryClient {
+  private static final Logger LOGGER = LoggerFactory.getLogger(CseDiscoveryClient.class);
+
   private Map<String, DiscoveryTree> discoveryTrees = new ConcurrentHashMapEx<>();
 
   @Override
@@ -44,24 +51,55 @@ public class CseDiscoveryClient implements DiscoveryClient {
 
   @Override
   public List<ServiceInstance> getInstances(final String serviceId) {
+    class InstanceDiscoveryFilter implements DiscoveryFilter {
+      @Override
+      public int getOrder() {
+        return Short.MAX_VALUE;
+      }
+
+      @Override
+      public DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent) {
+        return parent.children()
+            .computeIfAbsent(context.getInputParameters(), etn -> createDiscoveryTreeNode(context, parent));
+      }
+
+      @SuppressWarnings("unchecked")
+      protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context,
+          DiscoveryTreeNode parent) {
+        String serviceName = context.getInputParameters();
+            List<ServiceInstance> instances = new ArrayList<>();
+        for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
+          for (String endpoint : instance.getEndpoints()) {
+              String scheme = endpoint.split(":", 2)[0];
+              if (!scheme.equalsIgnoreCase(Const.RESTFUL)) {
+                LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint);
+                continue;
+              }
+              URIEndpointObject uri = new URIEndpointObject(endpoint);
+              instances.add(new DefaultServiceInstance(serviceId, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
+          }
+        }
+        return new DiscoveryTreeNode()
+            .subName(parent, serviceName)
+            .data(instances);
+      }
+    };
+
     DiscoveryContext context = new DiscoveryContext();
     context.setInputParameters(serviceId);
+
     DiscoveryTree discoveryTree = discoveryTrees.computeIfAbsent(serviceId, key -> {
-      return new DiscoveryTree();
+      DiscoveryTree tree =  new DiscoveryTree();
+      tree.addFilter(new InstanceDiscoveryFilter());
+      return tree;
     });
+
     VersionedCache serversVersionedCache = discoveryTree.discovery(context,
         RegistryUtils.getAppId(),
         serviceId,
         DefinitionConst.VERSION_RULE_ALL);
-    Map<String, MicroserviceInstance> servers = serversVersionedCache.data();
-    List<ServiceInstance> instances = new ArrayList<>(servers.size());
-    for (MicroserviceInstance s : servers.values()) {
-      for (String endpoint : s.getEndpoints()) {
-        URIEndpointObject uri = new URIEndpointObject(endpoint);
-        instances.add(new DefaultServiceInstance(serviceId, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
-      }
-    }
-    return instances;
+
+    return serversVersionedCache.data();
   }
 
   @Override
diff --git a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java b/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java
index 727b306..9ed7946 100644
--- a/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java
+++ b/spring-boot-starter/spring-boot-starter-discovery/src/test/java/org/apache/servicecomb/springboot/starter/discovery/TestCseDiscoveryClient.java
@@ -24,9 +24,8 @@ import java.util.Map;
 import org.apache.servicecomb.serviceregistry.RegistryUtils;
 import org.apache.servicecomb.serviceregistry.api.registry.Microservice;
 import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
+import org.apache.servicecomb.serviceregistry.cache.InstanceCacheManager;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
-import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
 import org.junit.Assert;
 import org.junit.Test;
@@ -39,9 +38,8 @@ import mockit.Mocked;
 public class TestCseDiscoveryClient {
   @Test
   public void testCseDiscoveryClient(@Mocked RegistryUtils registryUtils,
-      @Injectable ServiceRegistryClient serviceRegistryClient,
-      @Mocked DiscoveryTree discoveryTree,
-      @Injectable DiscoveryTreeNode versionedCache) {
+      @Injectable InstanceCacheManager instanceCacheManager,
+      @Injectable ServiceRegistryClient serviceRegistryClient) {
     List<Microservice> microserviceList = new ArrayList<>();
     Microservice service1 = new Microservice();
     service1.setServiceName("service1");
@@ -50,7 +48,7 @@ public class TestCseDiscoveryClient {
     microserviceList.add(server2);
     server2.setServiceName("server2");
 
-    Map<String, MicroserviceInstance> servers = new HashMap<>();
+
     List<String> endpoints = new ArrayList<>();
     endpoints.add("rest://localhost:3333");
     endpoints.add("rest://localhost:4444");
@@ -58,18 +56,16 @@ public class TestCseDiscoveryClient {
     instance1.setServiceId("service1");
     instance1.setInstanceId("service1-instance1");
     instance1.setEndpoints(endpoints);
-    servers.put("service1-instance1", instance1);
 
+    Map<String, MicroserviceInstance> data = new HashMap<>();
+    data.put("service1-instance1", instance1);
+    DiscoveryTreeNode parent = new DiscoveryTreeNode().name("parent").data(data);
     new Expectations() {
       {
-        RegistryUtils.getServiceRegistryClient();
-        result = serviceRegistryClient;
+        instanceCacheManager.getOrCreateVersionedCache(anyString, anyString, anyString);
+        result = parent;
         serviceRegistryClient.getAllMicroservices();
         result = microserviceList;
-        discoveryTree.discovery((DiscoveryContext) any, anyString, anyString, anyString);
-        result = versionedCache;
-        versionedCache.data();
-        result = servers;
       }
     };
 
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml b/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
index 3106b16..bf8c58f 100644
--- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
+++ b/spring-boot2-starter-parent/spring-boot2-starter-discovery/pom.xml
@@ -92,6 +92,10 @@
     </dependency>
     <dependency>
       <groupId>org.apache.servicecomb</groupId>
+      <artifactId>java-chassis-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.servicecomb</groupId>
       <artifactId>spring-boot2-starter</artifactId>
     </dependency>
   </dependencies>
diff --git a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
index ad605af..306cfc0 100644
--- a/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
+++ b/spring-boot2-starter-parent/spring-boot2-starter-discovery/src/main/java/org/apache/servicecomb/springboot2/starter/discovery/CseDiscoveryClient.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.servicecomb.core.Const;
 import org.apache.servicecomb.foundation.common.cache.VersionedCache;
 import org.apache.servicecomb.foundation.common.concurrent.ConcurrentHashMapEx;
 import org.apache.servicecomb.foundation.common.net.URIEndpointObject;
@@ -29,12 +30,18 @@ import org.apache.servicecomb.serviceregistry.api.registry.MicroserviceInstance;
 import org.apache.servicecomb.serviceregistry.client.ServiceRegistryClient;
 import org.apache.servicecomb.serviceregistry.definition.DefinitionConst;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryContext;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryFilter;
 import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTree;
+import org.apache.servicecomb.serviceregistry.discovery.DiscoveryTreeNode;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.cloud.client.DefaultServiceInstance;
 import org.springframework.cloud.client.ServiceInstance;
 import org.springframework.cloud.client.discovery.DiscoveryClient;
 
 public class CseDiscoveryClient implements DiscoveryClient {
+  private static final Logger LOGGER = LoggerFactory.getLogger(CseDiscoveryClient.class);
+
   private Map<String, DiscoveryTree> discoveryTrees = new ConcurrentHashMapEx<>();
 
   @Override
@@ -44,24 +51,55 @@ public class CseDiscoveryClient implements DiscoveryClient {
 
   @Override
   public List<ServiceInstance> getInstances(final String serviceId) {
+    class InstanceDiscoveryFilter implements DiscoveryFilter {
+      @Override
+      public int getOrder() {
+        return Short.MAX_VALUE;
+      }
+
+      @Override
+      public DiscoveryTreeNode discovery(DiscoveryContext context, DiscoveryTreeNode parent) {
+        return parent.children()
+            .computeIfAbsent(context.getInputParameters(), etn -> createDiscoveryTreeNode(context, parent));
+      }
+
+      @SuppressWarnings("unchecked")
+      protected DiscoveryTreeNode createDiscoveryTreeNode(DiscoveryContext context,
+          DiscoveryTreeNode parent) {
+        String serviceName = context.getInputParameters();
+        List<ServiceInstance> instances = new ArrayList<>();
+        for (MicroserviceInstance instance : ((Map<String, MicroserviceInstance>) parent.data()).values()) {
+          for (String endpoint : instance.getEndpoints()) {
+            String scheme = endpoint.split(":", 2)[0];
+            if (!scheme.equalsIgnoreCase(Const.RESTFUL)) {
+              LOGGER.info("Endpoint {} is not supported in Spring Cloud, ignoring.", endpoint);
+              continue;
+            }
+            URIEndpointObject uri = new URIEndpointObject(endpoint);
+            instances.add(new DefaultServiceInstance(serviceId, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
+          }
+        }
+        return new DiscoveryTreeNode()
+            .subName(parent, serviceName)
+            .data(instances);
+      }
+    };
+
     DiscoveryContext context = new DiscoveryContext();
     context.setInputParameters(serviceId);
+
     DiscoveryTree discoveryTree = discoveryTrees.computeIfAbsent(serviceId, key -> {
-      return new DiscoveryTree();
+      DiscoveryTree tree =  new DiscoveryTree();
+      tree.addFilter(new InstanceDiscoveryFilter());
+      return tree;
     });
+
     VersionedCache serversVersionedCache = discoveryTree.discovery(context,
         RegistryUtils.getAppId(),
         serviceId,
         DefinitionConst.VERSION_RULE_ALL);
-    Map<String, MicroserviceInstance> servers = serversVersionedCache.data();
-    List<ServiceInstance> instances = new ArrayList<>(servers.size());
-    for (MicroserviceInstance s : servers.values()) {
-      for (String endpoint : s.getEndpoints()) {
-        URIEndpointObject uri = new URIEndpointObject(endpoint);
-        instances.add(new DefaultServiceInstance(serviceId, uri.getHostOrIp(), uri.getPort(), uri.isSslEnabled()));
-      }
-    }
-    return instances;
+
+    return serversVersionedCache.data();
   }
 
   @Override