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 c2b34c8  unit test
     new 2b01e0c  Merge branch 'dev-metadata' of 
github.com:apache/incubator-dubbo into dev-metadata
c2b34c8 is described below

commit c2b34c81131a535a67c735fc890ba9a9764d36f6
Author: cvictory <shenglic...@gmail.com>
AuthorDate: Mon Dec 3 18:32:06 2018 +0800

    unit test
---
 .../identifier/ConsumerMetadataIdentifier.java     |  7 ++++
 .../metadata/identifier/MetadataIdentifier.java    | 11 ++++-
 .../identifier/ProviderMetadataIdentifier.java     |  6 +++
 .../integration/MetadataReportServiceTest.java     | 49 +++++++---------------
 .../store/test/JTestMetadataReport4Test.java       |  8 +++-
 5 files changed, 44 insertions(+), 37 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
index ac1f48b..821f300 100644
--- 
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
@@ -1,6 +1,7 @@
 package org.apache.dubbo.metadata.identifier;
 
 import org.apache.dubbo.common.Constants;
+import org.apache.dubbo.common.URL;
 
 /**
  * 2018/10/25
@@ -15,6 +16,12 @@ public class ConsumerMetadataIdentifier extends 
MetadataIdentifier {
         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() {
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 ee32a2c..67f66a4 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
@@ -25,15 +25,22 @@ public class MetadataIdentifier {
         this.side = side;
     }
 
+    public MetadataIdentifier(URL url) {
+        this.serviceInterface = url.getServiceInterface();
+        this.version = url.getParameter(Constants.VERSION_KEY);
+        this.group = url.getParameter(Constants.GROUP_KEY);
+        this.side = url.getParameter(Constants.SIDE_KEY);
+    }
+
     public String getUniqueKey(KeyTypeEnum keyType) {
-        if (keyType == KeyTypeEnum.UNIQUE_KEY) {
+        if (keyType == KeyTypeEnum.PATH) {
             return getFilePathKey();
         }
         return getIdentifierKey();
     }
 
     public String getIdentifierKey() {
-        return serviceInterface + SEPARATOR + version + SEPARATOR + group + 
SEPARATOR + side;
+        return serviceInterface + SEPARATOR + (version == null ? "" : version 
+ SEPARATOR) + (group == null ? "" : group + SEPARATOR) + side;
     }
 
     private String getFilePathKey() {
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
index c2e03db..9a62fd1 100644
--- 
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
@@ -1,6 +1,7 @@
 package org.apache.dubbo.metadata.identifier;
 
 import org.apache.dubbo.common.Constants;
+import org.apache.dubbo.common.URL;
 
 /**
  * 2018/10/25
@@ -14,4 +15,9 @@ public class ProviderMetadataIdentifier extends 
MetadataIdentifier {
     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/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 94827d7..7cc8899 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
@@ -1,10 +1,11 @@
 package org.apache.dubbo.metadata.integration;
 
+import com.google.gson.Gson;
 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.model.FullServiceDefinition;
 import org.apache.dubbo.metadata.store.test.JTestMetadataReport4Test;
-
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
@@ -55,12 +56,7 @@ public class MetadataReportServiceTest {
         Assert.assertTrue(metadataReportService1.metadataReport instanceof 
JTestMetadataReport4Test);
 
         JTestMetadataReport4Test jTestMetadataReport4Test = 
(JTestMetadataReport4Test) metadataReportService1.metadataReport;
-        
Assert.assertTrue(jTestMetadataReport4Test.store.containsKey(JTestMetadataReport4Test.getKey(publishUrl)));
-
-        String value = 
jTestMetadataReport4Test.store.get(JTestMetadataReport4Test.getKey(publishUrl));
-        Map<String, String> map = queryUrlToMap(value);
-        Assert.assertEquals(map.get("application"), "vicpubprovder");
-        Assert.assertEquals(map.get("version"), "1.0.0");
+        
Assert.assertTrue(!jTestMetadataReport4Test.store.containsKey(JTestMetadataReport4Test.getProviderKey(publishUrl)));
 
     }
 
@@ -73,14 +69,8 @@ public class MetadataReportServiceTest {
         Assert.assertTrue(metadataReportService1.metadataReport instanceof 
JTestMetadataReport4Test);
 
         JTestMetadataReport4Test jTestMetadataReport4Test = 
(JTestMetadataReport4Test) metadataReportService1.metadataReport;
-        
Assert.assertTrue(jTestMetadataReport4Test.store.containsKey(JTestMetadataReport4Test.getKey(publishUrl)));
-
-        String value = 
jTestMetadataReport4Test.store.get(JTestMetadataReport4Test.getKey(publishUrl));
-        Map<String, String> map = queryUrlToMap(value);
-        Assert.assertEquals(map.get("application"), "vicpu");
-        Assert.assertEquals(map.get("version"), "1.0.0");
-        Assert.assertEquals(map.get("interface"), "ccc");
-        Assert.assertNull(map.get(Constants.SERVICE_DESCIPTOR_KEY));
+        
Assert.assertTrue(!jTestMetadataReport4Test.store.containsKey(JTestMetadataReport4Test.getProviderKey(publishUrl)));
+
     }
 
     @Test
@@ -92,14 +82,14 @@ public class MetadataReportServiceTest {
         Assert.assertTrue(metadataReportService1.metadataReport instanceof 
JTestMetadataReport4Test);
 
         JTestMetadataReport4Test jTestMetadataReport4Test = 
(JTestMetadataReport4Test) metadataReportService1.metadataReport;
-        
Assert.assertTrue(jTestMetadataReport4Test.store.containsKey(JTestMetadataReport4Test.getKey(publishUrl)));
+        
Assert.assertTrue(jTestMetadataReport4Test.store.containsKey(JTestMetadataReport4Test.getProviderKey(publishUrl)));
 
-        String value = 
jTestMetadataReport4Test.store.get(JTestMetadataReport4Test.getKey(publishUrl));
-        Map<String, String> map = queryUrlToMap(value);
+        String value = 
jTestMetadataReport4Test.store.get(JTestMetadataReport4Test.getProviderKey(publishUrl));
+        FullServiceDefinition fullServiceDefinition = 
toServiceDefinition(value);
+        Map<String,String> map = fullServiceDefinition.getParameters();
         Assert.assertEquals(map.get("application"), "vicpubp");
         Assert.assertEquals(map.get("version"), "1.0.3");
         Assert.assertEquals(map.get("interface"), 
"org.apache.dubbo.metadata.integration.InterfaceNameTestService");
-        Assert.assertNotNull(map.get(Constants.SERVICE_DESCIPTOR_KEY));
     }
 
     @Test
@@ -111,26 +101,19 @@ public class MetadataReportServiceTest {
         Assert.assertTrue(metadataReportService1.metadataReport instanceof 
JTestMetadataReport4Test);
 
         JTestMetadataReport4Test jTestMetadataReport4Test = 
(JTestMetadataReport4Test) metadataReportService1.metadataReport;
-        
Assert.assertTrue(jTestMetadataReport4Test.store.containsKey(JTestMetadataReport4Test.getKey(publishUrl)));
+        
Assert.assertTrue(jTestMetadataReport4Test.store.containsKey(JTestMetadataReport4Test.getConsumerKey(publishUrl)));
 
-        String value = 
jTestMetadataReport4Test.store.get(JTestMetadataReport4Test.getKey(publishUrl));
-        Map<String, String> map = queryUrlToMap(value);
+        String value = 
jTestMetadataReport4Test.store.get(JTestMetadataReport4Test.getConsumerKey(publishUrl));
+        Gson gson = new Gson();
+        Map<String, String> map = gson.fromJson(value, Map.class);
         Assert.assertEquals(map.get("application"), "vicpubconsumer");
         Assert.assertEquals(map.get("version"), "1.0.x");
 
     }
 
-    private Map<String, String> queryUrlToMap(String urlQuery) {
-        if (urlQuery == null) {
-            return Collections.emptyMap();
-        }
-        String[] pairs = urlQuery.split("&");
-        Map<String, String> map = new HashMap<>();
-        for (String pairStr : pairs) {
-            String[] pair = pairStr.split("=");
-            map.put(pair[0], pair[1]);
-        }
-        return map;
+    private FullServiceDefinition toServiceDefinition(String urlQuery) {
+        Gson gson = new Gson();
+        return gson.fromJson(urlQuery, FullServiceDefinition.class);
     }
 
 }
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 51793bb..066faef 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
@@ -60,8 +60,12 @@ public class JTestMetadataReport4Test extends 
AbstractMetadataReport {
         store.put(consumerMetadataIdentifier.getIdentifierKey(), 
serviceParameterString);
     }
 
-    public static String getKey(URL url) {
-        return getProtocol(url) + url.getServiceKey();
+    public static String getProviderKey(URL url) {
+        return new 
ProviderMetadataIdentifier(url).getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY);
+    }
+
+    public static String getConsumerKey(URL url) {
+        return new 
ConsumerMetadataIdentifier(url).getUniqueKey(MetadataIdentifier.KeyTypeEnum.UNIQUE_KEY);
     }
 
 }

Reply via email to