You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by vi...@apache.org on 2018/12/04 03:14:18 UTC
[incubator-dubbo] branch dev-metadata updated: unit test
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 <sh...@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);
}
}