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/06/25 04:33:44 UTC

[dubbo] branch 3.0 updated: [3.0] Add service config to bootstrap when init (#8138)

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 f488cb3  [3.0] Add service config to bootstrap when init (#8138)
f488cb3 is described below

commit f488cb3a10093ac2c361ac6de696201e0e8a30af
Author: Gong Dewei <ky...@qq.com>
AuthorDate: Fri Jun 25 12:33:29 2021 +0800

    [3.0] Add service config to bootstrap when init (#8138)
    
    * Add service config to bootstrap when init
    
    * Fix test
    
    * improve ServiceListener test
---
 .../src/main/java/org/apache/dubbo/config/ServiceConfig.java     | 3 ++-
 .../src/test/java/org/apache/dubbo/config/ServiceConfigTest.java | 9 +--------
 .../java/org/apache/dubbo/config/mock/MockServiceListener.java   | 5 +++++
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
index 8d5893b..9058e7d 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ServiceConfig.java
@@ -190,9 +190,10 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
     public void init() {
         if (this.initialized.compareAndSet(false, true)) {
             if (this.bootstrap == null) {
-                this.setBootstrap(DubboBootstrap.getInstance());
+                this.bootstrap = DubboBootstrap.getInstance();
                 this.bootstrap.initialize();
             }
+            this.bootstrap.service(this);
 
             // load ServiceListeners from extension
             ExtensionLoader<ServiceListener> extensionLoader = ExtensionLoader.getExtensionLoader(ServiceListener.class);
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java
index a4c6a62..ff480aa 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/ServiceConfigTest.java
@@ -42,7 +42,6 @@ import org.mockito.Mockito;
 
 import java.util.Collections;
 import java.util.Map;
-import java.util.Set;
 import java.util.concurrent.TimeUnit;
 
 import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;
@@ -344,13 +343,7 @@ public class ServiceConfigTest {
     @Test
     public void testServiceListener() {
         ExtensionLoader<ServiceListener> extensionLoader = ExtensionLoader.getExtensionLoader(ServiceListener.class);
-        Set<ServiceListener> serviceListeners = extensionLoader.getSupportedExtensionInstances();
-        MockServiceListener mockServiceListener = null;
-        for (ServiceListener serviceListener : serviceListeners) {
-            if (serviceListener instanceof MockServiceListener) {
-                mockServiceListener = (MockServiceListener) serviceListener;
-            }
-        }
+        MockServiceListener mockServiceListener = (MockServiceListener) extensionLoader.getExtension("mock");
         assertNotNull(mockServiceListener);
         mockServiceListener.clearExportedServices();
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockServiceListener.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockServiceListener.java
index 5cc31b8..75e05a8 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockServiceListener.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockServiceListener.java
@@ -18,6 +18,7 @@ package org.apache.dubbo.config.mock;
 
 import org.apache.dubbo.config.ServiceConfig;
 import org.apache.dubbo.config.ServiceListener;
+import org.apache.dubbo.metadata.MetadataService;
 
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
@@ -28,6 +29,10 @@ public class MockServiceListener implements ServiceListener {
 
     @Override
     public void exported(ServiceConfig sc) {
+        // Ignore MetadataService
+        if (sc.getInterfaceClass() == MetadataService.class) {
+            return;
+        }
         exportedServices.put(sc.getUniqueServiceName(), sc);
     }