You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2019/07/11 05:50:20 UTC

[dubbo] branch cloud-native updated: fix compile issue and refactor metadata structure (#4538)

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

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


The following commit(s) were added to refs/heads/cloud-native by this push:
     new fe562c3  fix compile issue and refactor metadata structure (#4538)
fe562c3 is described below

commit fe562c3feeb2261b06b4c391e2077c2fc78d1a5d
Author: cvictory <sh...@gmail.com>
AuthorDate: Thu Jul 11 13:50:08 2019 +0800

    fix compile issue and refactor metadata structure (#4538)
---
 dubbo-bom/pom.xml                                  |   7 +-
 .../java/com/alibaba/dubbo/common/Constants.java   |   2 +-
 dubbo-config/dubbo-config-api/pom.xml              |   2 +-
 .../dubbo-metadata-report-consul/pom.xml           |   2 +-
 .../store/consul/ConsulMetadataReport.java         |   0
 .../store/consul/ConsulMetadataReportFactory.java  |   0
 ...che.dubbo.metadata.report.MetadataReportFactory |   0
 .../dubbo-metadata-report-etcd/pom.xml             |   4 +-
 .../metadata/store/etcd/EtcdMetadataReport.java    |   0
 .../store/etcd/EtcdMetadataReportFactory.java      |   0
 ...che.dubbo.metadata.report.MetadataReportFactory |   0
 .../store/etcd/EtcdMetadata4TstService.java        |   0
 .../store/etcd/EtcdMetadataReportTest.java         |   0
 .../dubbo-metadata-report-nacos/pom.xml            |   2 +-
 .../metadata/store/nacos/NacosMetadataReport.java  |   0
 .../store/nacos/NacosMetadataReportFactory.java    |   0
 ...che.dubbo.metadata.report.MetadataReportFactory |   0
 .../store/nacos/NacosMetadata4TstService.java      |   0
 .../store/nacos/NacosMetadataReportTest.java       |   0
 .../dubbo-metadata-report-redis/pom.xml            |   2 +-
 .../metadata/store/redis/RedisMetadataReport.java  |   0
 .../store/redis/RedisMetadataReportFactory.java    |   0
 ...che.dubbo.metadata.report.MetadataReportFactory |   0
 .../store/redis/RedisMetadata4TstService.java      |   0
 .../store/redis/RedisMetadataReportTest.java       |   0
 .../dubbo-metadata-report-zookeeper/pom.xml        |   2 +-
 .../store/zookeeper/ZookeeperMetadataReport.java   |   0
 .../zookeeper/ZookeeperMetadataReportFactory.java  |   0
 ...che.dubbo.metadata.report.MetadataReportFactory |   0
 .../ZookeeperMetadataReport4TstService.java        |   0
 .../zookeeper/ZookeeperMetadataReportTest.java     |   0
 .../identifier/MetadataIdentifierTest.java         |  48 ----
 dubbo-metadata/dubbo-metadata-report/pom.xml       |  36 ---
 dubbo-metadata/pom.xml                             |   8 +-
 dubbo-registry/dubbo-registry-api/pom.xml          |   2 +-
 .../registry/support/ServiceOrientedRegistry.java  |   2 +-
 .../apache/dubbo/registry/etcd/EtcdRegistry.java   |  17 --
 .../dubbo/registry/etcd/EtcdRegistryFactory.java   |  17 --
 .../dubbo/registry/etcd/EtcdServiceDiscovery.java  | 111 ++++++++
 .../registry/etcd/EtcdServiceDiscoveryFactory.java |  21 +-
 .../dubbo-serialization-protobuf-json/pom.xml      |   7 +-
 .../protobuf/support/ProtobufTypeBuilder.java      | 308 ---------------------
 ...e.dubbo.metadata.definition.builder.TypeBuilder |   1 -
 .../protobuf/support/ProtobufTypeBuilderTest.java  |  69 -----
 44 files changed, 142 insertions(+), 528 deletions(-)

diff --git a/dubbo-bom/pom.xml b/dubbo-bom/pom.xml
index 202af02..a98794f 100644
--- a/dubbo-bom/pom.xml
+++ b/dubbo-bom/pom.xml
@@ -370,12 +370,7 @@
             </dependency>
             <dependency>
                 <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-metadata-report-api</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>org.apache.dubbo</groupId>
-                <artifactId>dubbo-metadata-definition</artifactId>
+                <artifactId>dubbo-metadata-api</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
diff --git a/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/Constants.java b/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/Constants.java
index f488c8d..f62a9bd 100644
--- a/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/Constants.java
+++ b/dubbo-compatible/src/main/java/com/alibaba/dubbo/common/Constants.java
@@ -37,7 +37,7 @@ public class Constants implements CommonConstants,
         org.apache.dubbo.rpc.protocol.dubbo.Constants,
         org.apache.dubbo.common.serialize.Constants,
         org.apache.dubbo.common.config.configcenter.Constants,
-        org.apache.dubbo.metadata.support.Constants,
+        org.apache.dubbo.metadata.report.support.Constants ,
         org.apache.dubbo.rpc.protocol.rest.Constants,
         org.apache.dubbo.registry.Constants {
 }
diff --git a/dubbo-config/dubbo-config-api/pom.xml b/dubbo-config/dubbo-config-api/pom.xml
index 896feef..6e66e49 100644
--- a/dubbo-config/dubbo-config-api/pom.xml
+++ b/dubbo-config/dubbo-config-api/pom.xml
@@ -37,7 +37,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-metadata-report-api</artifactId>
+            <artifactId>dubbo-metadata-api</artifactId>
             <version>${project.parent.version}</version>
         </dependency>
         <dependency>
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-consul/pom.xml b/dubbo-metadata/dubbo-metadata-report-consul/pom.xml
similarity index 96%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-consul/pom.xml
rename to dubbo-metadata/dubbo-metadata-report-consul/pom.xml
index fdf0527..028d897 100644
--- a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-consul/pom.xml
+++ b/dubbo-metadata/dubbo-metadata-report-consul/pom.xml
@@ -18,7 +18,7 @@
 
 <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>dubbo-metadata-report</artifactId>
+        <artifactId>dubbo-metadata</artifactId>
         <groupId>org.apache.dubbo</groupId>
         <version>${revision}</version>
     </parent>
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-consul/src/main/java/org/apache/dubbo/metadata/store/consul/ConsulMetadataReport.java b/dubbo-metadata/dubbo-metadata-report-consul/src/main/java/org/apache/dubbo/metadata/store/consul/ConsulMetadataReport.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-consul/src/main/java/org/apache/dubbo/metadata/store/consul/ConsulMetadataReport.java
rename to dubbo-metadata/dubbo-metadata-report-consul/src/main/java/org/apache/dubbo/metadata/store/consul/ConsulMetadataReport.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-consul/src/main/java/org/apache/dubbo/metadata/store/consul/ConsulMetadataReportFactory.java b/dubbo-metadata/dubbo-metadata-report-consul/src/main/java/org/apache/dubbo/metadata/store/consul/ConsulMetadataReportFactory.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-consul/src/main/java/org/apache/dubbo/metadata/store/consul/ConsulMetadataReportFactory.java
rename to dubbo-metadata/dubbo-metadata-report-consul/src/main/java/org/apache/dubbo/metadata/store/consul/ConsulMetadataReportFactory.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-consul/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory b/dubbo-metadata/dubbo-metadata-report-consul/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-consul/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
rename to dubbo-metadata/dubbo-metadata-report-consul/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/pom.xml b/dubbo-metadata/dubbo-metadata-report-etcd/pom.xml
similarity index 96%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/pom.xml
rename to dubbo-metadata/dubbo-metadata-report-etcd/pom.xml
index 56e4a38..2fc66fd 100644
--- a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/pom.xml
+++ b/dubbo-metadata/dubbo-metadata-report-etcd/pom.xml
@@ -20,7 +20,7 @@
          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>dubbo-metadata-report</artifactId>
+        <artifactId>dubbo-metadata</artifactId>
         <groupId>org.apache.dubbo</groupId>
         <version>${revision}</version>
     </parent>
@@ -50,4 +50,4 @@
             <scope>test</scope>
         </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/main/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReport.java b/dubbo-metadata/dubbo-metadata-report-etcd/src/main/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReport.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/main/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReport.java
rename to dubbo-metadata/dubbo-metadata-report-etcd/src/main/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReport.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/main/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportFactory.java b/dubbo-metadata/dubbo-metadata-report-etcd/src/main/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportFactory.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/main/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportFactory.java
rename to dubbo-metadata/dubbo-metadata-report-etcd/src/main/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportFactory.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory b/dubbo-metadata/dubbo-metadata-report-etcd/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
rename to dubbo-metadata/dubbo-metadata-report-etcd/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/test/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadata4TstService.java b/dubbo-metadata/dubbo-metadata-report-etcd/src/test/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadata4TstService.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/test/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadata4TstService.java
rename to dubbo-metadata/dubbo-metadata-report-etcd/src/test/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadata4TstService.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/test/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportTest.java b/dubbo-metadata/dubbo-metadata-report-etcd/src/test/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportTest.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-etcd/src/test/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportTest.java
rename to dubbo-metadata/dubbo-metadata-report-etcd/src/test/java/org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportTest.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/pom.xml b/dubbo-metadata/dubbo-metadata-report-nacos/pom.xml
similarity index 96%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/pom.xml
rename to dubbo-metadata/dubbo-metadata-report-nacos/pom.xml
index 95fcf15..076f75d 100644
--- a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/pom.xml
+++ b/dubbo-metadata/dubbo-metadata-report-nacos/pom.xml
@@ -18,7 +18,7 @@
 
 <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>dubbo-metadata-report</artifactId>
+        <artifactId>dubbo-metadata</artifactId>
         <groupId>org.apache.dubbo</groupId>
         <version>${revision}</version>
     </parent>
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java b/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java
rename to dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java b/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java
rename to dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory b/dubbo-metadata/dubbo-metadata-report-nacos/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
rename to dubbo-metadata/dubbo-metadata-report-nacos/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/test/java/org/apache/dubbo/metadata/store/nacos/NacosMetadata4TstService.java b/dubbo-metadata/dubbo-metadata-report-nacos/src/test/java/org/apache/dubbo/metadata/store/nacos/NacosMetadata4TstService.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/test/java/org/apache/dubbo/metadata/store/nacos/NacosMetadata4TstService.java
rename to dubbo-metadata/dubbo-metadata-report-nacos/src/test/java/org/apache/dubbo/metadata/store/nacos/NacosMetadata4TstService.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/test/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportTest.java b/dubbo-metadata/dubbo-metadata-report-nacos/src/test/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportTest.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-nacos/src/test/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportTest.java
rename to dubbo-metadata/dubbo-metadata-report-nacos/src/test/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReportTest.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/pom.xml b/dubbo-metadata/dubbo-metadata-report-redis/pom.xml
similarity index 97%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/pom.xml
rename to dubbo-metadata/dubbo-metadata-report-redis/pom.xml
index da07d27..20cf97a 100644
--- a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/pom.xml
+++ b/dubbo-metadata/dubbo-metadata-report-redis/pom.xml
@@ -16,7 +16,7 @@
   -->
 <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>dubbo-metadata-report</artifactId>
+        <artifactId>dubbo-metadata</artifactId>
         <groupId>org.apache.dubbo</groupId>
         <version>${revision}</version>
     </parent>
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java b/dubbo-metadata/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
rename to dubbo-metadata/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java b/dubbo-metadata/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java
similarity index 100%
copy from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java
copy to dubbo-metadata/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory b/dubbo-metadata/dubbo-metadata-report-redis/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
rename to dubbo-metadata/dubbo-metadata-report-redis/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadata4TstService.java b/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadata4TstService.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadata4TstService.java
rename to dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadata4TstService.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java b/dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
rename to dubbo-metadata/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/pom.xml b/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml
similarity index 97%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/pom.xml
rename to dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml
index b84bd10..e93a39a 100644
--- a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/pom.xml
+++ b/dubbo-metadata/dubbo-metadata-report-zookeeper/pom.xml
@@ -16,7 +16,7 @@
   -->
 <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>dubbo-metadata-report</artifactId>
+        <artifactId>dubbo-metadata</artifactId>
         <groupId>org.apache.dubbo</groupId>
         <version>${revision}</version>
     </parent>
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
rename to dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java
rename to dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
rename to dubbo-metadata/dubbo-metadata-report-zookeeper/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport4TstService.java b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport4TstService.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport4TstService.java
rename to dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport4TstService.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java b/dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
rename to dubbo-metadata/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/identifier/MetadataIdentifierTest.java b/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/identifier/MetadataIdentifierTest.java
deleted file mode 100644
index c660a34..0000000
--- a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/identifier/MetadataIdentifierTest.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.dubbo.metadata.identifier;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-
-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;
-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
-
-/**
- * 2019/1/7
- */
-public class MetadataIdentifierTest {
-
-    @Test
-    public void testGetUniqueKey() {
-        String interfaceName = "org.apache.dubbo.metadata.integration.InterfaceNameTestService";
-        String version = "1.0.0.zk.md";
-        String group = null;
-        String application = "vic.zk.md";
-        MetadataIdentifier providerMetadataIdentifier = new MetadataIdentifier(interfaceName, version, group, PROVIDER_SIDE, application);
-        Assertions.assertEquals(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.PATH),
-                "metadata" + PATH_SEPARATOR + interfaceName + PATH_SEPARATOR +
-                        (version == null ? "" : (version + PATH_SEPARATOR))
-                + (group == null ? "" : (group + PATH_SEPARATOR)) + PROVIDER_SIDE
-                        + PATH_SEPARATOR + application);
-        Assertions.assertEquals(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY),
-                interfaceName + MetadataIdentifier.SEPARATOR +
-                        (version == null ? "" : version + MetadataIdentifier.SEPARATOR)
-                        + (group == null ? "" : group + MetadataIdentifier.SEPARATOR)
-                        + PROVIDER_SIDE + MetadataIdentifier.SEPARATOR + application);
-    }
-}
diff --git a/dubbo-metadata/dubbo-metadata-report/pom.xml b/dubbo-metadata/dubbo-metadata-report/pom.xml
deleted file mode 100644
index 3c2fa60..0000000
--- a/dubbo-metadata/dubbo-metadata-report/pom.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-<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>dubbo-metadata</artifactId>
-        <groupId>org.apache.dubbo</groupId>
-        <version>${revision}</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>dubbo-metadata-report</artifactId>
-    <packaging>pom</packaging>
-    <modules>
-        <module>dubbo-metadata-report-zookeeper</module>
-        <module>dubbo-metadata-report-redis</module>
-        <module>dubbo-metadata-report-consul</module>
-        <module>dubbo-metadata-report-etcd</module>
-        <module>dubbo-metadata-report-nacos</module>
-    </modules>
-
-
-</project>
diff --git a/dubbo-metadata/pom.xml b/dubbo-metadata/pom.xml
index 2115c45..2c8bb6b 100644
--- a/dubbo-metadata/pom.xml
+++ b/dubbo-metadata/pom.xml
@@ -29,7 +29,11 @@
     <packaging>pom</packaging>
     <modules>
         <module>dubbo-metadata-api</module>
-        <module>dubbo-metadata-report</module>
+        <module>dubbo-metadata-report-zookeeper</module>
+        <module>dubbo-metadata-report-redis</module>
+        <module>dubbo-metadata-report-consul</module>
+        <module>dubbo-metadata-report-etcd</module>
+        <module>dubbo-metadata-report-nacos</module>
     </modules>
 
-</project>
\ No newline at end of file
+</project>
diff --git a/dubbo-registry/dubbo-registry-api/pom.xml b/dubbo-registry/dubbo-registry-api/pom.xml
index 7ae8b75..86583e2 100644
--- a/dubbo-registry/dubbo-registry-api/pom.xml
+++ b/dubbo-registry/dubbo-registry-api/pom.xml
@@ -69,7 +69,7 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-metadata-report-api</artifactId>
+            <artifactId>dubbo-metadata-api</artifactId>
             <version>${project.parent.version}</version>
         </dependency>
 
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/ServiceOrientedRegistry.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/ServiceOrientedRegistry.java
index 14ad358..8018eff 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/ServiceOrientedRegistry.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/support/ServiceOrientedRegistry.java
@@ -62,7 +62,7 @@ import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoad
 import static org.apache.dubbo.common.utils.CollectionUtils.isEmpty;
 import static org.apache.dubbo.common.utils.CollectionUtils.isNotEmpty;
 import static org.apache.dubbo.common.utils.StringUtils.isBlank;
-import static org.apache.dubbo.metadata.support.Constants.METADATA_REPORT_KEY;
+import static org.apache.dubbo.metadata.report.support.Constants.METADATA_REPORT_KEY;
 import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getExportedServicesRevision;
 import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getMetadataServiceURLsParams;
 import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getProviderHost;
diff --git a/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdRegistry.java b/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdRegistry.java
index 44a347c..a15d7d5 100644
--- a/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdRegistry.java
+++ b/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdRegistry.java
@@ -14,23 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 package org.apache.dubbo.registry.etcd;
 
 import org.apache.dubbo.common.URL;
diff --git a/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdRegistryFactory.java b/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdRegistryFactory.java
index 187da19..a7d00b3 100644
--- a/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdRegistryFactory.java
+++ b/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdRegistryFactory.java
@@ -14,23 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
 package org.apache.dubbo.registry.etcd;
 
 import org.apache.dubbo.common.URL;
diff --git a/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdServiceDiscovery.java b/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdServiceDiscovery.java
new file mode 100644
index 0000000..60075d4
--- /dev/null
+++ b/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdServiceDiscovery.java
@@ -0,0 +1,111 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.dubbo.registry.etcd;
+
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.common.logger.Logger;
+import org.apache.dubbo.common.logger.LoggerFactory;
+import org.apache.dubbo.common.utils.ConcurrentHashSet;
+import org.apache.dubbo.event.EventListener;
+import org.apache.dubbo.registry.NotifyListener;
+import org.apache.dubbo.registry.client.ServiceDiscovery;
+import org.apache.dubbo.registry.client.ServiceInstance;
+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;
+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;
+import org.apache.dubbo.remoting.etcd.ChildListener;
+import org.apache.dubbo.remoting.etcd.EtcdTransporter;
+
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+
+/**
+ * @author cvictory ON 2019-07-08
+ */
+public class EtcdServiceDiscovery implements ServiceDiscovery, EventListener<ServiceInstancesChangedEvent> {
+
+    private final static Logger logger = LoggerFactory.getLogger(EtcdServiceDiscovery.class);
+
+//    private final String root;
+
+    private final Set<String> anyServices = new ConcurrentHashSet<>();
+
+    private final ConcurrentMap<URL, ConcurrentMap<NotifyListener, ChildListener>> etcdListeners = new ConcurrentHashMap<>();
+//    private final EtcdClient etcdClient;
+
+    public EtcdServiceDiscovery(URL url, EtcdTransporter etcdTransporter) {
+//        if (url.isAnyHost()) {
+//            throw new IllegalStateException("Service discovery address is invalid, actual: '" + url.getHost() + "'");
+//        }
+////        String group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);
+//        if (!group.startsWith(PATH_SEPARATOR)) {
+//            group = PATH_SEPARATOR + group;
+//        }
+//        this.root = group;
+//        etcdClient = etcdTransporter.connect(url);
+//
+//        etcdClient.addStateListener(state -> {
+//            if (state == StateListener.CONNECTED) {
+//                try {
+////                    recover();
+//                } catch (Exception e) {
+//                    logger.error(e.getMessage(), e);
+//                }
+//            }
+//        });
+    }
+
+    @Override
+    public void onEvent(ServiceInstancesChangedEvent event) {
+
+    }
+
+    @Override
+    public void start() {
+
+    }
+
+    @Override
+    public void stop() {
+
+    }
+
+    @Override
+    public void register(ServiceInstance serviceInstance) throws RuntimeException {
+
+    }
+
+    @Override
+    public void update(ServiceInstance serviceInstance) throws RuntimeException {
+
+    }
+
+    @Override
+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {
+
+    }
+
+    @Override
+    public Set<String> getServices() {
+        return null;
+    }
+
+    @Override
+    public void addServiceInstancesChangedListener(String serviceName, ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {
+
+    }
+}
diff --git a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java b/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdServiceDiscoveryFactory.java
similarity index 58%
rename from dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java
rename to dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdServiceDiscoveryFactory.java
index bd08877..fced9ba 100644
--- a/dubbo-metadata/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java
+++ b/dubbo-registry/dubbo-registry-etcd3/src/main/java/org/apache/dubbo/registry/etcd/EtcdServiceDiscoveryFactory.java
@@ -14,21 +14,26 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.metadata.store.redis;
+package org.apache.dubbo.registry.etcd;
 
 import org.apache.dubbo.common.URL;
-import org.apache.dubbo.metadata.report.MetadataReport;
-import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;
+import org.apache.dubbo.registry.client.ServiceDiscovery;
+import org.apache.dubbo.registry.client.ServiceDiscoveryFactory;
+import org.apache.dubbo.remoting.etcd.EtcdTransporter;
 
 /**
- * RedisMetadataReportFactory.
+ * @author cvictory ON 2019-07-08
  */
-public class RedisMetadataReportFactory extends AbstractMetadataReportFactory {
+public class EtcdServiceDiscoveryFactory implements ServiceDiscoveryFactory {
 
+    private EtcdTransporter etcdTransporter;
 
-    @Override
-    public MetadataReport createMetadataReport(URL url) {
-        return new RedisMetadataReport(url);
+    public void setEtcdTransporter(EtcdTransporter etcdTransporter) {
+        this.etcdTransporter = etcdTransporter;
     }
 
+    @Override
+    public ServiceDiscovery create(URL connectionURL) {
+        return new EtcdServiceDiscovery(connectionURL, etcdTransporter);
+    }
 }
diff --git a/dubbo-serialization/dubbo-serialization-protobuf-json/pom.xml b/dubbo-serialization/dubbo-serialization-protobuf-json/pom.xml
index 75b290b..b0788e1 100644
--- a/dubbo-serialization/dubbo-serialization-protobuf-json/pom.xml
+++ b/dubbo-serialization/dubbo-serialization-protobuf-json/pom.xml
@@ -42,10 +42,5 @@ limitations under the License.
             <groupId>com.google.protobuf</groupId>
             <artifactId>protobuf-java-util</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-metadata-definition</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
     </dependencies>
-</project>
\ No newline at end of file
+</project>
diff --git a/dubbo-serialization/dubbo-serialization-protobuf-json/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/ProtobufTypeBuilder.java b/dubbo-serialization/dubbo-serialization-protobuf-json/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/ProtobufTypeBuilder.java
deleted file mode 100644
index 75fcc5f..0000000
--- a/dubbo-serialization/dubbo-serialization-protobuf-json/src/main/java/org/apache/dubbo/common/serialize/protobuf/support/ProtobufTypeBuilder.java
+++ /dev/null
@@ -1,308 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.dubbo.common.serialize.protobuf.support;
-
-import org.apache.dubbo.common.logger.Logger;
-import org.apache.dubbo.common.logger.LoggerFactory;
-import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;
-import org.apache.dubbo.metadata.definition.builder.TypeBuilder;
-import org.apache.dubbo.metadata.definition.model.TypeDefinition;
-
-import com.google.protobuf.ByteString;
-import com.google.protobuf.Descriptors;
-import com.google.protobuf.GeneratedMessageV3;
-import com.google.protobuf.ProtocolStringList;
-import com.google.protobuf.UnknownFieldSet;
-
-import java.lang.reflect.Method;
-import java.lang.reflect.Type;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-public class ProtobufTypeBuilder implements TypeBuilder {
-    private final Logger logger = LoggerFactory.getLogger(getClass());
-    private static final Pattern MAP_PATTERN = Pattern.compile("^java\\.util\\.Map<(\\S+), (\\S+)>$");
-    private static final Pattern LIST_PATTERN = Pattern.compile("^java\\.util\\.List<(\\S+)>$");
-    private static final List<String> list = null;
-    /**
-     * provide a List<String> type for TypeDefinitionBuilder.build(type,class,cache)
-     * "repeated string" transform to ProtocolStringList, should be build as List<String> type.
-     */
-    private static Type STRING_LIST_TYPE;
-
-    static {
-        try {
-            STRING_LIST_TYPE = ProtobufTypeBuilder.class.getDeclaredField("list").getGenericType();
-        } catch (NoSuchFieldException e) {
-            // do nothing
-        }
-    }
-
-    @Override
-    public boolean accept(Type type, Class<?> clazz) {
-        if (clazz == null) {
-            return false;
-        }
-
-        return GeneratedMessageV3.class.isAssignableFrom(clazz);
-    }
-
-    @Override
-    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {
-        TypeDefinition typeDefinition = new TypeDefinition(clazz.getName());
-        try {
-            GeneratedMessageV3.Builder builder = getMessageBuilder(clazz);
-            typeDefinition = buildProtobufTypeDefinition(clazz, builder, typeCache);
-        } catch (Exception e) {
-            logger.info("TypeDefinition build failed.", e);
-        }
-
-        return typeDefinition;
-    }
-
-    private GeneratedMessageV3.Builder getMessageBuilder(Class<?> requestType) throws Exception {
-        Method method = requestType.getMethod("newBuilder");
-        return (GeneratedMessageV3.Builder) method.invoke(null, null);
-    }
-
-    private TypeDefinition buildProtobufTypeDefinition(Class<?> clazz, GeneratedMessageV3.Builder builder, Map<Class<?>, TypeDefinition> typeCache) {
-        TypeDefinition typeDefinition = new TypeDefinition(clazz.getName());
-        if (builder == null) {
-            return typeDefinition;
-        }
-
-        Map<String, TypeDefinition> properties = new HashMap<>();
-        Method[] methods = builder.getClass().getDeclaredMethods();
-        for (Method method : methods) {
-            String methodName = method.getName();
-
-            if (isSimplePropertySettingMethod(method)) {
-                // property of custom type or primitive type
-                properties.put(generateSimpleFiledName(methodName), TypeDefinitionBuilder.build(method.getGenericParameterTypes()[0], method.getParameterTypes()[0], typeCache));
-            } else if (isMapPropertySettingMethod(method)) {
-                // property of map
-                Type type = method.getGenericParameterTypes()[0];
-                String fieldName = generateMapFieldName(methodName);
-                validateMapType(fieldName, type.toString());
-                properties.put(fieldName, TypeDefinitionBuilder.build(type, method.getParameterTypes()[0], typeCache));
-            } else if (isListPropertySettingMethod(method)) {
-                // property of list
-                Type type = method.getGenericReturnType();
-                String fieldName = generateListFieldName(methodName);
-                validateListType(fieldName, type.toString());
-                TypeDefinition td;
-                if (ProtocolStringList.class.isAssignableFrom(method.getReturnType())) {
-                    // property defined as "repeated string" transform to ProtocolStringList,
-                    // should be build as List<String>.
-                    td = TypeDefinitionBuilder.build(STRING_LIST_TYPE, List.class, typeCache);
-                } else {
-                    td = TypeDefinitionBuilder.build(type, method.getReturnType(), typeCache);
-                }
-                properties.put(fieldName, td);
-            }
-        }
-        typeDefinition.setProperties(properties);
-        typeCache.put(clazz, typeDefinition);
-        return typeDefinition;
-    }
-
-    /**
-     * 1. Unsupported List with value type is Bytes <br/>
-     * Bytes is a primitive type in Proto, transform to ByteString.class in java<br/>
-     *
-     * @param fieldName
-     * @param typeName
-     * @return
-     */
-    private void validateListType(String fieldName, String typeName) {
-        Matcher matcher = LIST_PATTERN.matcher(typeName);
-        if (!matcher.matches()) {
-            throw new IllegalArgumentException("List protobuf property " + fieldName + "of Type " +
-                    typeName + " can't be parsed.The type name should mathch[" + LIST_PATTERN.toString() + "].");
-        }
-
-        if (ByteString.class.getName().equals(matcher.group(1))) {
-            throw new IllegalArgumentException("List protobuf property " + fieldName + "of Type " +
-                    typeName + " can't be parsed.List of ByteString is not supported.");
-        }
-    }
-
-    /**
-     * 1. Unsupported Map with value type is Bytes <br/>
-     * 2. Unsupported Map with key type is not String <br/>
-     * Bytes is a primitive type in Proto, transform to ByteString.class in java<br/>
-     *
-     * @param fieldName
-     * @param typeName
-     * @return
-     */
-    private void validateMapType(String fieldName, String typeName) {
-        Matcher matcher = MAP_PATTERN.matcher(typeName);
-        if (!matcher.matches()) {
-            throw new IllegalArgumentException("Map protobuf property " + fieldName + "of Type " +
-                    typeName + " can't be parsed.The type name should mathch[" + MAP_PATTERN.toString() + "].");
-        }
-
-        if (!String.class.getName().equals(matcher.group(1)) || ByteString.class.getName().equals(matcher.group(2))) {
-            throw new IllegalArgumentException("Map protobuf property " + fieldName + "of Type " +
-                    typeName + " can't be parsed.Map with unString key or ByteString value is not supported.");
-        }
-    }
-
-    /**
-     * get unCollection unMap property name from setting method.<br/>
-     * ex:setXXX();<br/>
-     *
-     * @param methodName
-     * @return
-     */
-    private String generateSimpleFiledName(String methodName) {
-        return toCamelCase(methodName.substring(3));
-    }
-
-    /**
-     * get map property name from setting method.<br/>
-     * ex: putAllXXX();<br/>
-     *
-     * @param methodName
-     * @return
-     */
-    private String generateMapFieldName(String methodName) {
-        return toCamelCase(methodName.substring(6));
-    }
-
-    /**
-     * get list property name from setting method.<br/>
-     * ex: getXXXList()<br/>
-     *
-     * @param methodName
-     * @return
-     */
-    private String generateListFieldName(String methodName) {
-        return toCamelCase(methodName.substring(3, methodName.length() - 4));
-    }
-
-
-    private String toCamelCase(String nameString) {
-        char[] chars = nameString.toCharArray();
-        chars[0] = Character.toLowerCase(chars[0]);
-        return new String(chars);
-    }
-
-    /**
-     * judge custom type or primitive type property<br/>
-     * 1. proto3 grammar ex: string name = 1 <br/>
-     * 2. proto3 grammar ex: optional string name =1 <br/>
-     * generated setting method setNameValue(String name);
-     *
-     * @param method
-     * @return
-     */
-    private boolean isSimplePropertySettingMethod(Method method) {
-        String methodName = method.getName();
-        Class<?>[] types = method.getParameterTypes();
-
-        if (!methodName.startsWith("set") || types.length != 1) {
-            return false;
-        }
-
-        // filter general setting method
-        // 1. - setUnknownFields( com.google.protobuf.UnknownFieldSet unknownFields)
-        // 2. - setField(com.google.protobuf.Descriptors.FieldDescriptor field,java.lang.Object value)
-        // 3. - setRepeatedField(com.google.protobuf.Descriptors.FieldDescriptor field,int index,java.lang.Object value)
-        if (methodName.equals("setField") && types[0].equals(Descriptors.FieldDescriptor.class)
-                || methodName.equals("setUnknownFields") && types[0].equals(UnknownFieldSet.class)
-                || methodName.equals("setRepeatedField") && types[0].equals(Descriptors.FieldDescriptor.class)) {
-            return false;
-        }
-
-        // String property has two setting method.
-        // skip setXXXBytes(com.google.protobuf.ByteString value)
-        // parse setXXX(String string)
-        if (methodName.endsWith("Bytes") && types[0].equals(ByteString.class)) {
-            return false;
-        }
-
-        // Protobuf property has two setting method.
-        // skip setXXX(com.google.protobuf.Builder value)
-        // parse setXXX(com.google.protobuf.Message value)
-        if (GeneratedMessageV3.Builder.class.isAssignableFrom(types[0])) {
-            return false;
-        }
-
-        // Enum property has two setting method.
-        // skip setXXX(int value)
-        // parse setXXX(SomeEnum value)
-        if (methodName.endsWith("Value") && types[0] == int.class) {
-            return false;
-        }
-
-        return true;
-    }
-
-
-    /**
-     * judge List property</br>
-     * proto3 grammar ex: repeated string names; </br>
-     * generated setting method:List<String> getNamesList()
-     *
-     * @param method
-     * @return
-     */
-    boolean isListPropertySettingMethod(Method method) {
-        String methodName = method.getName();
-        Class<?> type = method.getReturnType();
-
-
-        if (!methodName.startsWith("get") || !methodName.endsWith("List")) {
-            return false;
-        }
-
-        // skip the setting method with Pb entity builder as parameter
-        if (methodName.endsWith("BuilderList")) {
-            return false;
-        }
-
-        // if field name end with List, should skip
-        if (!List.class.isAssignableFrom(type)) {
-            return false;
-        }
-
-        return true;
-    }
-
-    /**
-     * judge map property</br>
-     * proto3 grammar : map<string,string> card = 1; </br>
-     * generated setting method: putAllCards(java.util.Map<String, string> values) </br>
-     *
-     * @param methodTemp
-     * @return
-     */
-    private boolean isMapPropertySettingMethod(Method methodTemp) {
-        String methodName = methodTemp.getName();
-        Class[] parameters = methodTemp.getParameterTypes();
-        if (methodName.startsWith("putAll") && parameters.length == 1 && Map.class.isAssignableFrom(parameters[0])) {
-            return true;
-        }
-
-        return false;
-    }
-}
diff --git a/dubbo-serialization/dubbo-serialization-protobuf-json/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder b/dubbo-serialization/dubbo-serialization-protobuf-json/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
deleted file mode 100644
index 97795f2..0000000
--- a/dubbo-serialization/dubbo-serialization-protobuf-json/src/main/resources/META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder
+++ /dev/null
@@ -1 +0,0 @@
-protobuf=org.apache.dubbo.common.serialize.protobuf.support.ProtobufTypeBuilder
\ No newline at end of file
diff --git a/dubbo-serialization/dubbo-serialization-test/src/test/java/org/apache/dubbo/common/serialize/protobuf/support/ProtobufTypeBuilderTest.java b/dubbo-serialization/dubbo-serialization-test/src/test/java/org/apache/dubbo/common/serialize/protobuf/support/ProtobufTypeBuilderTest.java
deleted file mode 100644
index 0d59c08..0000000
--- a/dubbo-serialization/dubbo-serialization-test/src/test/java/org/apache/dubbo/common/serialize/protobuf/support/ProtobufTypeBuilderTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.dubbo.common.serialize.protobuf.support;
-
-import org.apache.dubbo.common.serialize.protobuf.support.model.ServiceInterface;
-import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;
-import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
-import org.apache.dubbo.metadata.definition.model.MethodDefinition;
-import org.apache.dubbo.metadata.definition.model.TypeDefinition;
-
-import org.junit.jupiter.api.Test;
-
-import java.util.Map;
-
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-
-public class ProtobufTypeBuilderTest {
-    @Test
-    public void testProtobufBuilder() {
-        // TEST Pb Service metaData builder
-        FullServiceDefinition serviceDefinition = ServiceDefinitionBuilder.buildFullDefinition(ServiceInterface.class);
-        MethodDefinition methodDefinition = serviceDefinition.getMethods().get(0);
-        String parameterName = methodDefinition.getParameterTypes()[0];
-        TypeDefinition typeDefinition = null;
-        for (TypeDefinition type : serviceDefinition.getTypes()) {
-            if (parameterName.equals(type.getType())) {
-                typeDefinition = type;
-                break;
-            }
-        }
-        Map<String, TypeDefinition> propertiesMap = typeDefinition.getProperties();
-        assertThat(propertiesMap.size(), is(9));
-        assertThat(propertiesMap.containsKey("money"), is(true));
-        assertThat(propertiesMap.get("money").getType(), equalTo("double"));
-        assertThat(propertiesMap.containsKey("cash"), is(true));
-        assertThat(propertiesMap.get("cash").getType(), equalTo("float"));
-        assertThat(propertiesMap.containsKey("age"), is(true));
-        assertThat(propertiesMap.get("age").getType(), equalTo("int"));
-        assertThat(propertiesMap.containsKey("num"), is(true));
-        assertThat(propertiesMap.get("num").getType(), equalTo("long"));
-        assertThat(propertiesMap.containsKey("sex"), is(true));
-        assertThat(propertiesMap.get("sex").getType(), equalTo("boolean"));
-        assertThat(propertiesMap.containsKey("name"), is(true));
-        assertThat(propertiesMap.get("name").getType(), equalTo("java.lang.String"));
-        assertThat(propertiesMap.containsKey("msg"), is(true));
-        assertThat(propertiesMap.get("msg").getType(), equalTo("com.google.protobuf.ByteString"));
-        assertThat(propertiesMap.containsKey("phone"), is(true));
-        assertThat(propertiesMap.get("phone").getType(), equalTo("java.util.List<org.apache.dubbo.common.serialize.protobuf.support.model.GooglePB$PhoneNumber>"));
-        assertThat(propertiesMap.containsKey("doubleMap"), is(true));
-        assertThat(propertiesMap.get("doubleMap").getType(), equalTo("java.util.Map<java.lang.String, org.apache.dubbo.common.serialize.protobuf.support.model.GooglePB$PhoneNumber>"));
-    }
-}