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();
+ }
+
+
}