This is an automated email from the ASF dual-hosted git repository.
albumenj pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git
The following commit(s) were added to refs/heads/master by this push:
new c40af2a Revert and fix ZookeeperMetadataReportTest (#7769)
c40af2a is described below
commit c40af2a2ecb4f9b19323c9fdf93bbc729deb72bc
Author: passer <[email protected]>
AuthorDate: Sun May 16 20:53:01 2021 +0800
Revert and fix ZookeeperMetadataReportTest (#7769)
---
.../zookeeper/ZookeeperMetadataReportTest.java | 556 +++++++++++----------
1 file changed, 280 insertions(+), 276 deletions(-)
diff --git
a/dubbo-metadata/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
index 4e6ae3d..fc7572f 100644
---
a/dubbo-metadata/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
@@ -1,276 +1,280 @@
-///*
-// * 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.store.zookeeper;
-//
-//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.report.MetadataReport;
-//import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;
-//import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;
-//import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;
-//import
org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;
-//
-//import com.google.gson.Gson;
-//import org.apache.curator.test.TestingServer;
-//import org.junit.jupiter.api.AfterEach;
-//import org.junit.jupiter.api.Assertions;
-//import org.junit.jupiter.api.BeforeEach;
-//import org.junit.jupiter.api.Test;
-//
-//import java.util.Arrays;
-//import java.util.HashMap;
-//import java.util.List;
-//import java.util.Map;
-//import java.util.concurrent.ExecutionException;
-//
-//import static
org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;
-//import static
org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
-//
-///**
-// * 2018/10/9
-// */
-//public class ZookeeperMetadataReportTest {
-// private TestingServer zkServer;
-// private MetadataReport zookeeperMetadataReport;
-// private URL registryUrl;
-// private ZookeeperMetadataReportFactory zookeeperMetadataReportFactory;
-//
-// @BeforeEach
-// public void setUp() throws Exception {
-// int zkServerPort = NetUtils.getAvailablePort();
-// this.zkServer = new TestingServer(zkServerPort, true);
-// this.registryUrl = URL.valueOf("zookeeper://127.0.0.1:" +
zkServerPort);
-//
-// zookeeperMetadataReportFactory = new
ZookeeperMetadataReportFactory();
-// this.zookeeperMetadataReport =
zookeeperMetadataReportFactory.getMetadataReport(registryUrl);
-// }
-//
-// @AfterEach
-// public void tearDown() throws Exception {
-// zkServer.stop();
-// }
-//
-// private void deletePath(MetadataIdentifier metadataIdentifier,
MetadataReport zookeeperMetadataReport) {
-// String category = zookeeperMetadataReport.toRootDir() +
metadataIdentifier.getUniqueKey(KeyTypeEnum.PATH);
-// zookeeperMetadataReport.zkClient.delete(category);
-// }
-//
-// @Test
-// 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";
-// MetadataIdentifier providerMetadataIdentifier =
storePrivider(zookeeperMetadataReport, interfaceName, version, group,
application);
-//
-// String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
-// fileContent = waitSeconds(fileContent, 3500,
zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
-// Assertions.assertNotNull(fileContent);
-//
-// deletePath(providerMetadataIdentifier, zookeeperMetadataReport);
-// fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
-// fileContent = waitSeconds(fileContent, 1000,
zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
-// Assertions.assertNull(fileContent);
-//
-//
-// providerMetadataIdentifier = storePrivider(zookeeperMetadataReport,
interfaceName, version, group, application);
-// fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
-// fileContent = waitSeconds(fileContent, 3500,
zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
-// Assertions.assertNotNull(fileContent);
-//
-// Gson gson = new Gson();
-// FullServiceDefinition fullServiceDefinition =
gson.fromJson(fileContent, FullServiceDefinition.class);
-//
Assertions.assertEquals(fullServiceDefinition.getParameters().get("paramTest"),
"zkTest");
-// }
-//
-//
-// @Test
-// 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";
-// MetadataIdentifier consumerMetadataIdentifier =
storeConsumer(zookeeperMetadataReport, interfaceName, version, group,
application);
-//
-// String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
-// fileContent = waitSeconds(fileContent, 3500,
zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
-// Assertions.assertNotNull(fileContent);
-//
-// deletePath(consumerMetadataIdentifier, zookeeperMetadataReport);
-// fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
-// fileContent = waitSeconds(fileContent, 1000,
zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
-// Assertions.assertNull(fileContent);
-//
-// consumerMetadataIdentifier = storeConsumer(zookeeperMetadataReport,
interfaceName, version, group, application);
-// fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
-// fileContent = waitSeconds(fileContent, 3000,
zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
-// Assertions.assertNotNull(fileContent);
-// Assertions.assertEquals(fileContent,
"{\"paramConsumerTest\":\"zkCm\"}");
-// }
-//
-// @Test
-// public void testDoSaveMetadata() throws ExecutionException,
InterruptedException {
-// String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
-// String version = "1.0.0";
-// String group = null;
-// String application = "etc-metadata-report-consumer-test";
-// String revision = "90980";
-// String protocol = "xxx";
-// URL url = generateURL(interfaceName, version, group, application);
-// ServiceMetadataIdentifier serviceMetadataIdentifier = new
ServiceMetadataIdentifier(interfaceName, version,
-// group, "provider", revision, protocol);
-// zookeeperMetadataReport.doSaveMetadata(serviceMetadataIdentifier,
url);
-//
-// String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(serviceMetadataIdentifier));
-// Assertions.assertNotNull(fileContent);
-//
-// Assertions.assertEquals(fileContent, URL.encode(url.toFullString()));
-// }
-//
-// @Test
-// public void testDoRemoveMetadata() throws ExecutionException,
InterruptedException {
-// String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
-// String version = "1.0.0";
-// String group = null;
-// String application = "etc-metadata-report-consumer-test";
-// String revision = "90980";
-// String protocol = "xxx";
-// URL url = generateURL(interfaceName, version, group, application);
-// ServiceMetadataIdentifier serviceMetadataIdentifier = new
ServiceMetadataIdentifier(interfaceName, version,
-// group, "provider", revision, protocol);
-// zookeeperMetadataReport.doSaveMetadata(serviceMetadataIdentifier,
url);
-// String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(serviceMetadataIdentifier));
-//
-// Assertions.assertNotNull(fileContent);
-//
-//
-// zookeeperMetadataReport.doRemoveMetadata(serviceMetadataIdentifier);
-//
-// fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(serviceMetadataIdentifier));
-// Assertions.assertNull(fileContent);
-// }
-//
-// @Test
-// public void testDoGetExportedURLs() throws ExecutionException,
InterruptedException {
-// String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
-// String version = "1.0.0";
-// String group = null;
-// String application = "etc-metadata-report-consumer-test";
-// String revision = "90980";
-// String protocol = "xxx";
-// URL url = generateURL(interfaceName, version, group, application);
-// ServiceMetadataIdentifier serviceMetadataIdentifier = new
ServiceMetadataIdentifier(interfaceName, version,
-// group, "provider", revision, protocol);
-// zookeeperMetadataReport.doSaveMetadata(serviceMetadataIdentifier,
url);
-//
-// List<String> r =
zookeeperMetadataReport.doGetExportedURLs(serviceMetadataIdentifier);
-// Assertions.assertTrue(r.size() == 1);
-//
-// String fileContent = r.get(0);
-// Assertions.assertNotNull(fileContent);
-//
-// Assertions.assertEquals(fileContent, url.toFullString());
-// }
-//
-// @Test
-// public void testDoSaveSubscriberData() throws ExecutionException,
InterruptedException {
-// String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
-// String version = "1.0.0";
-// String group = null;
-// String application = "etc-metadata-report-consumer-test";
-// String revision = "90980";
-// String protocol = "xxx";
-// URL url = generateURL(interfaceName, version, group, application);
-// SubscriberMetadataIdentifier subscriberMetadataIdentifier = new
SubscriberMetadataIdentifier(application, revision);
-// Gson gson = new Gson();
-// String r = gson.toJson(Arrays.asList(url));
-//
zookeeperMetadataReport.doSaveSubscriberData(subscriberMetadataIdentifier, r);
-//
-// String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(subscriberMetadataIdentifier));
-//
-// Assertions.assertNotNull(fileContent);
-//
-// Assertions.assertEquals(fileContent, r);
-// }
-//
-// @Test
-// public void testDoGetSubscribedURLs() throws ExecutionException,
InterruptedException {
-// String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
-// String version = "1.0.0";
-// String group = null;
-// String application = "etc-metadata-report-consumer-test";
-// String revision = "90980";
-// String protocol = "xxx";
-// URL url = generateURL(interfaceName, version, group, application);
-// SubscriberMetadataIdentifier subscriberMetadataIdentifier = new
SubscriberMetadataIdentifier(application, revision);
-// Gson gson = new Gson();
-// String r = gson.toJson(Arrays.asList(url));
-//
zookeeperMetadataReport.doSaveSubscriberData(subscriberMetadataIdentifier, r);
-//
-// String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(subscriberMetadataIdentifier));
-//
-// Assertions.assertNotNull(fileContent);
-//
-// Assertions.assertEquals(fileContent, r);
-// }
-//
-//
-// private MetadataIdentifier storePrivider(MetadataReport
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));
-//
-// MetadataIdentifier providerMetadataIdentifier = new
MetadataIdentifier(interfaceName, version, group, PROVIDER_SIDE, application);
-// Class interfaceClass = Class.forName(interfaceName);
-// FullServiceDefinition fullServiceDefinition =
ServiceDefinitionBuilder.buildFullDefinition(interfaceClass,
url.getParameters());
-//
-//
zookeeperMetadataReport.storeProviderMetadata(providerMetadataIdentifier,
fullServiceDefinition);
-// Thread.sleep(2000);
-// return providerMetadataIdentifier;
-// }
-//
-// private MetadataIdentifier storeConsumer(MetadataReport
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));
-//
-// MetadataIdentifier consumerMetadataIdentifier = new
MetadataIdentifier(interfaceName, version, group, CONSUMER_SIDE, application);
-// Class interfaceClass = Class.forName(interfaceName);
-//
-// Map<String, String> tmp = new HashMap<>();
-// tmp.put("paramConsumerTest", "zkCm");
-//
zookeeperMetadataReport.storeConsumerMetadata(consumerMetadataIdentifier, tmp);
-// Thread.sleep(2000);
-//
-// return consumerMetadataIdentifier;
-// }
-//
-// private String waitSeconds(String value, long moreTime, String path)
throws InterruptedException {
-// if (value == null) {
-// Thread.sleep(moreTime);
-// return zookeeperMetadataReport.zkClient.getContent(path);
-// }
-// return value;
-// }
-//
-// private URL generateURL(String interfaceName, String version, String
group, String application) {
-// URL url = URL.valueOf("xxx://" +
NetUtils.getLocalAddress().getHostName() + ":8989/" + interfaceName +
-// "?paramTest=etcdTest&version=" + version + "&application="
-// + application + (group == null ? "" : "&group=" + group));
-// return url;
-// }
-//}
+/*
+ * 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.store.zookeeper;
+
+import org.apache.dubbo.common.URL;
+import org.apache.dubbo.common.extension.ExtensionLoader;
+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.report.MetadataReport;
+import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;
+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;
+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;
+import
org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;
+
+import com.google.gson.Gson;
+import org.apache.curator.test.TestingServer;
+import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+
+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;
+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;
+
+/**
+ * 2018/10/9
+ */
+public class ZookeeperMetadataReportTest {
+ private TestingServer zkServer;
+ private ZookeeperMetadataReport zookeeperMetadataReport;
+ private URL registryUrl;
+ private ZookeeperMetadataReportFactory zookeeperMetadataReportFactory;
+
+ @BeforeEach
+ public void setUp() throws Exception {
+ int zkServerPort = NetUtils.getAvailablePort();
+ this.zkServer = new TestingServer(zkServerPort, true);
+ this.registryUrl = URL.valueOf("zookeeper://127.0.0.1:" +
zkServerPort);
+
+ zookeeperMetadataReportFactory = new ZookeeperMetadataReportFactory();
+ ZookeeperTransporter zookeeperTransporter =
ExtensionLoader.getExtensionLoader(ZookeeperTransporter.class).getExtension("curator");
+
zookeeperMetadataReportFactory.setZookeeperTransporter(zookeeperTransporter);
+ this.zookeeperMetadataReport = (ZookeeperMetadataReport)
zookeeperMetadataReportFactory.getMetadataReport(registryUrl);
+ }
+
+ @AfterEach
+ public void tearDown() throws Exception {
+ zkServer.stop();
+ }
+
+ private void deletePath(MetadataIdentifier metadataIdentifier,
ZookeeperMetadataReport zookeeperMetadataReport) {
+ String category = zookeeperMetadataReport.toRootDir() +
metadataIdentifier.getUniqueKey(KeyTypeEnum.PATH);
+ zookeeperMetadataReport.zkClient.delete(category);
+ }
+
+ @Test
+ 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";
+ MetadataIdentifier providerMetadataIdentifier =
storePrivider(zookeeperMetadataReport, interfaceName, version, group,
application);
+
+ String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
+ fileContent = waitSeconds(fileContent, 3500,
zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
+ Assertions.assertNotNull(fileContent);
+
+ deletePath(providerMetadataIdentifier, zookeeperMetadataReport);
+ fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
+ fileContent = waitSeconds(fileContent, 1000,
zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
+ Assertions.assertNull(fileContent);
+
+
+ providerMetadataIdentifier = storePrivider(zookeeperMetadataReport,
interfaceName, version, group, application);
+ fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
+ fileContent = waitSeconds(fileContent, 3500,
zookeeperMetadataReport.getNodePath(providerMetadataIdentifier));
+ Assertions.assertNotNull(fileContent);
+
+ Gson gson = new Gson();
+ FullServiceDefinition fullServiceDefinition =
gson.fromJson(fileContent, FullServiceDefinition.class);
+
Assertions.assertEquals(fullServiceDefinition.getParameters().get("paramTest"),
"zkTest");
+ }
+
+
+ @Test
+ 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";
+ MetadataIdentifier consumerMetadataIdentifier =
storeConsumer(zookeeperMetadataReport, interfaceName, version, group,
application);
+
+ String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
+ fileContent = waitSeconds(fileContent, 3500,
zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
+ Assertions.assertNotNull(fileContent);
+
+ deletePath(consumerMetadataIdentifier, zookeeperMetadataReport);
+ fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
+ fileContent = waitSeconds(fileContent, 1000,
zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
+ Assertions.assertNull(fileContent);
+
+ consumerMetadataIdentifier = storeConsumer(zookeeperMetadataReport,
interfaceName, version, group, application);
+ fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
+ fileContent = waitSeconds(fileContent, 3000,
zookeeperMetadataReport.getNodePath(consumerMetadataIdentifier));
+ Assertions.assertNotNull(fileContent);
+ Assertions.assertEquals(fileContent,
"{\"paramConsumerTest\":\"zkCm\"}");
+ }
+
+ @Test
+ public void testDoSaveMetadata() throws ExecutionException,
InterruptedException {
+ String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
+ String version = "1.0.0";
+ String group = null;
+ String application = "etc-metadata-report-consumer-test";
+ String revision = "90980";
+ String protocol = "xxx";
+ URL url = generateURL(interfaceName, version, group, application);
+ ServiceMetadataIdentifier serviceMetadataIdentifier = new
ServiceMetadataIdentifier(interfaceName, version,
+ group, "provider", revision, protocol);
+ zookeeperMetadataReport.doSaveMetadata(serviceMetadataIdentifier, url);
+
+ String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(serviceMetadataIdentifier));
+ Assertions.assertNotNull(fileContent);
+
+ Assertions.assertEquals(fileContent, URL.encode(url.toFullString()));
+ }
+
+ @Test
+ public void testDoRemoveMetadata() throws ExecutionException,
InterruptedException {
+ String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
+ String version = "1.0.0";
+ String group = null;
+ String application = "etc-metadata-report-consumer-test";
+ String revision = "90980";
+ String protocol = "xxx";
+ URL url = generateURL(interfaceName, version, group, application);
+ ServiceMetadataIdentifier serviceMetadataIdentifier = new
ServiceMetadataIdentifier(interfaceName, version,
+ group, "provider", revision, protocol);
+ zookeeperMetadataReport.doSaveMetadata(serviceMetadataIdentifier, url);
+ String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(serviceMetadataIdentifier));
+
+ Assertions.assertNotNull(fileContent);
+
+
+ zookeeperMetadataReport.doRemoveMetadata(serviceMetadataIdentifier);
+
+ fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(serviceMetadataIdentifier));
+ Assertions.assertNull(fileContent);
+ }
+
+ @Test
+ public void testDoGetExportedURLs() throws ExecutionException,
InterruptedException {
+ String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
+ String version = "1.0.0";
+ String group = null;
+ String application = "etc-metadata-report-consumer-test";
+ String revision = "90980";
+ String protocol = "xxx";
+ URL url = generateURL(interfaceName, version, group, application);
+ ServiceMetadataIdentifier serviceMetadataIdentifier = new
ServiceMetadataIdentifier(interfaceName, version,
+ group, "provider", revision, protocol);
+ zookeeperMetadataReport.doSaveMetadata(serviceMetadataIdentifier, url);
+
+ List<String> r =
zookeeperMetadataReport.doGetExportedURLs(serviceMetadataIdentifier);
+ Assertions.assertTrue(r.size() == 1);
+
+ String fileContent = r.get(0);
+ Assertions.assertNotNull(fileContent);
+
+ Assertions.assertEquals(fileContent, url.toFullString());
+ }
+
+ @Test
+ public void testDoSaveSubscriberData() throws ExecutionException,
InterruptedException {
+ String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
+ String version = "1.0.0";
+ String group = null;
+ String application = "etc-metadata-report-consumer-test";
+ String revision = "90980";
+ String protocol = "xxx";
+ URL url = generateURL(interfaceName, version, group, application);
+ SubscriberMetadataIdentifier subscriberMetadataIdentifier = new
SubscriberMetadataIdentifier(application, revision);
+ Gson gson = new Gson();
+ String r = gson.toJson(Arrays.asList(url));
+
zookeeperMetadataReport.doSaveSubscriberData(subscriberMetadataIdentifier, r);
+
+ String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(subscriberMetadataIdentifier));
+
+ Assertions.assertNotNull(fileContent);
+
+ Assertions.assertEquals(fileContent, r);
+ }
+
+ @Test
+ public void testDoGetSubscribedURLs() throws ExecutionException,
InterruptedException {
+ String interfaceName =
"org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReport4TstService";
+ String version = "1.0.0";
+ String group = null;
+ String application = "etc-metadata-report-consumer-test";
+ String revision = "90980";
+ String protocol = "xxx";
+ URL url = generateURL(interfaceName, version, group, application);
+ SubscriberMetadataIdentifier subscriberMetadataIdentifier = new
SubscriberMetadataIdentifier(application, revision);
+ Gson gson = new Gson();
+ String r = gson.toJson(Arrays.asList(url));
+
zookeeperMetadataReport.doSaveSubscriberData(subscriberMetadataIdentifier, r);
+
+ String fileContent =
zookeeperMetadataReport.zkClient.getContent(zookeeperMetadataReport.getNodePath(subscriberMetadataIdentifier));
+
+ Assertions.assertNotNull(fileContent);
+
+ Assertions.assertEquals(fileContent, r);
+ }
+
+
+ private MetadataIdentifier storePrivider(MetadataReport
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));
+
+ MetadataIdentifier providerMetadataIdentifier = new
MetadataIdentifier(interfaceName, version, group, PROVIDER_SIDE, application);
+ Class interfaceClass = Class.forName(interfaceName);
+ FullServiceDefinition fullServiceDefinition =
ServiceDefinitionBuilder.buildFullDefinition(interfaceClass,
url.getParameters());
+
+
zookeeperMetadataReport.storeProviderMetadata(providerMetadataIdentifier,
fullServiceDefinition);
+ Thread.sleep(2000);
+ return providerMetadataIdentifier;
+ }
+
+ private MetadataIdentifier storeConsumer(MetadataReport
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));
+
+ MetadataIdentifier consumerMetadataIdentifier = new
MetadataIdentifier(interfaceName, version, group, CONSUMER_SIDE, application);
+ Class interfaceClass = Class.forName(interfaceName);
+
+ Map<String, String> tmp = new HashMap<>();
+ tmp.put("paramConsumerTest", "zkCm");
+
zookeeperMetadataReport.storeConsumerMetadata(consumerMetadataIdentifier, tmp);
+ Thread.sleep(2000);
+
+ return consumerMetadataIdentifier;
+ }
+
+ private String waitSeconds(String value, long moreTime, String path)
throws InterruptedException {
+ if (value == null) {
+ Thread.sleep(moreTime);
+ return zookeeperMetadataReport.zkClient.getContent(path);
+ }
+ return value;
+ }
+
+ private URL generateURL(String interfaceName, String version, String
group, String application) {
+ URL url = URL.valueOf("xxx://" +
NetUtils.getLocalAddress().getHostName() + ":8989/" + interfaceName +
+ "?paramTest=etcdTest&version=" + version + "&application="
+ + application + (group == null ? "" : "&group=" + group));
+ return url;
+ }
+}