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 2018/11/15 07:16:41 UTC

[incubator-dubbo] 02/04: solve dubbo-bootstrap conficts after merged master

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

liujun pushed a commit to branch dev-metadata
in repository https://gitbox.apache.org/repos/asf/incubator-dubbo.git

commit 0d0c955eee40528fd87d856c402724c103835607
Author: ken.lj <ke...@gmail.com>
AuthorDate: Thu Nov 15 14:52:50 2018 +0800

    solve dubbo-bootstrap conficts after merged master
---
 dubbo-all/pom.xml                                  |  14 ---
 dubbo-bootstrap/pom.xml                            | 111 ---------------------
 .../org/apache/dubbo/bootstrap/DubboBootstrap.java | 110 --------------------
 .../org/apache/dubbo/config/AbstractConfig.java    |   3 +
 .../apache/dubbo/config}/DubboShutdownHook.java    |   2 +-
 .../apache/dubbo/config/AbstractConfigTest.java    |   0
 .../dubbo/config/AbstractInterfaceConfigTest.java  |   0
 .../dubbo/config/AbstractMethodConfigTest.java     |   0
 .../dubbo/config/AbstractReferenceConfigTest.java  |   0
 .../dubbo/config/AbstractServiceConfigTest.java    |   0
 .../apache/dubbo/config/ApplicationConfigTest.java |   0
 .../apache/dubbo/config/ArgumentConfigTest.java    |   0
 .../apache/dubbo/config/ConsumerConfigTest.java    |   0
 .../apache/dubbo/config/GenericServiceTest.java    |   0
 .../org/apache/dubbo/config/MethodConfigTest.java  |   0
 .../org/apache/dubbo/config/ModuleConfigTest.java  |   0
 .../org/apache/dubbo/config/MonitorConfigTest.java |   0
 .../apache/dubbo/config/ProtocolConfigTest.java    |   0
 .../apache/dubbo/config/ProviderConfigTest.java    |   0
 .../apache/dubbo/config/ReferenceConfigTest.java   |   0
 .../apache/dubbo/config/RegistryConfigTest.java    |   0
 .../org/apache/dubbo/config/ServiceConfigTest.java |   0
 .../test/java/org/apache/dubbo/config/api/Box.java |   0
 .../org/apache/dubbo/config/api/DemoException.java |   0
 .../org/apache/dubbo/config/api/DemoService.java   |   0
 .../java/org/apache/dubbo/config/api/Greeting.java |   0
 .../java/org/apache/dubbo/config/api/User.java     |   0
 .../apache/dubbo/config/cache/CacheService.java    |   0
 .../dubbo/config/cache/CacheServiceImpl.java       |   0
 .../org/apache/dubbo/config/cache/CacheTest.java   |   0
 .../config/consumer/DemoActionByAnnotation.java    |   0
 .../dubbo/config/consumer/DemoActionBySetter.java  |   0
 .../dubbo/config/consumer/DemoInterceptor.java     |   0
 .../DelegateProviderMetaDataInvokerTest.java       |   0
 .../apache/dubbo/config/mock/GreetingLocal1.java   |   0
 .../apache/dubbo/config/mock/GreetingLocal2.java   |   0
 .../apache/dubbo/config/mock/GreetingLocal3.java   |   0
 .../apache/dubbo/config/mock/GreetingMock1.java    |   0
 .../apache/dubbo/config/mock/GreetingMock2.java    |   0
 .../org/apache/dubbo/config/mock/MockCluster.java  |   0
 .../org/apache/dubbo/config/mock/MockCodec.java    |   0
 .../apache/dubbo/config/mock/MockDispatcher.java   |   0
 .../apache/dubbo/config/mock/MockExchanger.java    |   0
 .../dubbo/config/mock/MockExporterListener.java    |   0
 .../org/apache/dubbo/config/mock/MockFilter.java   |   0
 .../dubbo/config/mock/MockInvokerListener.java     |   0
 .../apache/dubbo/config/mock/MockLoadBalance.java  |   0
 .../org/apache/dubbo/config/mock/MockProtocol.java |   0
 .../apache/dubbo/config/mock/MockProtocol2.java    |   0
 .../apache/dubbo/config/mock/MockProxyFactory.java |   0
 .../org/apache/dubbo/config/mock/MockRegistry.java |   0
 .../dubbo/config/mock/MockRegistryFactory.java     |   0
 .../dubbo/config/mock/MockRegistryFactory2.java    |   0
 .../dubbo/config/mock/MockStatusChecker.java       |   0
 .../dubbo/config/mock/MockTelnetHandler.java       |   0
 .../apache/dubbo/config/mock/MockThreadPool.java   |   0
 .../apache/dubbo/config/mock/MockTransporter.java  |   0
 .../apache/dubbo/config/mock/TestProxyFactory.java |   0
 .../config/provider/impl/DemoServiceImpl.java      |   0
 .../config/url/ExporterSideConfigUrlTest.java      |   0
 .../dubbo/config/url/InvokerSideConfigUrlTest.java |   0
 .../dubbo/config/url/RpcConfigGetSetProxy.java     |   0
 .../org/apache/dubbo/config/url/UrlTestBase.java   |   0
 .../dubbo/config/utils/MockReferenceConfig.java    |   0
 .../config/utils/ReferenceConfigCacheTest.java     |   0
 .../config/validation/ValidationParameter.java     |   0
 .../dubbo/config/validation/ValidationService.java |   0
 .../config/validation/ValidationServiceImpl.java   |   0
 .../dubbo/config/validation/ValidationTest.java    |   0
 .../org.apache.dubbo.common.status.StatusChecker   |   0
 .../org.apache.dubbo.common.threadpool.ThreadPool  |   0
 .../org.apache.dubbo.registry.RegistryFactory      |   0
 .../services/org.apache.dubbo.remoting.Codec       |   0
 .../services/org.apache.dubbo.remoting.Dispatcher  |   0
 .../services/org.apache.dubbo.remoting.Transporter |   0
 .../org.apache.dubbo.remoting.exchange.Exchanger   |   0
 .../org.apache.dubbo.remoting.telnet.TelnetHandler |   0
 .../services/org.apache.dubbo.rpc.ExporterListener |   0
 .../META-INF/services/org.apache.dubbo.rpc.Filter  |   0
 .../services/org.apache.dubbo.rpc.InvokerListener  |   0
 .../services/org.apache.dubbo.rpc.Protocol         |   0
 .../services/org.apache.dubbo.rpc.ProxyFactory     |   0
 .../services/org.apache.dubbo.rpc.cluster.Cluster  |   0
 .../org.apache.dubbo.rpc.cluster.LoadBalance       |   0
 .../src/main/test/resources/log4j.xml              |   0
 .../governance/DynamicConfigurationFactory.java    |  35 -------
 .../nop/NopDynamicConfigurationFactory.java        |  42 --------
 .../apollo/ApolloDynamicConfigurationFactory.java  |  46 ---------
 .../ArchaiusDynamicConfigurationFactory.java       |  44 --------
 dubbo-registry/dubbo-registry-api/pom.xml          |   5 -
 90 files changed, 4 insertions(+), 408 deletions(-)

diff --git a/dubbo-all/pom.xml b/dubbo-all/pom.xml
index e7ac32e..620348d 100644
--- a/dubbo-all/pom.xml
+++ b/dubbo-all/pom.xml
@@ -327,13 +327,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-bootstrap</artifactId>
-            <version>${project.version}</version>
-            <scope>compile</scope>
-            <optional>true</optional>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-governance-api</artifactId>
             <version>${project.version}</version>
             <scope>compile</scope>
@@ -460,7 +453,6 @@
                                     <include>org.apache.dubbo:dubbo-serialization-kryo</include>
                                     <include>org.apache.dubbo:dubbo-serialization-jdk</include>
                                     <include>org.apache.dubbo:dubbo-serialization-protostuff</include>
-                                    <include>org.apache.dubbo:dubbo-bootstrap</include>
                                     <include>org.apache.dubbo:dubbo-governance-api</include>
                                     <include>org.apache.dubbo:dubbo-governance-apollo</include>
                                     <include>org.apache.dubbo:dubbo-governance-zookeeper</include>
@@ -586,12 +578,6 @@
                                     <resource>META-INF/dubbo/internal/org.apache.dubbo.governance.DynamicConfiguration
                                     </resource>
                                 </transformer>
-                                <transformer
-                                        implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
-                                    <resource>
-                                        META-INF/dubbo/internal/org.apache.dubbo.governance.DynamicConfigurationFactory
-                                    </resource>
-                                </transformer>
                             </transformers>
                         </configuration>
                     </execution>
diff --git a/dubbo-bootstrap/pom.xml b/dubbo-bootstrap/pom.xml
deleted file mode 100644
index c01861b..0000000
--- a/dubbo-bootstrap/pom.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<!--
-  Licensed to the Apache Software Foundation (ASF) under one or more
-  contributor license agreements.  See the NOTICE file distributed with
-  this work for additional information regarding copyright ownership.
-  The ASF licenses this file to You under the Apache License, Version 2.0
-  (the "License"); you may not use this file except in compliance with
-  the License.  You may obtain a copy of the License at
-
-      http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>dubbo-parent</artifactId>
-        <groupId>org.apache.dubbo</groupId>
-        <version>2.7.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>dubbo-bootstrap</artifactId>
-
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-config-api</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-common</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-api</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-monitor-default</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-dubbo</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-rpc-rmi</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-remoting-netty4</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>javax.validation</groupId>
-            <artifactId>validation-api</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.hibernate</groupId>
-            <artifactId>hibernate-validator</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.glassfish</groupId>
-            <artifactId>javax.el</artifactId>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-default</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-registry-multicast</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-serialization-hessian2</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-serialization-jdk</artifactId>
-            <version>${project.parent.version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-</project>
\ No newline at end of file
diff --git a/dubbo-bootstrap/src/main/java/org/apache/dubbo/bootstrap/DubboBootstrap.java b/dubbo-bootstrap/src/main/java/org/apache/dubbo/bootstrap/DubboBootstrap.java
deleted file mode 100644
index 8334c21..0000000
--- a/dubbo-bootstrap/src/main/java/org/apache/dubbo/bootstrap/DubboBootstrap.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.dubbo.bootstrap;
-
-import org.apache.dubbo.config.ServiceConfig;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A bootstrap class to easily start and stop Dubbo via programmatic API.
- * The bootstrap class will be responsible to cleanup the resources during stop.
- */
-public class DubboBootstrap {
-
-    /**
-     * The list of ServiceConfig
-     */
-    private List<ServiceConfig> serviceConfigList;
-
-    /**
-     * Whether register the shutdown hook during start?
-     */
-    private final boolean registerShutdownHookOnStart;
-
-    /**
-     * The shutdown hook used when Dubbo is running under embedded environment
-     */
-    private DubboShutdownHook shutdownHook;
-
-    public DubboBootstrap() {
-        this(true, DubboShutdownHook.getDubboShutdownHook());
-    }
-
-    public DubboBootstrap(boolean registerShutdownHookOnStart) {
-        this(registerShutdownHookOnStart, DubboShutdownHook.getDubboShutdownHook());
-    }
-
-    public DubboBootstrap(boolean registerShutdownHookOnStart, DubboShutdownHook shutdownHook) {
-        this.serviceConfigList = new ArrayList<ServiceConfig>();
-        this.shutdownHook = shutdownHook;
-        this.registerShutdownHookOnStart = registerShutdownHookOnStart;
-    }
-
-    /**
-     * Register service config to bootstrap, which will be called during {@link DubboBootstrap#stop()}
-     * @param serviceConfig the service
-     * @return the bootstrap instance
-     */
-    public DubboBootstrap registerServiceConfig(ServiceConfig serviceConfig) {
-        serviceConfigList.add(serviceConfig);
-        return this;
-    }
-
-    public void start() {
-        if (registerShutdownHookOnStart) {
-            registerShutdownHook();
-        } else {
-            // DubboShutdown hook has been registered in AbstractConfig,
-            // we need to remove it explicitly
-            removeShutdownHook();
-        }
-        for (ServiceConfig serviceConfig: serviceConfigList) {
-            serviceConfig.export();
-        }
-    }
-
-    public void stop() {
-        for (ServiceConfig serviceConfig: serviceConfigList) {
-            serviceConfig.unexport();
-        }
-        shutdownHook.destroyAll();
-        if (registerShutdownHookOnStart) {
-            removeShutdownHook();
-        }
-    }
-
-    /**
-     * Register the shutdown hook
-     */
-    public void registerShutdownHook() {
-        Runtime.getRuntime().addShutdownHook(shutdownHook);
-    }
-
-    /**
-     * Remove this shutdown hook
-     */
-    public void removeShutdownHook() {
-        try {
-            Runtime.getRuntime().removeShutdownHook(shutdownHook);
-        }
-        catch (IllegalStateException ex) {
-            // ignore - VM is already shutting down
-        }
-    }
-}
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
index 5af184d..a883973 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/AbstractConfig.java
@@ -78,6 +78,9 @@ public abstract class AbstractConfig implements Serializable {
         legacyProperties.put("dubbo.consumer.retries", "dubbo.service.max.retry.providers");
         legacyProperties.put("dubbo.consumer.check", "dubbo.service.allow.no.provider");
         legacyProperties.put("dubbo.service.url", "dubbo.service.address");
+
+        // this is only for compatibility
+        Runtime.getRuntime().addShutdownHook(DubboShutdownHook.getDubboShutdownHook());
     }
 
     protected String id;
diff --git a/dubbo-bootstrap/src/main/java/org/apache/dubbo/bootstrap/DubboShutdownHook.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/DubboShutdownHook.java
similarity index 98%
rename from dubbo-bootstrap/src/main/java/org/apache/dubbo/bootstrap/DubboShutdownHook.java
rename to dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/DubboShutdownHook.java
index 11a846b..90ed237 100644
--- a/dubbo-bootstrap/src/main/java/org/apache/dubbo/bootstrap/DubboShutdownHook.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/DubboShutdownHook.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.dubbo.bootstrap;
+package org.apache.dubbo.config;
 
 import org.apache.dubbo.common.extension.ExtensionLoader;
 import org.apache.dubbo.common.logger.Logger;
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractInterfaceConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractMethodConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractMethodConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractMethodConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractMethodConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractReferenceConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractReferenceConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractReferenceConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractReferenceConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractServiceConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractServiceConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/AbstractServiceConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/AbstractServiceConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ApplicationConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ApplicationConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ApplicationConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ApplicationConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ArgumentConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ArgumentConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ArgumentConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ArgumentConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ConsumerConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ConsumerConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ConsumerConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ConsumerConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/GenericServiceTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/GenericServiceTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/GenericServiceTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/GenericServiceTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/MethodConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/MethodConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/MethodConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/MethodConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ModuleConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ModuleConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ModuleConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ModuleConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/MonitorConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/MonitorConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/MonitorConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/MonitorConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ProtocolConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ProtocolConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ProtocolConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ProtocolConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ProviderConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ProviderConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ProviderConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ProviderConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ReferenceConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ReferenceConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/RegistryConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/RegistryConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/RegistryConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/RegistryConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ServiceConfigTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ServiceConfigTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/ServiceConfigTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/ServiceConfigTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/Box.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/Box.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/Box.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/Box.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/DemoException.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/DemoException.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/DemoException.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/DemoException.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/DemoService.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/DemoService.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/DemoService.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/DemoService.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/Greeting.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/Greeting.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/Greeting.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/Greeting.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/User.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/User.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/api/User.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/api/User.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/cache/CacheService.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/cache/CacheService.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/cache/CacheService.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/cache/CacheService.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/cache/CacheServiceImpl.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/cache/CacheServiceImpl.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/cache/CacheServiceImpl.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/cache/CacheServiceImpl.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/cache/CacheTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/cache/CacheTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/cache/CacheTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/cache/CacheTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/consumer/DemoActionByAnnotation.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/consumer/DemoActionByAnnotation.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/consumer/DemoActionByAnnotation.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/consumer/DemoActionByAnnotation.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/consumer/DemoActionBySetter.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/consumer/DemoActionBySetter.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/consumer/DemoActionBySetter.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/consumer/DemoActionBySetter.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/consumer/DemoInterceptor.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/consumer/DemoInterceptor.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/consumer/DemoInterceptor.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/consumer/DemoInterceptor.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvokerTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvokerTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvokerTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvokerTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal1.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal1.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal1.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal1.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal2.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal2.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal2.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal2.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal3.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal3.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal3.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingLocal3.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingMock1.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingMock1.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingMock1.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingMock1.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingMock2.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingMock2.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/GreetingMock2.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/GreetingMock2.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockCluster.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockCluster.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockCluster.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockCluster.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockCodec.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockCodec.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockCodec.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockCodec.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockDispatcher.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockDispatcher.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockDispatcher.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockDispatcher.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockExchanger.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockExchanger.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockExchanger.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockExchanger.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockExporterListener.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockExporterListener.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockExporterListener.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockExporterListener.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockFilter.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockFilter.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockFilter.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockFilter.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockInvokerListener.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockInvokerListener.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockInvokerListener.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockInvokerListener.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockLoadBalance.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockLoadBalance.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockLoadBalance.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockLoadBalance.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockProtocol.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockProtocol.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockProtocol.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockProtocol.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockProtocol2.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockProtocol2.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockProtocol2.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockProtocol2.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockProxyFactory.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockProxyFactory.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockProxyFactory.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockProxyFactory.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockRegistry.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockRegistry.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockRegistry.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockRegistry.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockRegistryFactory.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockRegistryFactory.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockRegistryFactory.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockRegistryFactory.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockRegistryFactory2.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockRegistryFactory2.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockRegistryFactory2.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockRegistryFactory2.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockStatusChecker.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockStatusChecker.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockStatusChecker.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockStatusChecker.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockTelnetHandler.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockTelnetHandler.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockTelnetHandler.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockTelnetHandler.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockThreadPool.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockThreadPool.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockThreadPool.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockThreadPool.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockTransporter.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockTransporter.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/MockTransporter.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/MockTransporter.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/TestProxyFactory.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/TestProxyFactory.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/mock/TestProxyFactory.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/mock/TestProxyFactory.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/provider/impl/DemoServiceImpl.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/provider/impl/DemoServiceImpl.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/provider/impl/DemoServiceImpl.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/provider/impl/DemoServiceImpl.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/url/ExporterSideConfigUrlTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/url/InvokerSideConfigUrlTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/url/InvokerSideConfigUrlTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/url/InvokerSideConfigUrlTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/url/InvokerSideConfigUrlTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/url/RpcConfigGetSetProxy.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/url/RpcConfigGetSetProxy.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/url/RpcConfigGetSetProxy.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/url/RpcConfigGetSetProxy.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/url/UrlTestBase.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/url/UrlTestBase.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/url/UrlTestBase.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/url/UrlTestBase.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/utils/MockReferenceConfig.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/utils/MockReferenceConfig.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/utils/MockReferenceConfig.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/utils/MockReferenceConfig.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/utils/ReferenceConfigCacheTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/utils/ReferenceConfigCacheTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/utils/ReferenceConfigCacheTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/utils/ReferenceConfigCacheTest.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/validation/ValidationParameter.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/validation/ValidationParameter.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/validation/ValidationParameter.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/validation/ValidationParameter.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/validation/ValidationService.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/validation/ValidationService.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/validation/ValidationService.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/validation/ValidationService.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/validation/ValidationServiceImpl.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/validation/ValidationServiceImpl.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/validation/ValidationServiceImpl.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/validation/ValidationServiceImpl.java
diff --git a/dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/validation/ValidationTest.java b/dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/validation/ValidationTest.java
similarity index 100%
rename from dubbo-bootstrap/src/main/test/java/org/apache/dubbo/config/validation/ValidationTest.java
rename to dubbo-config/dubbo-config-api/src/main/test/java/org/apache/dubbo/config/validation/ValidationTest.java
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.common.status.StatusChecker b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.common.status.StatusChecker
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.common.status.StatusChecker
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.common.status.StatusChecker
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.common.threadpool.ThreadPool b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.common.threadpool.ThreadPool
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.common.threadpool.ThreadPool
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.common.threadpool.ThreadPool
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryFactory b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryFactory
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryFactory
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.registry.RegistryFactory
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Codec b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Codec
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Codec
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Codec
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Dispatcher b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Dispatcher
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Dispatcher
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Dispatcher
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Transporter b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Transporter
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Transporter
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.Transporter
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.exchange.Exchanger b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.exchange.Exchanger
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.exchange.Exchanger
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.exchange.Exchanger
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.telnet.TelnetHandler b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.telnet.TelnetHandler
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.telnet.TelnetHandler
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.remoting.telnet.TelnetHandler
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.ExporterListener b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.ExporterListener
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.ExporterListener
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.ExporterListener
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.Filter b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.Filter
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.Filter
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.Filter
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.InvokerListener b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.InvokerListener
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.InvokerListener
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.InvokerListener
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.Protocol b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.Protocol
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.Protocol
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.Protocol
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.ProxyFactory b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.ProxyFactory
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.ProxyFactory
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.ProxyFactory
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.Cluster b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.Cluster
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.Cluster
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.Cluster
diff --git a/dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance b/dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance
rename to dubbo-config/dubbo-config-api/src/main/test/resources/META-INF/services/org.apache.dubbo.rpc.cluster.LoadBalance
diff --git a/dubbo-bootstrap/src/main/test/resources/log4j.xml b/dubbo-config/dubbo-config-api/src/main/test/resources/log4j.xml
similarity index 100%
rename from dubbo-bootstrap/src/main/test/resources/log4j.xml
rename to dubbo-config/dubbo-config-api/src/main/test/resources/log4j.xml
diff --git a/dubbo-governance/dubbo-governance-api/src/main/java/org/apache/dubbo/governance/DynamicConfigurationFactory.java b/dubbo-governance/dubbo-governance-api/src/main/java/org/apache/dubbo/governance/DynamicConfigurationFactory.java
deleted file mode 100644
index d4340d8..0000000
--- a/dubbo-governance/dubbo-governance-api/src/main/java/org/apache/dubbo/governance/DynamicConfigurationFactory.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.dubbo.governance;
-
-import org.apache.dubbo.common.Constants;
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.common.extension.Adaptive;
-import org.apache.dubbo.common.extension.SPI;
-
-/**
- *
- */
-@SPI("nop")
-public interface DynamicConfigurationFactory {
-
-    @Adaptive({Constants.PROTOCOL_KEY})
-    DynamicConfiguration getDynamicConfiguration(URL url);
-
-    DynamicConfiguration getExistedDynamicConfiguration();
-
-}
diff --git a/dubbo-governance/dubbo-governance-api/src/main/java/org/apache/dubbo/governance/support/nop/NopDynamicConfigurationFactory.java b/dubbo-governance/dubbo-governance-api/src/main/java/org/apache/dubbo/governance/support/nop/NopDynamicConfigurationFactory.java
deleted file mode 100644
index 13f91a1..0000000
--- a/dubbo-governance/dubbo-governance-api/src/main/java/org/apache/dubbo/governance/support/nop/NopDynamicConfigurationFactory.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.dubbo.governance.support.nop;
-
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.governance.DynamicConfiguration;
-import org.apache.dubbo.governance.DynamicConfigurationFactory;
-
-/**
- *
- */
-public class NopDynamicConfigurationFactory implements DynamicConfigurationFactory {
-    private static final URL FAkED_URL = URL.valueOf("config://0.0.0.0:20000/fakepath");
-
-    private NopDynamicConfiguration dynamicConfiguration;
-
-    @Override
-    public DynamicConfiguration getDynamicConfiguration(URL url) {
-        dynamicConfiguration = new NopDynamicConfiguration();
-        dynamicConfiguration.setUrl(FAkED_URL);
-        return dynamicConfiguration;
-    }
-
-    @Override
-    public DynamicConfiguration getExistedDynamicConfiguration() {
-        return dynamicConfiguration;
-    }
-}
diff --git a/dubbo-governance/dubbo-governance-apollo/src/main/java/org/apache/dubbo/governance/support/apollo/ApolloDynamicConfigurationFactory.java b/dubbo-governance/dubbo-governance-apollo/src/main/java/org/apache/dubbo/governance/support/apollo/ApolloDynamicConfigurationFactory.java
deleted file mode 100644
index 5762f0b..0000000
--- a/dubbo-governance/dubbo-governance-apollo/src/main/java/org/apache/dubbo/governance/support/apollo/ApolloDynamicConfigurationFactory.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.dubbo.governance.support.apollo;
-
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.governance.DynamicConfiguration;
-import org.apache.dubbo.governance.DynamicConfigurationFactory;
-
-/**
- *
- */
-public class ApolloDynamicConfigurationFactory implements DynamicConfigurationFactory {
-
-    private DynamicConfiguration configuration;
-
-    @Override
-    public synchronized DynamicConfiguration getDynamicConfiguration(URL url) {
-        if (configuration == null) {
-            configuration = new ApolloDynamicConfiguration();
-            configuration.setUrl(url);
-            configuration.init();
-        }
-        return configuration;
-    }
-
-    @Override
-    public DynamicConfiguration getExistedDynamicConfiguration() {
-        return configuration;
-    }
-
-
-}
diff --git a/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/ArchaiusDynamicConfigurationFactory.java b/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/ArchaiusDynamicConfigurationFactory.java
deleted file mode 100644
index 6bbf127..0000000
--- a/dubbo-governance/dubbo-governance-zookeeper/src/main/java/org/apache/dubbo/governance/support/archaius/ArchaiusDynamicConfigurationFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.dubbo.governance.support.archaius;
-
-import org.apache.dubbo.common.URL;
-import org.apache.dubbo.governance.DynamicConfiguration;
-import org.apache.dubbo.governance.DynamicConfigurationFactory;
-
-/**
- *
- */
-public class ArchaiusDynamicConfigurationFactory implements DynamicConfigurationFactory {
-
-    private volatile DynamicConfiguration configuration;
-
-    @Override
-    public synchronized DynamicConfiguration getDynamicConfiguration(URL url) {
-        if (configuration == null) {
-            configuration = new ArchaiusDynamicConfiguration();
-            configuration.setUrl(url);
-            configuration.init();
-        }
-        return configuration;
-    }
-
-    @Override
-    public DynamicConfiguration getExistedDynamicConfiguration() {
-        return configuration;
-    }
-}
diff --git a/dubbo-registry/dubbo-registry-api/pom.xml b/dubbo-registry/dubbo-registry-api/pom.xml
index fd57a9a..e403d03 100644
--- a/dubbo-registry/dubbo-registry-api/pom.xml
+++ b/dubbo-registry/dubbo-registry-api/pom.xml
@@ -36,11 +36,6 @@
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo-config-api</artifactId>
-            <version>${project.parent.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo-governance-api</artifactId>
             <version>${project.parent.version}</version>
         </dependency>