You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by ky...@apache.org on 2021/08/27 05:08:51 UTC

[dubbo] branch 3.0-multi-instances updated: Fix application model of default bootstrap instance

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

kylixs pushed a commit to branch 3.0-multi-instances
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0-multi-instances by this push:
     new 06481ed  Fix application model of default bootstrap instance
06481ed is described below

commit 06481ed54c1341c598c64163144edfd5d1aaa4c7
Author: gongdewei <ky...@qq.com>
AuthorDate: Fri Aug 27 13:08:30 2021 +0800

    Fix application model of default bootstrap instance
---
 .../dubbo/config/bootstrap/DubboBootstrap.java     |  8 ++-
 .../bootstrap/DubboBootstrapMultiInstanceTest.java | 64 ++++++++++++++--------
 2 files changed, 46 insertions(+), 26 deletions(-)

diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
index 5217dcc..8921dda 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/bootstrap/DubboBootstrap.java
@@ -210,7 +210,7 @@ public class DubboBootstrap {
         if (instance == null) {
             synchronized (DubboBootstrap.class) {
                 if (instance == null) {
-                    instance = new DubboBootstrap(FrameworkModel.defaultModel());
+                    instance = new DubboBootstrap(ApplicationModel.defaultModel());
                 }
             }
         }
@@ -260,7 +260,11 @@ public class DubboBootstrap {
     }
 
     private DubboBootstrap(FrameworkModel frameworkModel) {
-        applicationModel = new ApplicationModel(frameworkModel);
+        this(new ApplicationModel(frameworkModel));
+    }
+
+    private DubboBootstrap(ApplicationModel applicationModel) {
+        this.applicationModel = applicationModel;
         configManager = applicationModel.getConfigManager();
         environment = applicationModel.getEnvironment();
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapMultiInstanceTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapMultiInstanceTest.java
index 711aa01..9485505 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapMultiInstanceTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/DubboBootstrapMultiInstanceTest.java
@@ -41,32 +41,10 @@ public class DubboBootstrapMultiInstanceTest {
         Assertions.assertNotSame(dubboBootstrap1.getConfigManager(), dubboBootstrap2.getConfigManager());
 
         // bootstrap1: provider app
-        RegistryConfig registry1 = new RegistryConfig();
-        registry1.setAddress("zookeeper://localhost:2181");
-
-        ProtocolConfig protocol1 = new ProtocolConfig();
-        protocol1.setName("dubbo");
-        protocol1.setPort(2001);
-
-        ServiceConfig<DemoService> serviceConfig = new ServiceConfig<>();
-        serviceConfig.setInterface(DemoService.class);
-        serviceConfig.setRef(new DemoServiceImpl());
-
-        dubboBootstrap1.application("provider-app")
-            .registry(registry1)
-            .protocol(protocol1)
-            .service(serviceConfig)
-            .start();
-
+        testProviderApp(dubboBootstrap1);
 
         // bootstrap2: consumer app
-        ReferenceConfig<DemoService> referenceConfig = new ReferenceConfig<>();
-        referenceConfig.setInterface(DemoService.class);
-
-        dubboBootstrap2.application("consumer-app")
-            .registry(new RegistryConfig("zookeeper://localhost:2181"))
-            .reference(referenceConfig)
-            .start();
+        testConsumerApp(dubboBootstrap2);
 
         DemoService demoServiceRefer = dubboBootstrap2.getCache().get(DemoService.class);
         String result = demoServiceRefer.sayName("dubbo");
@@ -74,6 +52,13 @@ public class DubboBootstrapMultiInstanceTest {
     }
 
     @Test
+    public void testDefaultApplication() {
+
+        testProviderApp(DubboBootstrap.getInstance());
+
+    }
+
+    @Test
     public void testSharedApplications() {
 
         FrameworkModel frameworkModel = new FrameworkModel();
@@ -86,4 +71,35 @@ public class DubboBootstrapMultiInstanceTest {
         Assertions.assertNotSame(dubboBootstrap1.getConfigManager(), dubboBootstrap2.getConfigManager());
 
     }
+
+    private void testConsumerApp(DubboBootstrap dubboBootstrap2) {
+        ReferenceConfig<DemoService> referenceConfig = new ReferenceConfig<>();
+        referenceConfig.setInterface(DemoService.class);
+
+        dubboBootstrap2.application("consumer-app")
+            .registry(new RegistryConfig("zookeeper://localhost:2181"))
+            .reference(referenceConfig)
+            .start();
+    }
+
+    private void testProviderApp(DubboBootstrap dubboBootstrap1) {
+        RegistryConfig registry1 = new RegistryConfig();
+        registry1.setAddress("zookeeper://localhost:2181");
+
+        ProtocolConfig protocol1 = new ProtocolConfig();
+        protocol1.setName("dubbo");
+        protocol1.setPort(2001);
+
+        ServiceConfig<DemoService> serviceConfig = new ServiceConfig<>();
+        serviceConfig.setInterface(DemoService.class);
+        serviceConfig.setRef(new DemoServiceImpl());
+
+        dubboBootstrap1.application("provider-app")
+            .registry(registry1)
+            .protocol(protocol1)
+            .service(serviceConfig)
+            .start();
+    }
+
+
 }