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
commit 84dd5f24048fb1c756deda99473d6d03740860a2 Author: gongdewei <[email protected]> AuthorDate: Mon Aug 30 12:05:45 2021 +0800 Revert "Resolve recursive creation of Scope Model" This reverts commit 37a99957 --- .../org/apache/dubbo/rpc/model/ApplicationModel.java | 16 +++------------- .../java/org/apache/dubbo/rpc/model/FrameworkModel.java | 15 +++------------ .../java/org/apache/dubbo/rpc/model/ModuleModel.java | 8 +------- .../main/java/org/apache/dubbo/rpc/model/ScopeModel.java | 13 ------------- .../rpc/model/ScopeModelAwareExtensionProcessor.java | 7 +++---- 5 files changed, 10 insertions(+), 49 deletions(-) diff --git a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java index 6ae46a6..8f8c89c 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ApplicationModel.java @@ -62,27 +62,17 @@ public class ApplicationModel extends ScopeModel { private FrameworkModel frameworkModel; public ApplicationModel(FrameworkModel frameworkModel) { - this(frameworkModel, true); - } - - public ApplicationModel(FrameworkModel frameworkModel, boolean shouldInit) { super(frameworkModel, new ExtensionDirector(frameworkModel.getExtensionDirector(), ExtensionScope.APPLICATION)); this.frameworkModel = frameworkModel; frameworkModel.addApplication(this); - - if (shouldInit) { - postConstruct(); - } + postProcessAfterCreated(); } public static ApplicationModel defaultModel() { - if (defaultInstance == null || !defaultInstance.isReady()) { + if (defaultInstance == null) { synchronized (ApplicationModel.class) { if (defaultInstance == null) { - defaultInstance = new ApplicationModel(FrameworkModel.defaultModel(), false); - } - if (!defaultInstance.isReady()) { - defaultInstance.postConstruct(); + defaultInstance = new ApplicationModel(FrameworkModel.defaultModel()); } } } diff --git a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/FrameworkModel.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/FrameworkModel.java index e097605..438c465 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/FrameworkModel.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/FrameworkModel.java @@ -37,24 +37,15 @@ public class FrameworkModel extends ScopeModel { private List<ApplicationModel> applicationModels = Collections.synchronizedList(new ArrayList<>()); public FrameworkModel() { - this(true); - } - - public FrameworkModel(boolean shouldInit) { super(null, new ExtensionDirector(null, ExtensionScope.FRAMEWORK)); - if (shouldInit) { - postConstruct(); - } + postProcessAfterCreated(); } public static FrameworkModel defaultModel() { - if (defaultInstance == null || !defaultInstance.isReady()) { + if (defaultInstance == null) { synchronized (FrameworkModel.class) { if (defaultInstance == null) { - defaultInstance = new FrameworkModel(false); - } - if (!defaultInstance.isReady()) { - defaultInstance.postConstruct(); + defaultInstance = new FrameworkModel(); } } } diff --git a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java index b5141e9..0ddb8b9 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ModuleModel.java @@ -27,16 +27,10 @@ public class ModuleModel extends ScopeModel { private final ApplicationModel applicationModel; public ModuleModel(ApplicationModel applicationModel) { - this(applicationModel, true); - } - - public ModuleModel(ApplicationModel applicationModel, boolean shouldInit) { super(applicationModel, new ExtensionDirector(applicationModel.getExtensionDirector(), ExtensionScope.MODULE)); this.applicationModel = applicationModel; applicationModel.addModule(this); - if(shouldInit) { - postConstruct(); - } + postProcessAfterCreated(); } public ApplicationModel getApplicationModel() { diff --git a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModel.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModel.java index ccd87bf..d774bb3 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModel.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModel.java @@ -20,7 +20,6 @@ import org.apache.dubbo.common.beans.factory.ScopeBeanFactory; import org.apache.dubbo.common.extension.ExtensionAccessor; import org.apache.dubbo.common.extension.ExtensionDirector; -import javax.annotation.PostConstruct; import java.util.Set; public abstract class ScopeModel implements ExtensionAccessor { @@ -31,8 +30,6 @@ public abstract class ScopeModel implements ExtensionAccessor { private final ScopeBeanFactory beanFactory; - private volatile boolean ready = false; - public ScopeModel(ScopeModel parent, ExtensionDirector extensionDirector) { this.parent = parent; this.extensionDirector = extensionDirector; @@ -40,16 +37,6 @@ public abstract class ScopeModel implements ExtensionAccessor { this.beanFactory = new ScopeBeanFactory(parent != null ? parent.getBeanFactory() : null, extensionDirector); } - @PostConstruct - public void postConstruct() { - postProcessAfterCreated(); - ready = true; - } - - public boolean isReady() { - return ready; - } - public ExtensionDirector getExtensionDirector() { return extensionDirector; } diff --git a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelAwareExtensionProcessor.java b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelAwareExtensionProcessor.java index f586037..4c47c22 100644 --- a/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelAwareExtensionProcessor.java +++ b/dubbo-common/src/main/java/org/apache/dubbo/rpc/model/ScopeModelAwareExtensionProcessor.java @@ -18,26 +18,25 @@ package org.apache.dubbo.rpc.model; import org.apache.dubbo.common.extension.ExtensionPostProcessor; -import java.util.concurrent.atomic.AtomicBoolean; - public class ScopeModelAwareExtensionProcessor implements ExtensionPostProcessor { private ScopeModel scopeModel; private FrameworkModel frameworkModel; private ApplicationModel applicationModel; private ModuleModel moduleModel; - private final AtomicBoolean inited = new AtomicBoolean(false); + private volatile boolean inited; public ScopeModelAwareExtensionProcessor(ScopeModel scopeModel) { this.scopeModel = scopeModel; } private void init() { - if (!inited.compareAndSet(false, true)) { + if (inited) { return; } frameworkModel = ScopeModelUtil.getFrameworkModel(scopeModel); applicationModel = ScopeModelUtil.getApplicationModel(scopeModel); moduleModel = ScopeModelUtil.getModuleModel(scopeModel); + inited = true; } @Override
