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

victory pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git


The following commit(s) were added to refs/heads/dev-metadata by this push:
     new d4d827e  remove Provider and ConsumerMetataIdentifier
d4d827e is described below

commit d4d827e11c7ac832ec60e087f92f30f93fa1d478
Author: cvictory <[email protected]>
AuthorDate: Mon Dec 10 16:03:14 2018 +0800

    remove Provider and ConsumerMetataIdentifier
---
 .../identifier/ConsumerMetadataIdentifier.java     | 54 ----------------------
 .../metadata/identifier/MetadataIdentifier.java    | 21 ++++++---
 .../identifier/ProviderMetadataIdentifier.java     | 39 ----------------
 .../integration/MetadataReportService.java         | 12 ++---
 .../dubbo/metadata/store/MetadataReport.java       |  7 ++-
 .../metadata/support/AbstractMetadataReport.java   | 24 +++++-----
 .../integration/MetadataReportServiceTest.java     |  6 +--
 .../store/test/JTestMetadataReport4Test.java       | 10 ++--
 .../support/AbstractMetadataReportFactoryTest.java |  7 ++-
 .../support/AbstractMetadataReportTest.java        | 32 ++++++-------
 .../metadata/store/redis/RedisMetadataReport.java  |  7 +--
 .../store/redis/RedisMetadataReportTest.java       | 27 +++++++----
 .../store/zookeeper/ZookeeperMetadataReport.java   |  6 +--
 .../zookeeper/ZookeeperMetadataReportTest.java     | 27 ++++++-----
 14 files changed, 94 insertions(+), 185 deletions(-)

diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/ConsumerMetadataIdentifier.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/ConsumerMetadataIdentifier.java
deleted file mode 100644
index 572fb99..0000000
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/ConsumerMetadataIdentifier.java
+++ /dev/null
@@ -1,54 +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.apache.dubbo.common.Constants;
-import org.apache.dubbo.common.URL;
-
-/**
- * 2018/10/25
- */
-public class ConsumerMetadataIdentifier extends MetadataIdentifier {
-
-    public ConsumerMetadataIdentifier() {
-    }
-
-    public ConsumerMetadataIdentifier(String serviceInterface, String version, 
String group, String application) {
-        super(serviceInterface, version, group, Constants.CONSUMER_SIDE);
-        this.application = application;
-    }
-
-    public ConsumerMetadataIdentifier(URL url) {
-        super(url);
-        setSide(Constants.CONSUMER_SIDE);
-        setApplication(url.getParameter(Constants.APPLICATION_KEY));
-    }
-
-    private String application;
-
-    protected String getPathSegment() {
-        return Constants.PATH_SEPARATOR + application;
-    }
-
-    public String getApplication() {
-        return application;
-    }
-
-    public void setApplication(String application) {
-        this.application = application;
-    }
-}
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/MetadataIdentifier.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/MetadataIdentifier.java
index 222d04c..85135a0 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/MetadataIdentifier.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/MetadataIdentifier.java
@@ -30,15 +30,17 @@ public class MetadataIdentifier {
     private String version;
     private String group;
     private String side;
+    private String application;
 
     public MetadataIdentifier() {
     }
 
-    public MetadataIdentifier(String serviceInterface, String version, String 
group, String side) {
+    public MetadataIdentifier(String serviceInterface, String version, String 
group, String side, String application) {
         this.serviceInterface = serviceInterface;
         this.version = version;
         this.group = group;
         this.side = side;
+        this.application = application;
     }
 
     public MetadataIdentifier(URL url) {
@@ -46,6 +48,7 @@ public class MetadataIdentifier {
         this.version = url.getParameter(Constants.VERSION_KEY);
         this.group = url.getParameter(Constants.GROUP_KEY);
         this.side = url.getParameter(Constants.SIDE_KEY);
+        setApplication(url.getParameter(Constants.APPLICATION_KEY));
     }
 
     public String getUniqueKey(KeyTypeEnum keyType) {
@@ -56,7 +59,7 @@ public class MetadataIdentifier {
     }
 
     public String getIdentifierKey() {
-        return serviceInterface + SEPARATOR + (version == null ? "" : version 
+ SEPARATOR) + (group == null ? "" : group + SEPARATOR) + side;
+        return serviceInterface + SEPARATOR + (version == null ? "" : version 
+ SEPARATOR) + (group == null ? "" : group + SEPARATOR) + side + SEPARATOR + 
application;
     }
 
     private String getFilePathKey() {
@@ -65,7 +68,7 @@ public class MetadataIdentifier {
 
     public String getFilePathKey(String pathTag) {
         return toServicePath() + Constants.PATH_SEPARATOR + pathTag + 
Constants.PATH_SEPARATOR + (version == null ? "" : (version + 
Constants.PATH_SEPARATOR))
-                + (group == null ? "" : (group + Constants.PATH_SEPARATOR)) + 
side + getPathSegment();
+                + (group == null ? "" : (group + Constants.PATH_SEPARATOR)) + 
side + getApplication();
     }
 
     private String toServicePath() {
@@ -75,10 +78,6 @@ public class MetadataIdentifier {
         return URL.encode(serviceInterface);
     }
 
-    protected String getPathSegment() {
-        return "";
-    }
-
 
     public String getServiceInterface() {
         return serviceInterface;
@@ -112,6 +111,14 @@ public class MetadataIdentifier {
         this.side = side;
     }
 
+    public String getApplication() {
+        return application;
+    }
+
+    public void setApplication(String application) {
+        this.application = application;
+    }
+
     public static enum KeyTypeEnum {
         PATH, UNIQUE_KEY
     }
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/ProviderMetadataIdentifier.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/ProviderMetadataIdentifier.java
deleted file mode 100644
index 7d4da11..0000000
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/identifier/ProviderMetadataIdentifier.java
+++ /dev/null
@@ -1,39 +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.apache.dubbo.common.Constants;
-import org.apache.dubbo.common.URL;
-
-/**
- * 2018/10/25
- */
-public class ProviderMetadataIdentifier extends MetadataIdentifier {
-
-    public ProviderMetadataIdentifier() {
-
-    }
-
-    public ProviderMetadataIdentifier(String serviceInterface, String version, 
String group) {
-        super(serviceInterface, version, group, Constants.PROVIDER_SIDE);
-    }
-
-    public ProviderMetadataIdentifier(URL url) {
-        super(url);
-        setSide(Constants.PROVIDER_SIDE);
-    }
-}
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/integration/MetadataReportService.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/integration/MetadataReportService.java
index 3ff7b2d..d0dfa73 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/integration/MetadataReportService.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/integration/MetadataReportService.java
@@ -24,8 +24,7 @@ import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.common.utils.StringUtils;
 import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
+import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
 import org.apache.dubbo.metadata.store.MetadataReport;
 import org.apache.dubbo.metadata.store.MetadataReportFactory;
 import org.apache.dubbo.rpc.RpcException;
@@ -82,8 +81,9 @@ public class MetadataReportService {
             if (StringUtils.isNotEmpty(interfaceName)) {
                 Class interfaceClass = Class.forName(interfaceName);
                 FullServiceDefinition fullServiceDefinition = 
ServiceDefinitionBuilder.buildFullDefinition(interfaceClass, 
providerUrl.getParameters());
-                metadataReport.storeProviderMetadata(new 
ProviderMetadataIdentifier(providerUrl.getServiceInterface(),
-                        providerUrl.getParameter(Constants.VERSION_KEY), 
providerUrl.getParameter(Constants.GROUP_KEY)), fullServiceDefinition);
+                metadataReport.storeProviderMetadata(new 
MetadataIdentifier(providerUrl.getServiceInterface(),
+                        providerUrl.getParameter(Constants.VERSION_KEY), 
providerUrl.getParameter(Constants.GROUP_KEY),
+                        
Constants.PROVIDER_SIDE,providerUrl.getParameter(Constants.APPLICATION_KEY)), 
fullServiceDefinition);
                 return;
             }
             logger.error("publishProvider interfaceName is empty . 
providerUrl: " + providerUrl.toFullString());
@@ -95,8 +95,8 @@ public class MetadataReportService {
 
     public void publishConsumer(URL consumerURL) throws RpcException {
         consumerURL = consumerURL.removeParameters(Constants.PID_KEY, 
Constants.TIMESTAMP_KEY, Constants.BIND_IP_KEY, Constants.BIND_PORT_KEY, 
Constants.TIMESTAMP_KEY);
-        metadataReport.storeConsumerMetadata(new 
ConsumerMetadataIdentifier(consumerURL.getServiceInterface(),
-                consumerURL.getParameter(Constants.VERSION_KEY), 
consumerURL.getParameter(Constants.GROUP_KEY),
+        metadataReport.storeConsumerMetadata(new 
MetadataIdentifier(consumerURL.getServiceInterface(),
+                consumerURL.getParameter(Constants.VERSION_KEY), 
consumerURL.getParameter(Constants.GROUP_KEY),Constants.CONSUMER_SIDE,
                 consumerURL.getParameter(Constants.APPLICATION_KEY)), 
consumerURL.getParameters());
     }
 
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/store/MetadataReport.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/store/MetadataReport.java
index 4acc862..271b332 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/store/MetadataReport.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/store/MetadataReport.java
@@ -18,8 +18,7 @@ package org.apache.dubbo.metadata.store;
 
 
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
+import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
 
 import java.util.Map;
 
@@ -30,8 +29,8 @@ public interface MetadataReport {
     public static final String META_DATA_SOTRE_TAG = ".metaData";
 
 
-    void storeProviderMetadata(ProviderMetadataIdentifier 
providerMetadataIdentifier, FullServiceDefinition serviceDefinition);
+    void storeProviderMetadata(MetadataIdentifier providerMetadataIdentifier, 
FullServiceDefinition serviceDefinition);
 
-    void storeConsumerMetadata(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, Map<String, String> serviceParameterMap);
+    void storeConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, 
Map<String, String> serviceParameterMap);
 
 }
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/support/AbstractMetadataReport.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/support/AbstractMetadataReport.java
index 1c88fbd..c557325 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/support/AbstractMetadataReport.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/main/java/org/apache/dubbo/metadata/support/AbstractMetadataReport.java
@@ -24,9 +24,7 @@ import org.apache.dubbo.common.logger.LoggerFactory;
 import org.apache.dubbo.common.utils.ConfigUtils;
 import org.apache.dubbo.common.utils.NamedThreadFactory;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 import org.apache.dubbo.metadata.store.MetadataReport;
 
 import java.io.File;
@@ -64,7 +62,7 @@ public abstract class AbstractMetadataReport implements 
MetadataReport {
 
     // Local disk cache, where the special key value.registies records the 
list of registry centers, and the others are the list of notified service 
providers
     final Properties properties = new Properties();
-    private final ExecutorService reportCacheExecutor = 
Executors.newFixedThreadPool(2, new 
NamedThreadFactory("DubboSaveMetadataReport", true));
+    private final ExecutorService reportCacheExecutor = 
Executors.newFixedThreadPool(1, new 
NamedThreadFactory("DubboSaveMetadataReport", true));
     final Map<MetadataIdentifier, Object> allMetadataReports = new 
ConcurrentHashMap<MetadataIdentifier, Object>(4);
 
     private final AtomicLong lastCacheChanged = new AtomicLong();
@@ -230,7 +228,7 @@ public abstract class AbstractMetadataReport implements 
MetadataReport {
         }
     }
 
-    public void storeProviderMetadata(ProviderMetadataIdentifier 
providerMetadataIdentifier, FullServiceDefinition serviceDefinition) {
+    public void storeProviderMetadata(MetadataIdentifier 
providerMetadataIdentifier, FullServiceDefinition serviceDefinition) {
         if (syncReport) {
             storeProviderMetadataTask(providerMetadataIdentifier, 
serviceDefinition);
         } else {
@@ -243,7 +241,7 @@ public abstract class AbstractMetadataReport implements 
MetadataReport {
         }
     }
 
-    private void storeProviderMetadataTask(ProviderMetadataIdentifier 
providerMetadataIdentifier, FullServiceDefinition serviceDefinition) {
+    private void storeProviderMetadataTask(MetadataIdentifier 
providerMetadataIdentifier, FullServiceDefinition serviceDefinition) {
         try {
             if (logger.isInfoEnabled()) {
                 logger.info("store provider metadata. Identifier : " + 
providerMetadataIdentifier + "; definition: " + serviceDefinition);
@@ -262,7 +260,7 @@ public abstract class AbstractMetadataReport implements 
MetadataReport {
         }
     }
 
-    public void storeConsumerMetadata(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {
+    public void storeConsumerMetadata(MetadataIdentifier 
consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {
         if (syncReport) {
             storeConsumerMetadataTask(consumerMetadataIdentifier, 
serviceParameterMap);
         } else {
@@ -275,7 +273,7 @@ public abstract class AbstractMetadataReport implements 
MetadataReport {
         }
     }
 
-    public void storeConsumerMetadataTask(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {
+    public void storeConsumerMetadataTask(MetadataIdentifier 
consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {
         try {
             if (logger.isInfoEnabled()) {
                 logger.info("store consumer metadata. Identifier : " + 
consumerMetadataIdentifier + "; definition: " + serviceParameterMap);
@@ -316,10 +314,10 @@ public abstract class AbstractMetadataReport implements 
MetadataReport {
         Iterator<Map.Entry<MetadataIdentifier, Object>> iterable = 
metadataMap.entrySet().iterator();
         while (iterable.hasNext()) {
             Map.Entry<MetadataIdentifier, Object> item = iterable.next();
-            if (item.getKey() instanceof ProviderMetadataIdentifier) {
-                this.storeProviderMetadata((ProviderMetadataIdentifier) 
item.getKey(), (FullServiceDefinition) item.getValue());
-            } else if (item.getKey() instanceof ConsumerMetadataIdentifier) {
-                this.storeConsumerMetadata((ConsumerMetadataIdentifier) 
item.getKey(), (Map) item.getValue());
+            if (Constants.PROVIDER_SIDE.equals(item.getKey().getSide())) {
+                this.storeProviderMetadata(item.getKey(), 
(FullServiceDefinition) item.getValue());
+            } else if 
(Constants.CONSUMER_SIDE.equals(item.getKey().getSide())) {
+                this.storeConsumerMetadata(item.getKey(), (Map) 
item.getValue());
             }
 
         }
@@ -401,8 +399,8 @@ public abstract class AbstractMetadataReport implements 
MetadataReport {
         }
     }
 
-    protected abstract void doStoreProviderMetadata(ProviderMetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions);
+    protected abstract void doStoreProviderMetadata(MetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions);
 
-    protected abstract void doStoreConsumerMetadata(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, String serviceParameterString);
+    protected abstract void doStoreConsumerMetadata(MetadataIdentifier 
consumerMetadataIdentifier, String serviceParameterString);
 
 }
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/integration/MetadataReportServiceTest.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/integration/MetadataReportServiceTest.java
index 4059f83..0a06fc1 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/integration/MetadataReportServiceTest.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/integration/MetadataReportServiceTest.java
@@ -66,7 +66,7 @@ public class MetadataReportServiceTest {
     public void testPublishProviderNoInterfaceName() {
 
 
-        URL publishUrl = URL.valueOf("dubbo://" + 
NetUtils.getLocalAddress().getHostName() + 
":4444/org.apache.dubbo.TestService?version=1.0.0&application=vicpubprovder");
+        URL publishUrl = URL.valueOf("dubbo://" + 
NetUtils.getLocalAddress().getHostName() + 
":4444/org.apache.dubbo.TestService?version=1.0.0&application=vicpubprovder&side=provider");
         metadataReportService1.publishProvider(publishUrl);
 
         Assert.assertTrue(metadataReportService1.metadataReport instanceof 
JTestMetadataReport4Test);
@@ -79,7 +79,7 @@ public class MetadataReportServiceTest {
     @Test
     public void testPublishProviderWrongInterface() {
 
-        URL publishUrl = URL.valueOf("dubbo://" + 
NetUtils.getLocalAddress().getHostName() + 
":4444/org.apache.dubbo.TestService?version=1.0.0&application=vicpu&interface=ccc");
+        URL publishUrl = URL.valueOf("dubbo://" + 
NetUtils.getLocalAddress().getHostName() + 
":4444/org.apache.dubbo.TestService?version=1.0.0&application=vicpu&interface=ccc&side=provider");
         metadataReportService1.publishProvider(publishUrl);
 
         Assert.assertTrue(metadataReportService1.metadataReport instanceof 
JTestMetadataReport4Test);
@@ -92,7 +92,7 @@ public class MetadataReportServiceTest {
     @Test
     public void testPublishProviderContainInterface() throws 
InterruptedException {
 
-        URL publishUrl = URL.valueOf("dubbo://" + 
NetUtils.getLocalAddress().getHostName() + 
":4444/org.apache.dubbo.TestService?version=1.0.3&application=vicpubp&interface=org.apache.dubbo.metadata.integration.InterfaceNameTestService");
+        URL publishUrl = URL.valueOf("dubbo://" + 
NetUtils.getLocalAddress().getHostName() + 
":4444/org.apache.dubbo.TestService?version=1.0.3&application=vicpubp&interface=org.apache.dubbo.metadata.integration.InterfaceNameTestService&side=provider");
         metadataReportService1.publishProvider(publishUrl);
         Thread.sleep(300);
 
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/store/test/JTestMetadataReport4Test.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/store/test/JTestMetadataReport4Test.java
index 066faef..294fbbb 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/store/test/JTestMetadataReport4Test.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/store/test/JTestMetadataReport4Test.java
@@ -20,9 +20,7 @@ import org.apache.dubbo.common.Constants;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.logger.Logger;
 import org.apache.dubbo.common.logger.LoggerFactory;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 import org.apache.dubbo.metadata.support.AbstractMetadataReport;
 import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;
 
@@ -51,21 +49,21 @@ public class JTestMetadataReport4Test extends 
AbstractMetadataReport {
     }
 
     @Override
-    protected void doStoreProviderMetadata(ProviderMetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
+    protected void doStoreProviderMetadata(MetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
         
store.put(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY),
 serviceDefinitions);
     }
 
     @Override
-    protected void doStoreConsumerMetadata(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, String serviceParameterString) {
+    protected void doStoreConsumerMetadata(MetadataIdentifier 
consumerMetadataIdentifier, String serviceParameterString) {
         store.put(consumerMetadataIdentifier.getIdentifierKey(), 
serviceParameterString);
     }
 
     public static String getProviderKey(URL url) {
-        return new 
ProviderMetadataIdentifier(url).getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY);
+        return new 
MetadataIdentifier(url).getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY);
     }
 
     public static String getConsumerKey(URL url) {
-        return new 
ConsumerMetadataIdentifier(url).getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY);
+        return new 
MetadataIdentifier(url).getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY);
     }
 
 }
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportFactoryTest.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportFactoryTest.java
index 3708504..cc69c10 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportFactoryTest.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportFactoryTest.java
@@ -19,8 +19,7 @@ package org.apache.dubbo.metadata.support;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
+import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
 import org.apache.dubbo.metadata.store.MetadataReport;
 
 import com.alibaba.fastjson.JSON;
@@ -42,12 +41,12 @@ public class AbstractMetadataReportFactoryTest {
             return new MetadataReport() {
 
                 @Override
-                public void storeProviderMetadata(ProviderMetadataIdentifier 
providerMetadataIdentifier, FullServiceDefinition serviceDefinition) {
+                public void storeProviderMetadata(MetadataIdentifier 
providerMetadataIdentifier, FullServiceDefinition serviceDefinition) {
                     store.put(providerMetadataIdentifier.getIdentifierKey(), 
JSON.toJSONString(serviceDefinition));
                 }
 
                 @Override
-                public void storeConsumerMetadata(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, Map serviceParameterMap) {
+                public void storeConsumerMetadata(MetadataIdentifier 
consumerMetadataIdentifier, Map serviceParameterMap) {
                     store.put(consumerMetadataIdentifier.getIdentifierKey(), 
JSON.toJSONString(serviceParameterMap));
                 }
 
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportTest.java
 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportTest.java
index 15e4cbf..75b4465 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportTest.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-api/src/test/java/org/apache/dubbo/metadata/support/AbstractMetadataReportTest.java
@@ -16,13 +16,12 @@
  */
 package org.apache.dubbo.metadata.support;
 
+import org.apache.dubbo.common.Constants;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 
 import com.google.gson.Gson;
 import org.junit.Assert;
@@ -66,7 +65,7 @@ public class AbstractMetadataReportTest {
         String version = "1.0.0";
         String group = null;
         String application = "vic";
-        ProviderMetadataIdentifier providerMetadataIdentifier = 
storePrivider(abstractMetadataReport, interfaceName, version, group, 
application);
+        MetadataIdentifier providerMetadataIdentifier = 
storePrivider(abstractMetadataReport, interfaceName, version, group, 
application);
         Thread.sleep(1000);
         
Assert.assertNotNull(abstractMetadataReport.store.get(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY)));
     }
@@ -78,7 +77,7 @@ public class AbstractMetadataReportTest {
         String group = null;
         String application = "vic";
         abstractMetadataReport.syncReport = true;
-        ProviderMetadataIdentifier providerMetadataIdentifier = 
storePrivider(abstractMetadataReport, interfaceName, version, group, 
application);
+        MetadataIdentifier providerMetadataIdentifier = 
storePrivider(abstractMetadataReport, interfaceName, version, group, 
application);
         
Assert.assertNotNull(abstractMetadataReport.store.get(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY)));
     }
 
@@ -94,7 +93,7 @@ public class AbstractMetadataReportTest {
         String version = "1.0.0";
         String group = null;
         String application = "vic";
-        ProviderMetadataIdentifier providerMetadataIdentifier = 
storePrivider(singleMetadataReport, interfaceName, version, group, application);
+        MetadataIdentifier providerMetadataIdentifier = 
storePrivider(singleMetadataReport, interfaceName, version, group, application);
 
         Thread.sleep(2000);
         Assert.assertTrue(singleMetadataReport.file.exists());
@@ -152,11 +151,11 @@ public class AbstractMetadataReportTest {
 
     }
 
-    private ProviderMetadataIdentifier storePrivider(AbstractMetadataReport 
abstractMetadataReport, String interfaceName, String version, String group, 
String application) throws ClassNotFoundException {
+    private MetadataIdentifier storePrivider(AbstractMetadataReport 
abstractMetadataReport, String interfaceName, String version, String group, 
String application) throws ClassNotFoundException {
         URL url = URL.valueOf("xxx://" + 
NetUtils.getLocalAddress().getHostName() + ":4444/" + interfaceName + 
"?version=" + version + "&application="
                 + application + (group == null ? "" : "&group=" + group) + 
"&testPKey=8989");
 
-        ProviderMetadataIdentifier providerMetadataIdentifier = new 
ProviderMetadataIdentifier(interfaceName, version, group);
+        MetadataIdentifier providerMetadataIdentifier = new 
MetadataIdentifier(interfaceName, version, group, 
Constants.PROVIDER_SIDE,application);
         Class interfaceClass = Class.forName(interfaceName);
         FullServiceDefinition fullServiceDefinition = 
ServiceDefinitionBuilder.buildFullDefinition(interfaceClass, 
url.getParameters());
 
@@ -165,12 +164,12 @@ public class AbstractMetadataReportTest {
         return providerMetadataIdentifier;
     }
 
-    private ConsumerMetadataIdentifier storeConsumer(AbstractMetadataReport 
abstractMetadataReport, String interfaceName, String version, String group, 
String application, Map<String, String> tmp) throws ClassNotFoundException {
+    private MetadataIdentifier storeConsumer(AbstractMetadataReport 
abstractMetadataReport, String interfaceName, String version, String group, 
String application, Map<String, String> tmp) throws ClassNotFoundException {
         URL url = URL.valueOf("xxx://" + 
NetUtils.getLocalAddress().getHostName() + ":4444/" + interfaceName + 
"?version=" + version + "&application="
                 + application + (group == null ? "" : "&group=" + group) + 
"&testPKey=9090");
 
         tmp.putAll(url.getParameters());
-        ConsumerMetadataIdentifier consumerMetadataIdentifier = new 
ConsumerMetadataIdentifier(interfaceName, version, group, application);
+        MetadataIdentifier consumerMetadataIdentifier = new 
MetadataIdentifier(interfaceName, version, group, Constants.CONSUMER_SIDE, 
application);
 
         
abstractMetadataReport.storeConsumerMetadata(consumerMetadataIdentifier, tmp);
 
@@ -186,12 +185,12 @@ public class AbstractMetadataReportTest {
         String version = "1.0.0";
         String group = null;
         String application = "vic";
-        ProviderMetadataIdentifier providerMetadataIdentifier1 = 
storePrivider(abstractMetadataReport, interfaceName, version, group, 
application);
+        MetadataIdentifier providerMetadataIdentifier1 = 
storePrivider(abstractMetadataReport, interfaceName, version, group, 
application);
         Thread.sleep(1000);
         Assert.assertEquals(abstractMetadataReport.allMetadataReports.size(), 
1);
         Assert.assertTrue(((FullServiceDefinition) 
abstractMetadataReport.allMetadataReports.get(providerMetadataIdentifier1)).getParameters().containsKey("testPKey"));
 
-        ProviderMetadataIdentifier providerMetadataIdentifier2 = 
storePrivider(abstractMetadataReport, interfaceName, version + "_2", group + 
"_2", application);
+        MetadataIdentifier providerMetadataIdentifier2 = 
storePrivider(abstractMetadataReport, interfaceName, version + "_2", group + 
"_2", application);
         Thread.sleep(1000);
         Assert.assertEquals(abstractMetadataReport.allMetadataReports.size(), 
2);
         Assert.assertTrue(((FullServiceDefinition) 
abstractMetadataReport.allMetadataReports.get(providerMetadataIdentifier2)).getParameters().containsKey("testPKey"));
@@ -199,7 +198,7 @@ public class AbstractMetadataReportTest {
 
         Map<String, String> tmpMap = new HashMap<>();
         tmpMap.put("testKey", "value");
-        ConsumerMetadataIdentifier consumerMetadataIdentifier = 
storeConsumer(abstractMetadataReport, interfaceName, version + "_3", group + 
"_3", application, tmpMap);
+        MetadataIdentifier consumerMetadataIdentifier = 
storeConsumer(abstractMetadataReport, interfaceName, version + "_3", group + 
"_3", application, tmpMap);
         Thread.sleep(1000);
         Assert.assertEquals(abstractMetadataReport.allMetadataReports.size(), 
3);
 
@@ -278,12 +277,12 @@ public class AbstractMetadataReportTest {
         }
 
         @Override
-        protected void doStoreProviderMetadata(ProviderMetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
+        protected void doStoreProviderMetadata(MetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
             
store.put(providerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY),
 serviceDefinitions);
         }
 
         @Override
-        protected void doStoreConsumerMetadata(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, String serviceParameterString) {
+        protected void doStoreConsumerMetadata(MetadataIdentifier 
consumerMetadataIdentifier, String serviceParameterString) {
             
store.put(consumerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY),
 serviceParameterString);
         }
     }
@@ -300,7 +299,7 @@ public class AbstractMetadataReportTest {
         }
 
         @Override
-        protected void doStoreProviderMetadata(ProviderMetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
+        protected void doStoreProviderMetadata(MetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
             ++executeTimes;
             System.out.println("***" + executeTimes + ";" + 
System.currentTimeMillis());
             if (executeTimes <= needRetryTimes) {
@@ -310,13 +309,14 @@ public class AbstractMetadataReportTest {
         }
 
         @Override
-        protected void doStoreConsumerMetadata(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, String serviceParameterString) {
+        protected void doStoreConsumerMetadata(MetadataIdentifier 
consumerMetadataIdentifier, String serviceParameterString) {
             ++executeTimes;
             if (executeTimes <= needRetryTimes) {
                 throw new RuntimeException("must retry:" + executeTimes);
             }
             
store.put(consumerMetadataIdentifier.getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY),
 serviceParameterString);
         }
+
     }
 
 
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
 
b/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
index ae4e9e9..f86e337 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
@@ -19,12 +19,9 @@ package org.apache.dubbo.metadata.store.redis;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.logger.Logger;
 import org.apache.dubbo.common.logger.LoggerFactory;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 import org.apache.dubbo.metadata.support.AbstractMetadataReport;
 import org.apache.dubbo.rpc.RpcException;
-
 import redis.clients.jedis.Jedis;
 import redis.clients.jedis.JedisPool;
 import redis.clients.jedis.JedisPoolConfig;
@@ -44,12 +41,12 @@ public class RedisMetadataReport extends 
AbstractMetadataReport {
     }
 
     @Override
-    protected void doStoreProviderMetadata(ProviderMetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
+    protected void doStoreProviderMetadata(MetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
         this.storeMetadata(providerMetadataIdentifier, serviceDefinitions);
     }
 
     @Override
-    protected void doStoreConsumerMetadata(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, String value) {
+    protected void doStoreConsumerMetadata(MetadataIdentifier 
consumerMetadataIdentifier, String value) {
         this.storeMetadata(consumerMetadataIdentifier, value);
     }
 
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
 
b/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
index 2124719..85966b2 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-redis/src/test/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReportTest.java
@@ -1,12 +1,11 @@
 package org.apache.dubbo.metadata.store.redis;
 
+import org.apache.dubbo.common.Constants;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 import org.apache.dubbo.rpc.RpcException;
 
 import com.google.gson.Gson;
@@ -51,7 +50,7 @@ public class RedisMetadataReportTest {
         String version = "1.0.0.redis.md";
         String group = null;
         String application = "vic.redis.md";
-        ProviderMetadataIdentifier providerMetadataIdentifier = 
storePrivider(redisMetadataReport, interfaceName, version, group, application);
+        MetadataIdentifier providerMetadataIdentifier = 
storePrivider(redisMetadataReport, interfaceName, version, group, application);
         Jedis jedis = null;
         try {
             jedis = redisMetadataReport.pool.getResource();
@@ -77,7 +76,7 @@ public class RedisMetadataReportTest {
         String version = "1.0.0.redis.md";
         String group = null;
         String application = "vic.redis.md";
-        ConsumerMetadataIdentifier consumerMetadataIdentifier = 
storeConsumer(redisMetadataReport, interfaceName, version, group, application);
+        MetadataIdentifier consumerMetadataIdentifier = 
storeConsumer(redisMetadataReport, interfaceName, version, group, application);
         Jedis jedis = null;
         try {
             jedis = redisMetadataReport.pool.getResource();
@@ -93,30 +92,38 @@ public class RedisMetadataReportTest {
         }
     }
 
-    private ProviderMetadataIdentifier storePrivider(RedisMetadataReport 
redisMetadataReport, String interfaceName, String version, String group, String 
application) throws ClassNotFoundException {
+    private MetadataIdentifier storePrivider(RedisMetadataReport 
redisMetadataReport, String interfaceName, String version, String group, String 
application) throws ClassNotFoundException {
         URL url = URL.valueOf("xxx://" + 
NetUtils.getLocalAddress().getHostName() + ":4444/" + interfaceName + 
"?paramTest=redisTest&version=" + version + "&application="
                 + application + (group == null ? "" : "&group=" + group));
 
-        ProviderMetadataIdentifier providerMetadataIdentifier = new 
ProviderMetadataIdentifier(interfaceName, version, group);
+        MetadataIdentifier providerMetadataIdentifier = new 
MetadataIdentifier(interfaceName, version, group, Constants.PROVIDER_SIDE, 
application);
         Class interfaceClass = Class.forName(interfaceName);
         FullServiceDefinition fullServiceDefinition = 
ServiceDefinitionBuilder.buildFullDefinition(interfaceClass, 
url.getParameters());
 
         redisMetadataReport.storeProviderMetadata(providerMetadataIdentifier, 
fullServiceDefinition);
-
+        try {
+            Thread.sleep(300);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
         return providerMetadataIdentifier;
     }
 
-    private ConsumerMetadataIdentifier storeConsumer(RedisMetadataReport 
redisMetadataReport, String interfaceName, String version, String group, String 
application) throws ClassNotFoundException {
+    private MetadataIdentifier storeConsumer(RedisMetadataReport 
redisMetadataReport, String interfaceName, String version, String group, String 
application) throws ClassNotFoundException {
         URL url = URL.valueOf("xxx://" + 
NetUtils.getLocalAddress().getHostName() + ":4444/" + interfaceName + 
"?version=" + version + "&application="
                 + application + (group == null ? "" : "&group=" + group));
 
-        ConsumerMetadataIdentifier consumerMetadataIdentifier = new 
ConsumerMetadataIdentifier(interfaceName, version, group, application);
+        MetadataIdentifier consumerMetadataIdentifier = new 
MetadataIdentifier(interfaceName, version, group, Constants.CONSUMER_SIDE, 
application);
         Class interfaceClass = Class.forName(interfaceName);
 
         Map<String, String> tmp = new HashMap<>();
         tmp.put("paramConsumerTest", "redisCm");
         redisMetadataReport.storeConsumerMetadata(consumerMetadataIdentifier, 
tmp);
-
+        try {
+            Thread.sleep(300);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+        }
         return consumerMetadataIdentifier;
     }
 
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
 
b/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
index 1181299..8194e1a 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/main/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java
@@ -21,9 +21,7 @@ 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.CollectionUtils;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 import org.apache.dubbo.metadata.support.AbstractMetadataReport;
 import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;
 import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;
@@ -75,12 +73,12 @@ public class ZookeeperMetadataReport extends 
AbstractMetadataReport {
     }
 
     @Override
-    protected void doStoreProviderMetadata(ProviderMetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
+    protected void doStoreProviderMetadata(MetadataIdentifier 
providerMetadataIdentifier, String serviceDefinitions) {
         storeMetadata(providerMetadataIdentifier, serviceDefinitions);
     }
 
     @Override
-    protected void doStoreConsumerMetadata(ConsumerMetadataIdentifier 
consumerMetadataIdentifier, String value) {
+    protected void doStoreConsumerMetadata(MetadataIdentifier 
consumerMetadataIdentifier, String value) {
         storeMetadata(consumerMetadataIdentifier, value);
     }
 
diff --git 
a/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
 
b/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
index a60fefc..380e107 100644
--- 
a/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
+++ 
b/dubbo-metadata-report/dubbo-metadata-report-zookeeper/src/test/java/org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportTest.java
@@ -1,16 +1,14 @@
 package org.apache.dubbo.metadata.store.zookeeper;
 
+import com.google.gson.Gson;
+import org.apache.curator.test.TestingServer;
+import org.apache.dubbo.common.Constants;
 import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.utils.NetUtils;
 import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
-import org.apache.dubbo.metadata.identifier.ConsumerMetadataIdentifier;
 import org.apache.dubbo.metadata.identifier.MetadataIdentifier;
-import org.apache.dubbo.metadata.identifier.ProviderMetadataIdentifier;
 import org.apache.dubbo.remoting.zookeeper.curator.CuratorZookeeperTransporter;
-
-import com.google.gson.Gson;
-import org.apache.curator.test.TestingServer;
 import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
@@ -50,12 +48,12 @@ public class ZookeeperMetadataReportTest {
     }
 
     @Test
-    public void testStoreProvider() throws ClassNotFoundException {
+    public void testStoreProvider() throws ClassNotFoundException, 
InterruptedException {
         String interfaceName = 
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
         String version = "1.0.0.zk.md";
         String group = null;
         String application = "vic.zk.md";
-        ProviderMetadataIdentifier providerMetadataIdentifier = 
storePrivider(zookeeperMetadataReport, interfaceName, version, group, 
application);
+        MetadataIdentifier providerMetadataIdentifier = 
storePrivider(zookeeperMetadataReport, interfaceName, version, group, 
application);
 
         String fileContent = 
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
         Assert.assertNotNull(fileContent);
@@ -76,12 +74,12 @@ public class ZookeeperMetadataReportTest {
 
 
     @Test
-    public void testConsumer() throws ClassNotFoundException {
+    public void testConsumer() throws ClassNotFoundException, 
InterruptedException {
         String interfaceName = 
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
         String version = "1.0.0.zk.md";
         String group = null;
         String application = "vic.zk.md";
-        ConsumerMetadataIdentifier consumerMetadataIdentifier = 
storeConsumer(zookeeperMetadataReport, interfaceName, version, group, 
application);
+        MetadataIdentifier consumerMetadataIdentifier = 
storeConsumer(zookeeperMetadataReport, interfaceName, version, group, 
application);
 
         String fileContent = 
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
         Assert.assertNotNull(fileContent);
@@ -97,29 +95,30 @@ public class ZookeeperMetadataReportTest {
     }
 
 
-    private ProviderMetadataIdentifier storePrivider(ZookeeperMetadataReport 
zookeeperMetadataReport, String interfaceName, String version, String group, 
String application) throws ClassNotFoundException {
+    private MetadataIdentifier storePrivider(ZookeeperMetadataReport 
zookeeperMetadataReport, String interfaceName, String version, String group, 
String application) throws ClassNotFoundException, InterruptedException {
         URL url = URL.valueOf("xxx://" + 
NetUtils.getLocalAddress().getHostName() + ":4444/" + interfaceName + 
"?paramTest=zkTest&version=" + version + "&application="
                 + application + (group == null ? "" : "&group=" + group));
 
-        ProviderMetadataIdentifier providerMetadataIdentifier = new 
ProviderMetadataIdentifier(interfaceName, version, group);
+        MetadataIdentifier providerMetadataIdentifier = new 
MetadataIdentifier(interfaceName, version, group, Constants.PROVIDER_SIDE, 
application);
         Class interfaceClass = Class.forName(interfaceName);
         FullServiceDefinition fullServiceDefinition = 
ServiceDefinitionBuilder.buildFullDefinition(interfaceClass, 
url.getParameters());
 
         
zookeeperMetadataReport.storeProviderMetadata(providerMetadataIdentifier, 
fullServiceDefinition);
-
+        Thread.sleep(300);
         return providerMetadataIdentifier;
     }
 
-    private ConsumerMetadataIdentifier storeConsumer(ZookeeperMetadataReport 
zookeeperMetadataReport, String interfaceName, String version, String group, 
String application) throws ClassNotFoundException {
+    private MetadataIdentifier storeConsumer(ZookeeperMetadataReport 
zookeeperMetadataReport, String interfaceName, String version, String group, 
String application) throws ClassNotFoundException, InterruptedException {
         URL url = URL.valueOf("xxx://" + 
NetUtils.getLocalAddress().getHostName() + ":4444/" + interfaceName + 
"?version=" + version + "&application="
                 + application + (group == null ? "" : "&group=" + group));
 
-        ConsumerMetadataIdentifier consumerMetadataIdentifier = new 
ConsumerMetadataIdentifier(interfaceName, version, group, application);
+        MetadataIdentifier consumerMetadataIdentifier = new 
MetadataIdentifier(interfaceName, version, group, Constants.CONSUMER_SIDE, 
application);
         Class interfaceClass = Class.forName(interfaceName);
 
         Map<String, String> tmp = new HashMap<>();
         tmp.put("paramConsumerTest", "zkCm");
         
zookeeperMetadataReport.storeConsumerMetadata(consumerMetadataIdentifier, tmp);
+        Thread.sleep(300);
 
         return consumerMetadataIdentifier;
     }

Reply via email to