You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by li...@apache.org on 2019/11/08 10:15:06 UTC

[dubbo] 03/03: make bootstrap works in both API and Spring mode, also compatible when using RC and SC directly

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

liujun pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo.git

commit c75db7dd8bcfbb48ed7f6fbaa39f2b1479629e55
Author: ken.lj <ke...@gmail.com>
AuthorDate: Fri Nov 8 18:14:31 2019 +0800

    make bootstrap works in both API and Spring mode, also compatible when using RC and SC directly
---
 .../java/org/apache/dubbo/config/AbstractConfig.java  |  2 +-
 .../java/org/apache/dubbo/config/ReferenceConfig.java | 10 +++++-----
 .../java/org/apache/dubbo/config/ServiceConfig.java   |  2 +-
 .../apache/dubbo/config/bootstrap/DubboBootstrap.java |  9 +++++++++
 .../dubbo/config/utils/ReferenceConfigCache.java      |  5 -----
 .../{ => bootstrap}/builders/AbstractBuilderTest.java |  2 +-
 .../builders/AbstractInterfaceBuilderTest.java        |  2 +-
 .../builders/AbstractMethodBuilderTest.java           |  2 +-
 .../builders/AbstractReferenceBuilderTest.java        |  4 ++--
 .../builders/AbstractServiceBuilderTest.java          |  2 +-
 .../builders/ApplicationBuilderTest.java              |  2 +-
 .../{ => bootstrap}/builders/ArgumentBuilderTest.java |  2 +-
 .../builders/ConfigCenterBuilderTest.java             |  2 +-
 .../{ => bootstrap}/builders/ConsumerBuilderTest.java |  2 +-
 .../builders/MetadataReportBuilderTest.java           |  2 +-
 .../{ => bootstrap}/builders/MethodBuilderTest.java   |  2 +-
 .../{ => bootstrap}/builders/ModuleBuilderTest.java   |  2 +-
 .../{ => bootstrap}/builders/MonitorBuilderTest.java  |  2 +-
 .../{ => bootstrap}/builders/ProtocolBuilderTest.java |  2 +-
 .../{ => bootstrap}/builders/ProviderBuilderTest.java |  2 +-
 .../builders/ReferenceBuilderTest.java                |  2 +-
 .../{ => bootstrap}/builders/RegistryBuilderTest.java |  2 +-
 .../{ => bootstrap}/builders/ServiceBuilderTest.java  |  8 ++++----
 .../org/apache/dubbo/config/mock/MockTransporter.java |  6 +++---
 dubbo-config/dubbo-config-spring/pom.xml              | 19 +++++++++++++++++++
 .../registry/nacos/nacos/NacosServiceNameTest.java    |  1 +
 .../src/main/java/org/apache/dubbo/rpc/Protocol.java  |  5 ++++-
 dubbo-rpc/dubbo-rpc-dubbo/pom.xml                     | 15 ---------------
 28 files changed, 65 insertions(+), 53 deletions(-)

diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
index 85cb8bd..f18042c 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
@@ -66,7 +66,7 @@ public abstract class AbstractConfig implements Serializable {
     /**
      * The suffix container
      */
-    private static final String[] SUFFIXES = new String[]{"Config", "Bean"};
+    private static final String[] SUFFIXES = new String[]{"Config", "Bean", "ConfigBase"};
 
     static {
         LEGACY_PROPERTIES.put("dubbo.protocol.name", "dubbo.service.protocol");
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
index d7422df..b3588f2 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/ReferenceConfig.java
@@ -189,7 +189,7 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
 
         if (bootstrap == null) {
             bootstrap = DubboBootstrap.getInstance();
-            bootstrap.start();
+            bootstrap.init();
         }
 
         checkAndUpdateSubConfigs();
@@ -272,11 +272,11 @@ public class ReferenceConfig<T> extends ReferenceConfigBase<T> {
                 null,
                 serviceMetadata);
 
-        T proxy = createProxy(map);
+        ref = createProxy(map);
 
-        serviceMetadata.setTarget(proxy);
-        serviceMetadata.addAttribute(PROXY_CLASS_REF, proxy);
-        repository.lookupReferredService(serviceMetadata.getServiceKey()).setProxyObject(proxy);
+        serviceMetadata.setTarget(ref);
+        serviceMetadata.addAttribute(PROXY_CLASS_REF, ref);
+        repository.lookupReferredService(serviceMetadata.getServiceKey()).setProxyObject(ref);
 
         initialized = true;
         // dispatch a ReferenceConfigDestroyedEvent since 2.7.4
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 47139d1..d109be1 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
@@ -195,7 +195,7 @@ public class ServiceConfig<T> extends ServiceConfigBase<T> {
 
         if (bootstrap == null) {
             bootstrap = DubboBootstrap.getInstance();
-            bootstrap.start();
+            bootstrap.init();
         }
 
         checkAndUpdateSubConfigs();
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 0a84adc..8c3a9d6 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
@@ -478,10 +478,19 @@ public class DubboBootstrap extends GenericEventListener {
         return this;
     }
 
+    @Deprecated
+    public void init() {
+        initialize();
+    }
+
     /**
      * Initialize
      */
     private void initialize() {
+        if (!initialized.compareAndSet(false, true)) {
+            return;
+        }
+
         ApplicationModel.initApplication();
 
         startConfigCenter();
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ReferenceConfigCache.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ReferenceConfigCache.java
index aa7b244..b2a8fda 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ReferenceConfigCache.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ReferenceConfigCache.java
@@ -112,11 +112,6 @@ public class ReferenceConfigCache {
         String key = generator.generateKey(referenceConfig);
         Class<?> type = referenceConfig.getInterfaceClass();
 
-        if (referredReferences.get(key) != null) {
-            throw new IllegalStateException("Service " + key + "has been referred, it's not allowed to refer " +
-                    "one service with the same group/interface:version more than once.");
-        }
-
         proxies.computeIfAbsent(type, _t -> new ConcurrentHashMap());
 
         ConcurrentMap<String, Object> proxiesOfType = proxies.get(type);
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractBuilderTest.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractBuilderTest.java
index bd6d3fa..d32b5cd 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.AbstractConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractInterfaceBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractInterfaceBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilderTest.java
index 5fc99a4..c3bb9cf 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractInterfaceBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.AbstractInterfaceConfig;
 import org.apache.dubbo.config.ApplicationConfig;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractMethodBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractMethodBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilderTest.java
index 64d467e..13a179f 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractMethodBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.AbstractMethodConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractReferenceBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilderTest.java
similarity index 97%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractReferenceBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilderTest.java
index a7a4030..c505ca9 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractReferenceBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilderTest.java
@@ -14,14 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.AbstractReferenceConfig;
 
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
-import static org.apache.dubbo.rpc.Constants.GENERIC_SERIALIZATION_BEAN;
+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_BEAN;
 
 class AbstractReferenceBuilderTest {
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractServiceBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractServiceBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilderTest.java
index b24cb6e..d030160 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/AbstractServiceBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.AbstractServiceConfig;
 import org.apache.dubbo.config.ProtocolConfig;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ApplicationBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ApplicationBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ApplicationBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ApplicationBuilderTest.java
index 87d5693..6c37eae 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ApplicationBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ApplicationBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.ApplicationConfig;
 import org.apache.dubbo.config.MonitorConfig;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ArgumentBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ArgumentBuilderTest.java
similarity index 97%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ArgumentBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ArgumentBuilderTest.java
index bfaff92..1b6638d 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ArgumentBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ArgumentBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.ArgumentConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ConfigCenterBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ConfigCenterBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilderTest.java
index 1ab5acc..b9f321b 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ConfigCenterBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.ConfigCenterConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ConsumerBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConsumerBuilderTest.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ConsumerBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConsumerBuilderTest.java
index e054bed..bb7e131 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ConsumerBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ConsumerBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.ConsumerConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/MetadataReportBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/MetadataReportBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilderTest.java
index 2e9ee78..5d60dd8 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/MetadataReportBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.MetadataReportConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/MethodBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MethodBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/MethodBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MethodBuilderTest.java
index 5bf0bee..9196c48 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/MethodBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MethodBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.ArgumentConfig;
 import org.apache.dubbo.config.MethodConfig;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ModuleBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ModuleBuilderTest.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ModuleBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ModuleBuilderTest.java
index 8bad86a..bbf7d2e 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ModuleBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ModuleBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.ModuleConfig;
 import org.apache.dubbo.config.MonitorConfig;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/MonitorBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MonitorBuilderTest.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/MonitorBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MonitorBuilderTest.java
index 71fc43e..ca4005f 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/MonitorBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/MonitorBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.MonitorConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ProtocolBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProtocolBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ProtocolBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProtocolBuilderTest.java
index df3c8c7..8a0711e 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ProtocolBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProtocolBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.ProtocolConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ProviderBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProviderBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ProviderBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProviderBuilderTest.java
index 9d3dfb1..5f10b6c 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ProviderBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ProviderBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.ProviderConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ReferenceBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ReferenceBuilderTest.java
similarity index 98%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ReferenceBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ReferenceBuilderTest.java
index 0a8ec03..210d92e 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ReferenceBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ReferenceBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.ConsumerConfig;
 import org.apache.dubbo.config.MethodConfig;
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/RegistryBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/RegistryBuilderTest.java
similarity index 99%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/RegistryBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/RegistryBuilderTest.java
index c676b1d..24c4a4d 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/RegistryBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/RegistryBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.RegistryConfig;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ServiceBuilderTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java
similarity index 93%
rename from dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ServiceBuilderTest.java
rename to dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java
index 46d1e1f..5b07c29 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/builders/ServiceBuilderTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/bootstrap/builders/ServiceBuilderTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.config.builders;
+package org.apache.dubbo.config.bootstrap.builders;
 
 import org.apache.dubbo.config.MethodConfig;
 import org.apache.dubbo.config.ProviderConfig;
@@ -25,9 +25,9 @@ import org.junit.jupiter.api.Test;
 
 import java.util.Collections;
 
-import static org.apache.dubbo.rpc.Constants.GENERIC_SERIALIZATION_BEAN;
-import static org.apache.dubbo.rpc.Constants.GENERIC_SERIALIZATION_DEFAULT;
-import static org.apache.dubbo.rpc.Constants.GENERIC_SERIALIZATION_NATIVE_JAVA;
+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_BEAN;
+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_DEFAULT;
+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_NATIVE_JAVA;
 import static org.hamcrest.CoreMatchers.equalTo;
 import static org.hamcrest.MatcherAssert.assertThat;
 
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockTransporter.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockTransporter.java
index 8abfe19..28bce33 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockTransporter.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/mock/MockTransporter.java
@@ -21,17 +21,17 @@ import org.apache.dubbo.common.URL;
 import org.apache.dubbo.remoting.ChannelHandler;
 import org.apache.dubbo.remoting.Client;
 import org.apache.dubbo.remoting.RemotingException;
-import org.apache.dubbo.remoting.Server;
+import org.apache.dubbo.remoting.RemotingServer;
 import org.apache.dubbo.remoting.Transporter;
 
 import org.mockito.Mockito;
 
 public class MockTransporter implements Transporter {
-    private Server server = Mockito.mock(Server.class);
+    private RemotingServer server = Mockito.mock(RemotingServer.class);
     private Client client = Mockito.mock(Client.class);
 
     @Override
-    public Server bind(URL url, ChannelHandler handler) throws RemotingException {
+    public RemotingServer bind(URL url, ChannelHandler handler) throws RemotingException {
         return server;
     }
 
diff --git a/dubbo-config/dubbo-config-spring/pom.xml b/dubbo-config/dubbo-config-spring/pom.xml
index 2b07f7c..aa4b0b2 100644
--- a/dubbo-config/dubbo-config-spring/pom.xml
+++ b/dubbo-config/dubbo-config-spring/pom.xml
@@ -134,5 +134,24 @@
             <scope>test</scope>
         </dependency>
 
+        <!-- Nacos dependencies for testing -->
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-registry-nacos</artifactId>
+            <version>${project.parent.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.dubbo</groupId>
+            <artifactId>dubbo-configcenter-nacos</artifactId>
+            <version>${project.parent.version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba.nacos</groupId>
+            <artifactId>nacos-client</artifactId>
+            <scope>test</scope>
+        </dependency>
+
     </dependencies>
 </project>
diff --git a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/registry/nacos/nacos/NacosServiceNameTest.java b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/registry/nacos/nacos/NacosServiceNameTest.java
index a53d3e8..f3a7380 100644
--- a/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/registry/nacos/nacos/NacosServiceNameTest.java
+++ b/dubbo-config/dubbo-config-spring/src/test/java/org/apache/dubbo/config/spring/registry/nacos/nacos/NacosServiceNameTest.java
@@ -25,6 +25,7 @@ import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGO
 import static org.apache.dubbo.registry.nacos.NacosServiceName.WILDCARD;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  * {@link NacosServiceName} Test
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Protocol.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Protocol.java
index 8d8d4b9..9572cb1 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Protocol.java
+++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/Protocol.java
@@ -20,6 +20,7 @@ import org.apache.dubbo.common.URL;
 import org.apache.dubbo.common.extension.Adaptive;
 import org.apache.dubbo.common.extension.SPI;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -82,6 +83,8 @@ public interface Protocol {
      *
      * @return
      */
-    List<ProtocolServer> getServers();
+    default List<ProtocolServer> getServers() {
+        return Collections.emptyList();
+    }
 
 }
\ No newline at end of file
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/pom.xml b/dubbo-rpc/dubbo-rpc-dubbo/pom.xml
index 858b710..0850bb4 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/pom.xml
+++ b/dubbo-rpc/dubbo-rpc-dubbo/pom.xml
@@ -47,21 +47,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-container-api</artifactId>
-            <version>${project.parent.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.eclipse.jetty</groupId>
-                    <artifactId>jetty-server</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>org.eclipse.jetty</groupId>
-                    <artifactId>jetty-servlet</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-remoting-netty4</artifactId>
             <version>${project.parent.version}</version>
             <scope>test</scope>