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/30 06:29:33 UTC

[dubbo] 01/03: Revert "Resolve recursive creation of Scope Model"

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 <ky...@qq.com>
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