You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/09/21 16:09:18 UTC

[dubbo] branch 3.0 updated: Add test case for ZookeeperMetadataReportTest (#8840)

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

albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new 419e125  Add test case for ZookeeperMetadataReportTest (#8840)
419e125 is described below

commit 419e1250cffd9d4b09ec226f5d0dab335875f5c5
Author: 灼华 <43...@users.noreply.github.com>
AuthorDate: Wed Sep 22 00:09:04 2021 +0800

    Add test case for ZookeeperMetadataReportTest (#8840)
    
    * Add test case for ZookeeperMetadataReportTest
    1.test case
    2.fix typo
    3.remove unused param
    
    * Restore original method signature
    
    * Restore original method signature
---
 .../common/utils/ServiceAnnotationResolver.java    |  2 +-
 .../rest/ClassPathServiceRestMetadataReader.java   |  8 ++--
 .../SpringMvcServiceRestMetadataResolverTest.java  |  2 +-
 ....json => spring-mvc-service-rest-metadata.json} |  0
 .../metadata/store/redis/RedisMetadataReport.java  |  5 ++-
 .../zookeeper/ZookeeperMetadataReportTest.java     | 50 ++++++++++++++++++++--
 .../registry/client/ServiceDiscoveryRegistry.java  |  4 +-
 7 files changed, 57 insertions(+), 14 deletions(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ServiceAnnotationResolver.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ServiceAnnotationResolver.java
index c49b3a3..8fc8bc6 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ServiceAnnotationResolver.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ServiceAnnotationResolver.java
@@ -84,7 +84,7 @@ public class ServiceAnnotationResolver {
      */
     public String resolveInterfaceClassName() {
 
-        Class interfaceClass = null;
+        Class interfaceClass;
         // first, try to get the value from "interfaceName" attribute
         String interfaceName = resolveAttribute("interfaceName");
 
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/ClassPathServiceRestMetadataReader.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/ClassPathServiceRestMetadataReader.java
index bd4d5a0..f8b9514 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/ClassPathServiceRestMetadataReader.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/rest/ClassPathServiceRestMetadataReader.java
@@ -41,14 +41,14 @@ import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SERVICE_REST_
  */
 public class ClassPathServiceRestMetadataReader implements ServiceRestMetadataReader {
 
-    private final String serviceRestMetadataJsonResoucePath;
+    private final String serviceRestMetadataJsonResourcePath;
 
     public ClassPathServiceRestMetadataReader() {
         this(SERVICE_REST_METADATA_RESOURCE_PATH);
     }
 
-    public ClassPathServiceRestMetadataReader(String serviceRestMetadataJsonResoucePath) {
-        this.serviceRestMetadataJsonResoucePath = serviceRestMetadataJsonResoucePath;
+    public ClassPathServiceRestMetadataReader(String serviceRestMetadataJsonResourcePath) {
+        this.serviceRestMetadataJsonResourcePath = serviceRestMetadataJsonResourcePath;
     }
 
     @Override
@@ -59,7 +59,7 @@ public class ClassPathServiceRestMetadataReader implements ServiceRestMetadataRe
         ClassLoader classLoader = getClass().getClassLoader();
 
         execute(() -> {
-            Enumeration<URL> resources = classLoader.getResources(serviceRestMetadataJsonResoucePath);
+            Enumeration<URL> resources = classLoader.getResources(serviceRestMetadataJsonResourcePath);
             Gson gson = new Gson();
             while (resources.hasMoreElements()) {
                 URL resource = resources.nextElement();
diff --git a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolverTest.java b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolverTest.java
index 43abc8f..0d1da96 100644
--- a/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolverTest.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/test/java/org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolverTest.java
@@ -59,7 +59,7 @@ public class SpringMvcServiceRestMetadataResolverTest {
     @Test
     public void testResolve() {
         // Generated by "dubbo-metadata-processor"
-        ClassPathServiceRestMetadataReader reader = new ClassPathServiceRestMetadataReader("META-INF/dubbo/spring-mvc-servoce-rest-metadata.json");
+        ClassPathServiceRestMetadataReader reader = new ClassPathServiceRestMetadataReader("META-INF/dubbo/spring-mvc-service-rest-metadata.json");
         List<ServiceRestMetadata> serviceRestMetadataList = reader.read();
 
         ServiceRestMetadata expectedServiceRestMetadata = serviceRestMetadataList.get(0);
diff --git a/dubbo-metadata/dubbo-metadata-api/src/test/resources/META-INF/dubbo/spring-mvc-servoce-rest-metadata.json b/dubbo-metadata/dubbo-metadata-api/src/test/resources/META-INF/dubbo/spring-mvc-service-rest-metadata.json
similarity index 100%
rename from dubbo-metadata/dubbo-metadata-api/src/test/resources/META-INF/dubbo/spring-mvc-servoce-rest-metadata.json
rename to dubbo-metadata/dubbo-metadata-api/src/test/resources/META-INF/dubbo/spring-mvc-service-rest-metadata.json
diff --git a/dubbo-metadata/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java b/dubbo-metadata/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
index c00be04..e8a5bcc 100644
--- a/dubbo-metadata/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
+++ b/dubbo-metadata/dubbo-metadata-report-redis/src/main/java/org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java
@@ -55,8 +55,9 @@ public class RedisMetadataReport extends AbstractMetadataReport {
     private final static String REDIS_DATABASE_KEY = "database";
     private final static Logger logger = LoggerFactory.getLogger(RedisMetadataReport.class);
 
-    JedisPool pool;
-    Set<HostAndPort> jedisClusterNodes;
+    // protected , for test
+    protected JedisPool pool;
+    private Set<HostAndPort> jedisClusterNodes;
     private int timeout;
     private String password;
 
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 f1ab756..b77897c 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
@@ -17,7 +17,9 @@
 package org.apache.dubbo.metadata.store.zookeeper;
 
 import org.apache.dubbo.common.URL;
+import org.apache.dubbo.common.config.configcenter.ConfigItem;
 import org.apache.dubbo.common.utils.NetUtils;
+import org.apache.dubbo.metadata.MetadataInfo;
 import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;
 import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;
 import org.apache.dubbo.metadata.report.MetadataReport;
@@ -33,14 +35,13 @@ 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.*;
+import java.util.concurrent.CountDownLatch;
 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;
+import static org.apache.dubbo.metadata.ServiceNameMapping.DEFAULT_MAPPING_GROUP;
 
 /**
  * 2018/10/9
@@ -273,4 +274,45 @@ public class ZookeeperMetadataReportTest {
                 + application + (group == null ? "" : "&group=" + group));
         return url;
     }
+
+
+    @Test
+    public void testMapping() throws InterruptedException {
+        String serviceKey = ZookeeperMetadataReportTest.class.getName();
+        URL url = URL.valueOf("test://127.0.0.1:8888/" + serviceKey);
+        String appNames = "demo1,demo2";
+
+        CountDownLatch latch = new CountDownLatch(1);
+        Set<String> serviceAppMapping = zookeeperMetadataReport.getServiceAppMapping(serviceKey, event -> {
+            Set<String> apps = event.getApps();
+            Assertions.assertEquals(apps.size(), 2);
+            Assertions.assertTrue(apps.contains("demo1"));
+            Assertions.assertTrue(apps.contains("demo2"));
+            latch.countDown();
+        }, url);
+        Assertions.assertTrue(serviceAppMapping.isEmpty());
+
+        ConfigItem configItem = zookeeperMetadataReport.getConfigItem(serviceKey, DEFAULT_MAPPING_GROUP);
+        zookeeperMetadataReport.registerServiceAppMapping(serviceKey, DEFAULT_MAPPING_GROUP, appNames, configItem.getTicket());
+        latch.await();
+    }
+
+    @Test
+    public void testAppMetadata() {
+        String serviceKey = ZookeeperMetadataReportTest.class.getName();
+        String appName = "demo";
+        URL url = URL.valueOf("test://127.0.0.1:8888/" + serviceKey);
+        MetadataInfo metadataInfo = new MetadataInfo(appName);
+        metadataInfo.addService(new MetadataInfo.ServiceInfo(url));
+
+        SubscriberMetadataIdentifier identifier = new SubscriberMetadataIdentifier(appName, metadataInfo.calAndGetRevision());
+        MetadataInfo appMetadata = zookeeperMetadataReport.getAppMetadata(identifier, Collections.emptyMap());
+        Assertions.assertNull(appMetadata);
+
+        zookeeperMetadataReport.publishAppMetadata(identifier, metadataInfo);
+        appMetadata = zookeeperMetadataReport.getAppMetadata(identifier, Collections.emptyMap());
+        Assertions.assertNotNull(appMetadata);
+        Assertions.assertEquals(appMetadata.calAndGetRevision(), metadataInfo.calAndGetRevision());
+
+    }
 }
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
index 0916710..999078b 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java
@@ -93,7 +93,7 @@ public class ServiceDiscoveryRegistry implements Registry {
         this.registryManager = registryURL.getOrDefaultApplicationModel().getBeanFactory().getBean(RegistryManager.class);
     }
 
-    // Currently for test purpose
+    // Currently, for test purpose
     protected ServiceDiscoveryRegistry(URL registryURL, ServiceDiscovery serviceDiscovery, WritableMetadataService writableMetadataService) {
         this.registryURL = registryURL;
         this.serviceDiscovery = serviceDiscovery;
@@ -142,7 +142,7 @@ public class ServiceDiscoveryRegistry implements Registry {
 
         if (!should) {
             if (logger.isDebugEnabled()) {
-                logger.debug(String.format("The URL[%s] should not be registered.", providerURL.toString()));
+                logger.debug(String.format("The URL[%s] should not be registered.", providerURL));
             }
         }