diff --git a/DISCLAIMER b/DISCLAIMER
deleted file mode 100644
index bed312a..0000000
--- a/DISCLAIMER
+++ /dev/null
@@ -1 +0,0 @@
-Apache Dubbo is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
\ No newline at end of file
diff --git a/NOTICE b/NOTICE
index 62b2787..070eb57 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,4 +1,4 @@
-Apache Dubbo (incubating)
+Apache Dubbo
 Copyright 2018-2019 The Apache Software Foundation
 
 This product includes software developed at
diff --git a/README.md b/README.md
index b0d0a77..7930db2 100644
--- a/README.md
+++ b/README.md
@@ -1,15 +1,18 @@
 # Apache Dubbo Spring Boot Project 
 
 [![Build Status](https://travis-ci.org/apache/dubbo-spring-boot-project.svg?branch=master)](https://travis-ci.org/apache/dubbo-spring-boot-project) 
-[![codecov](https://codecov.io/gh/apache/dubbo-spring-boot-project/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/ubbo-spring-boot-project)
+[![codecov](https://codecov.io/gh/apache/dubbo-spring-boot-project/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-spring-boot-project)
 ![license](https://img.shields.io/github/license/apache/dubbo-spring-boot-project.svg)
 
 [Apache Dubbo](https://github.com/apache/dubbo) Spring Boot Project makes it easy to create [Spring Boot](https://github.com/spring-projects/spring-boot/) application using Dubbo as RPC Framework. What's more, it also provides 
+[![codecov](https://codecov.io/gh/apache/dubbo-spring-boot-project/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/ubbo-spring-boot-project)
+![license](https://img.shields.io/github/license/apache/dubbo-spring-boot-project.svg)
+
 
 * [auto-configure features](dubbo-spring-boot-autoconfigure) (e.g., annotation-driven, auto configuration, externalized configuration).
 * [production-ready features](dubbo-spring-boot-actuator) (e.g., security, health checks, externalized configuration).
 
-> Apache Dubbo (incubating) |ˈdʌbəʊ| is a high-performance, light weight, java based RPC framework. Dubbo offers three key functionalities, which include interface based remote call, fault tolerance & load balancing, and automatic service registration & discovery.
+> Apache Dubbo  |ˈdʌbəʊ| is a high-performance, light weight, java based RPC framework. Dubbo offers three key functionalities, which include interface based remote call, fault tolerance & load balancing, and automatic service registration & discovery.
 
 ## [中文说明](README_CN.md)
 
@@ -19,8 +22,8 @@
 You can introduce the latest `dubbo-spring-boot-starter` to your project by adding the following dependency to your pom.xml
 ```xml
 <properties>
-    <spring-boot.version>2.1.1.RELEASE</spring-boot.version>
-    <dubbo.version>2.7.1</dubbo.version>
+    <spring-boot.version>2.1.6.RELEASE</spring-boot.version>
+    <dubbo.version>2.7.3</dubbo.version>
 </properties>
     
 <dependencyManagement>
@@ -42,26 +45,7 @@
             <type>pom</type>
             <scope>import</scope>
         </dependency>
-
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-            <version>${dubbo.version}</version>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.springframework</groupId>
-                    <artifactId>spring</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>javax.servlet</groupId>
-                    <artifactId>servlet-api</artifactId>
-                </exclusion>
-                <exclusion>
-                    <groupId>log4j</groupId>
-                    <artifactId>log4j</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
+      
     </dependencies>
 </dependencyManagement>
 
@@ -70,13 +54,8 @@
     <dependency>
         <groupId>org.apache.dubbo</groupId>
         <artifactId>dubbo-spring-boot-starter</artifactId>
-        <version>2.7.1</version>
-    </dependency>
-    
-    <dependency>
-        <groupId>org.apache.dubbo</groupId>
-        <artifactId>dubbo</artifactId>
-    </dependency>
+        <version>2.7.3</version>
+    </dependency>    
 </dependencies>
 ```
 
@@ -295,4 +274,4 @@
 
 ## License
 
-Apache Dubbo spring boot project is under the Apache 2.0 license. See the [LICENSE](https://github.com/apache/incubator-dubbo-spring-boot-project/blob/master/LICENSE) file for details.
+Apache Dubbo spring boot project is under the Apache 2.0 license. See the [LICENSE](https://github.com/apache/dubbo-spring-boot-project/blob/master/LICENSE) file for details.
diff --git a/README_CN.md b/README_CN.md
index 3b52e9c..f33380e 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -1,8 +1,8 @@
 # Dubbo Spring Boot 工程
 
-[![Build Status](https://travis-ci.org/apache/incubator-dubbo-spring-boot-project.svg?branch=master)](https://travis-ci.org/apache/incubator-dubbo-spring-boot-project) 
-[![codecov](https://codecov.io/gh/apache/incubator-dubbo-spring-boot-project/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/incubator-dubbo-spring-boot-project)
-![license](https://img.shields.io/github/license/apache/incubator-dubbo-spring-boot-project.svg)
+[![Build Status](https://travis-ci.org/apache/dubbo-spring-boot-project.svg?branch=master)](https://travis-ci.org/apache/dubbo-spring-boot-project) 
+[![codecov](https://codecov.io/gh/apache/dubbo-spring-boot-project/branch/master/graph/badge.svg)](https://codecov.io/gh/apache/dubbo-spring-boot-project)
+![license](https://img.shields.io/github/license/apache/dubbo-spring-boot-project.svg)
 
 [Dubbo](https://dubbo.apache.org/zh-cn/index.html) Apache Dubbo™ 是一款高性能Java RPC框架。
 [Spring Boot](https://github.com/spring-projects/spring-boot/) 应用场景的开发。同时也整合了 Spring Boot 特性：
@@ -10,7 +10,7 @@
 * [自动装配](dubbo-spring-boot-autoconfigure) (比如： 注解驱动, 自动装配等).
 * [Production-Ready](dubbo-spring-boot-actuator) (比如： 安全, 健康检查, 外部化配置等).
 
-> Apache Dubbo |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架，它提供了三大核心能力：面向接口的远程方法调用，智能容错和负载均衡，以及服务自动注册和发现。
+> Apache Dubbo  |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC框架，它提供了三大核心能力：面向接口的远程方法调用，智能容错和负载均衡，以及服务自动注册和发现。
 
 
 ## [English README](README_CN.md)
@@ -22,7 +22,7 @@
 ```xml
 <properties>
     <spring-boot.version>2.1.1.RELEASE</spring-boot.version>
-    <dubbo.version>2.7.1</dubbo.version>
+    <dubbo.version>2.7.3</dubbo.version>
 </properties>
     
 <dependencyManagement>
@@ -72,7 +72,7 @@
     <dependency>
         <groupId>org.apache.dubbo</groupId>
         <artifactId>dubbo-spring-boot-starter</artifactId>
-        <version>2.7.1</version>
+        <version>2.7.3</version>
     </dependency>
     
     <dependency>
@@ -104,8 +104,8 @@
 
 | Dubbo Spring Boot | Dubbo  | Spring Boot |
 | ----------------- | ------ | ----------- |
-| [0.2.1.RELEASE](https://github.com/apache/incubator-dubbo-spring-boot-project/tree/0.2.x)     | 2.6.5+ | 2.x         |
-| [0.1.2.RELEASE](https://github.com/apache/incubator-dubbo-spring-boot-project/tree/0.1.x)     | 2.6.5+ | 1.x         |
+| [0.2.1.RELEASE](https://github.com/apache/dubbo-spring-boot-project/tree/0.2.x)     | 2.6.5+ | 2.x         |
+| [0.1.2.RELEASE](https://github.com/apache/dubbo-spring-boot-project/tree/0.1.x)     | 2.6.5+ | 1.x         |
 
 
 ### 源代码构建
@@ -295,5 +295,5 @@
 
 ## License
 
-Apache Dubbo spring boot project 基于Apache 2.0许可证开源，详细请参考[LICENSE](https://github.com/apache/incubator-dubbo-spring-boot-project/blob/master/LICENSE)。
+Apache Dubbo spring boot project 基于Apache 2.0许可证开源，详细请参考[LICENSE](https://github.com/apache/dubbo-spring-boot-project/blob/master/LICENSE)。
 
diff --git a/dubbo-spring-boot-actuator/README.md b/dubbo-spring-boot-actuator/README.md
index 659006c..9d398fd 100644
--- a/dubbo-spring-boot-actuator/README.md
+++ b/dubbo-spring-boot-actuator/README.md
@@ -22,7 +22,7 @@
 <dependency>
     <groupId>org.apache.dubbo</groupId>
     <artifactId>dubbo-spring-boot-actuator</artifactId>
-    <version>2.7.1</version>
+    <version>2.7.3</version>
 </dependency>
 ```
 
@@ -171,15 +171,15 @@
 {
   "timestamp": 1516623290166,
   "versions": {
-    "dubbo-spring-boot": "2.7.1",
-    "dubbo": "2.7.1"
+    "dubbo-spring-boot": "2.7.3",
+    "dubbo": "2.7.3"
   },
   "urls": {
     "dubbo": "https://github.com/apache/incubator-dubbo/",
     "google-group": "dev@dubbo.apache.org",
-    "github": "https://github.com/apache/incubator-dubbo-spring-boot-project",
-    "issues": "https://github.com/apache/incubator-dubbo-spring-boot-project/issues",
-    "git": "https://github.com/apache/incubator-dubbo-spring-boot-project.git"
+    "github": "https://github.com/apache/dubbo-spring-boot-project",
+    "issues": "https://github.com/apache/dubbo-spring-boot-project/issues",
+    "git": "https://github.com/apache/dubbo-spring-boot-project.git"
   }
 }
 ```
diff --git a/dubbo-spring-boot-actuator/pom.xml b/dubbo-spring-boot-actuator/pom.xml
index bf905f1..b95799a 100644
--- a/dubbo-spring-boot-actuator/pom.xml
+++ b/dubbo-spring-boot-actuator/pom.xml
@@ -65,13 +65,6 @@
             <version>${revision}</version>
         </dependency>
 
-        <!-- Dubbo -->
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-            <optional>true</optional>
-        </dependency>
-
         <!-- Test Dependencies -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
diff --git a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointTest.java b/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointTest.java
index 040ccf4..9b64afc 100644
--- a/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointTest.java
+++ b/dubbo-spring-boot-actuator/src/test/java/org/apache/dubbo/spring/boot/actuate/endpoint/DubboEndpointTest.java
@@ -17,6 +17,7 @@
 package org.apache.dubbo.spring.boot.actuate.endpoint;
 
 import org.apache.dubbo.spring.boot.util.DubboUtils;
+
 import org.junit.Assert;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -66,9 +67,9 @@
 
         Assert.assertEquals("https://github.com/apache/incubator-dubbo", urls.get("dubbo"));
         Assert.assertEquals("dev@dubbo.apache.org", urls.get("mailing-list"));
-        Assert.assertEquals("https://github.com/apache/incubator-dubbo-spring-boot-project", urls.get("github"));
-        Assert.assertEquals("https://github.com/apache/incubator-dubbo-spring-boot-project/issues", urls.get("issues"));
-        Assert.assertEquals("https://github.com/apache/incubator-dubbo-spring-boot-project.git", urls.get("git"));
+        Assert.assertEquals("https://github.com/apache/dubbo-spring-boot-project", urls.get("github"));
+        Assert.assertEquals("https://github.com/apache/dubbo-spring-boot-project/issues", urls.get("issues"));
+        Assert.assertEquals("https://github.com/apache/dubbo-spring-boot-project.git", urls.get("git"));
 
     }
 
diff --git a/dubbo-spring-boot-autoconfigure/README.md b/dubbo-spring-boot-autoconfigure/README.md
index ac33ef4..d05d24e 100644
--- a/dubbo-spring-boot-autoconfigure/README.md
+++ b/dubbo-spring-boot-autoconfigure/README.md
@@ -23,7 +23,7 @@
 <dependency>
     <groupId>org.apache.dubbo</groupId>
     <artifactId>dubbo-spring-boot-autoconfigure</artifactId>
-    <version>2.7.1</version>
+    <version>2.7.3</version>
 </dependency>
 ```
 
diff --git a/dubbo-spring-boot-autoconfigure/pom.xml b/dubbo-spring-boot-autoconfigure/pom.xml
index 190bfdb..9f8087b 100644
--- a/dubbo-spring-boot-autoconfigure/pom.xml
+++ b/dubbo-spring-boot-autoconfigure/pom.xml
@@ -54,11 +54,10 @@
             <optional>true</optional>
         </dependency>
 
-        <!-- Dubbo -->
+      <!-- Dubbo -->
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo</artifactId>
-            <optional>true</optional>
         </dependency>
 
         <!-- Test Dependencies -->
diff --git a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfigurationTest.java b/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfigurationTest.java
index bc354dc..aa205b7 100644
--- a/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfigurationTest.java
+++ b/dubbo-spring-boot-autoconfigure/src/test/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBinding2AutoConfigurationTest.java
@@ -19,7 +19,7 @@
 import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
 import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;
 import org.apache.dubbo.config.spring.context.properties.DubboConfigBinder;
-import org.junit.Assert;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.ObjectProvider;
@@ -32,10 +32,14 @@
 import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.util.ClassUtils;
 
+import java.util.Map;
 import java.util.Collection;
 
 import static org.apache.dubbo.spring.boot.util.DubboUtils.BASE_PACKAGES_PROPERTY_RESOLVER_BEAN_NAME;
 import static org.apache.dubbo.spring.boot.util.DubboUtils.RELAXED_DUBBO_CONFIG_BINDER_BEAN_NAME;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 
 /**
  * {@link DubboRelaxedBinding2AutoConfiguration} Test
@@ -65,22 +69,29 @@
     private Environment environment;
 
     @Autowired
-    private Collection<Environment> environments;
+    private PropertyResolver primaryPropertyResolver;
+
+    @Autowired
+    private Map<String, Environment> environments;
 
     @Test
     public void testBeans() {
-        Assert.assertTrue(ClassUtils.isAssignableValue(BinderDubboConfigBinder.class, dubboConfigBinder));
-        Assert.assertNotNull(serviceAnnotationBeanPostProcessor);
-        Assert.assertNotNull(serviceAnnotationBeanPostProcessor.getIfAvailable());
-        Assert.assertNotNull(referenceAnnotationBeanPostProcessor);
-        Assert.assertNotNull(referenceAnnotationBeanPostProcessor.getIfAvailable());
 
-        Assert.assertNotNull(environment);
-        Assert.assertNotNull(environments);
+        assertTrue(ClassUtils.isAssignableValue(BinderDubboConfigBinder.class, dubboConfigBinder));
 
-        Assert.assertEquals(1, environments.size());
+        assertNotNull(serviceAnnotationBeanPostProcessor);
+        assertNotNull(serviceAnnotationBeanPostProcessor.getIfAvailable());
+        assertNotNull(referenceAnnotationBeanPostProcessor);
+        assertNotNull(referenceAnnotationBeanPostProcessor.getIfAvailable());
 
-        Assert.assertTrue(environments.contains(environment));
+        assertNotNull(environment);
+        assertNotNull(primaryPropertyResolver);
+        assertNotNull(environments);
+
+        assertEquals(primaryPropertyResolver, environment);
+        assertEquals(2, environments.size());
+
+        assertTrue(environments.containsValue(environment));
     }
 
 }
diff --git a/dubbo-spring-boot-compatible/actuator/pom.xml b/dubbo-spring-boot-compatible/actuator/pom.xml
index 60fbd2f..fc3cf61 100644
--- a/dubbo-spring-boot-compatible/actuator/pom.xml
+++ b/dubbo-spring-boot-compatible/actuator/pom.xml
@@ -64,13 +64,6 @@
             <version>${revision}</version>
         </dependency>
 
-        <!-- Dubbo -->
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-            <optional>true</optional>
-        </dependency>
-
         <!-- Test Dependencies -->
         <dependency>
             <groupId>org.springframework.boot</groupId>
diff --git a/dubbo-spring-boot-compatible/autoconfigure/pom.xml b/dubbo-spring-boot-compatible/autoconfigure/pom.xml
index f1b0e12..c867723 100644
--- a/dubbo-spring-boot-compatible/autoconfigure/pom.xml
+++ b/dubbo-spring-boot-compatible/autoconfigure/pom.xml
@@ -57,7 +57,6 @@
         <dependency>
             <groupId>org.apache.dubbo</groupId>
             <artifactId>dubbo</artifactId>
-            <optional>true</optional>
         </dependency>
 
         <!-- Test Dependencies -->
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
index 059a3e6..82cce51 100644
--- a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboAutoConfiguration.java
@@ -23,6 +23,7 @@
 import org.apache.dubbo.config.spring.context.annotation.DubboConfigConfiguration;
 import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;
 
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
@@ -32,6 +33,8 @@
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.Primary;
+import org.springframework.core.env.Environment;
 import org.springframework.core.env.PropertyResolver;
 
 import java.util.Set;
@@ -106,4 +109,16 @@
     protected static class MultipleDubboConfigConfiguration {
     }
 
+    /**
+     * Build a primary {@link PropertyResolver} bean to {@link Autowired @Autowired}
+     *
+     * @param environment {@link Environment}
+     * @return alias bean for {@link Environment}
+     * @since 2.7.3
+     */
+    @Bean
+    @Primary
+    public PropertyResolver primaryPropertyResolver(Environment environment) {
+        return environment;
+    }
 }
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBindingAutoConfiguration.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBindingAutoConfiguration.java
index 4de242e..eeaff6d 100644
--- a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBindingAutoConfiguration.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/autoconfigure/DubboRelaxedBindingAutoConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.dubbo.spring.boot.autoconfigure;
 
 import org.apache.dubbo.config.spring.context.properties.DubboConfigBinder;
+
 import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
@@ -52,4 +53,5 @@
     public DubboConfigBinder relaxedDubboConfigBinder() {
         return new RelaxedDubboConfigBinder();
     }
+
 }
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java
index 738c2b1..4669d86 100644
--- a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/context/event/AwaitingNonWebApplicationListener.java
@@ -18,23 +18,24 @@
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.boot.SpringApplication;
 import org.springframework.boot.context.event.ApplicationReadyEvent;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationEvent;
 import org.springframework.context.ApplicationListener;
+import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.context.event.ContextClosedEvent;
 import org.springframework.context.event.SmartApplicationListener;
 import org.springframework.util.ClassUtils;
-import org.springframework.util.ObjectUtils;
 
 import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Condition;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReentrantLock;
 
+import static java.util.concurrent.Executors.newSingleThreadExecutor;
+import static org.springframework.util.ObjectUtils.containsElement;
+
 /**
  * Awaiting Non-Web Spring Boot {@link ApplicationListener}
  *
@@ -54,11 +55,11 @@
 
     private static final AtomicBoolean awaited = new AtomicBoolean(false);
 
-    private final Lock lock = new ReentrantLock();
+    private static final Lock lock = new ReentrantLock();
 
-    private final Condition condition = lock.newCondition();
+    private static final Condition condition = lock.newCondition();
 
-    private final ExecutorService executorService = Executors.newSingleThreadExecutor();
+    private static final ExecutorService executorService = newSingleThreadExecutor();
 
     private static <T> T[] of(T... values) {
         return values;
@@ -70,7 +71,7 @@
 
     @Override
     public boolean supportsEventType(Class<? extends ApplicationEvent> eventType) {
-        return ObjectUtils.containsElement(SUPPORTED_APPLICATION_EVENTS, eventType);
+        return containsElement(SUPPORTED_APPLICATION_EVENTS, eventType);
     }
 
     @Override
@@ -94,19 +95,23 @@
 
     protected void onApplicationReadyEvent(ApplicationReadyEvent event) {
 
-        final SpringApplication springApplication = event.getSpringApplication();
+        final ConfigurableApplicationContext applicationContext = event.getApplicationContext();
 
-        if (isWebApplication(event.getApplicationContext(), springApplication.getClassLoader())) {
+        if (!isRootApplicationContext(applicationContext) || isWebApplication(applicationContext)) {
             return;
         }
 
         await();
     }
 
-    private static boolean isWebApplication(ApplicationContext applicationContext, ClassLoader classLoader) {
+    private boolean isRootApplicationContext(ApplicationContext applicationContext) {
+        return applicationContext.getParent() == null;
+    }
+
+    private boolean isWebApplication(ApplicationContext applicationContext) {
         boolean webApplication = false;
         for (String contextClass : WEB_APPLICATION_CONTEXT_CLASSES) {
-            if (isAssignable(contextClass, applicationContext.getClass(), classLoader)) {
+            if (isAssignable(contextClass, applicationContext.getClass(), applicationContext.getClassLoader())) {
                 webApplication = true;
                 break;
             }
@@ -134,18 +139,20 @@
             return;
         }
 
-        executorService.execute(() -> executeMutually(() -> {
-            while (!awaited.get()) {
-                if (logger.isInfoEnabled()) {
-                    logger.info(" [Dubbo] Current Spring Boot Application is await...");
+        if (!executorService.isShutdown()) {
+            executorService.execute(() -> executeMutually(() -> {
+                while (!awaited.get()) {
+                    if (logger.isInfoEnabled()) {
+                        logger.info(" [Dubbo] Current Spring Boot Application is await...");
+                    }
+                    try {
+                        condition.await();
+                    } catch (InterruptedException e) {
+                        Thread.currentThread().interrupt();
+                    }
                 }
-                try {
-                    condition.await();
-                } catch (InterruptedException e) {
-                    Thread.currentThread().interrupt();
-                }
-            }
-        }));
+            }));
+        }
     }
 
     protected void release() {
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java
index 98b0bcd..885f755 100644
--- a/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/main/java/org/apache/dubbo/spring/boot/util/DubboUtils.java
@@ -99,17 +99,17 @@
     /**
      * The github URL of Dubbo Spring Boot
      */
-    public static final String DUBBO_SPRING_BOOT_GITHUB_URL = "https://github.com/apache/incubator-dubbo-spring-boot-project";
+    public static final String DUBBO_SPRING_BOOT_GITHUB_URL = "https://github.com/apache/dubbo-spring-boot-project";
 
     /**
      * The git URL of Dubbo Spring Boot
      */
-    public static final String DUBBO_SPRING_BOOT_GIT_URL = "https://github.com/apache/incubator-dubbo-spring-boot-project.git";
+    public static final String DUBBO_SPRING_BOOT_GIT_URL = "https://github.com/apache/dubbo-spring-boot-project.git";
 
     /**
      * The issues of Dubbo Spring Boot
      */
-    public static final String DUBBO_SPRING_BOOT_ISSUES_URL = "https://github.com/apache/incubator-dubbo-spring-boot-project/issues";
+    public static final String DUBBO_SPRING_BOOT_ISSUES_URL = "https://github.com/apache/dubbo-spring-boot-project/issues";
 
     /**
      * The github URL of Dubbo
diff --git a/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java
index 823ddb7..98505fe 100644
--- a/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java
+++ b/dubbo-spring-boot-compatible/autoconfigure/src/test/java/org/apache/dubbo/spring/boot/util/DubboUtilsTest.java
@@ -65,9 +65,9 @@
 
         Assert.assertEquals("dubbo.config.override", OVERRIDE_CONFIG_FULL_PROPERTY_NAME);
 
-        Assert.assertEquals("https://github.com/apache/incubator-dubbo-spring-boot-project", DUBBO_SPRING_BOOT_GITHUB_URL);
-        Assert.assertEquals("https://github.com/apache/incubator-dubbo-spring-boot-project.git", DUBBO_SPRING_BOOT_GIT_URL);
-        Assert.assertEquals("https://github.com/apache/incubator-dubbo-spring-boot-project/issues", DUBBO_SPRING_BOOT_ISSUES_URL);
+        Assert.assertEquals("https://github.com/apache/dubbo-spring-boot-project", DUBBO_SPRING_BOOT_GITHUB_URL);
+        Assert.assertEquals("https://github.com/apache/dubbo-spring-boot-project.git", DUBBO_SPRING_BOOT_GIT_URL);
+        Assert.assertEquals("https://github.com/apache/dubbo-spring-boot-project/issues", DUBBO_SPRING_BOOT_ISSUES_URL);
 
         Assert.assertEquals("https://github.com/apache/incubator-dubbo", DUBBO_GITHUB_URL);
 
diff --git a/dubbo-spring-boot-compatible/pom.xml b/dubbo-spring-boot-compatible/pom.xml
index 8af787e..fb8c14e 100644
--- a/dubbo-spring-boot-compatible/pom.xml
+++ b/dubbo-spring-boot-compatible/pom.xml
@@ -32,7 +32,7 @@
     <description>Apache Dubbo Spring Boot Compatible for Spring Boot 1.x</description>
 
     <properties>
-        <spring-boot.version>1.5.19.RELEASE</spring-boot.version>
+        <spring-boot.version>1.5.21.RELEASE</spring-boot.version>
     </properties>
 
     <modules>
@@ -40,4 +40,15 @@
         <module>actuator</module>
     </modules>
 
+    <profiles>
+
+        <profile>
+            <!-- Spring Boot 1.4 -->
+            <id>spring-boot-1.4</id>
+            <properties>
+                <spring-boot.version>1.4.7.RELEASE</spring-boot.version>
+            </properties>
+        </profile>
+
+    </profiles>
 </project>
\ No newline at end of file
diff --git a/dubbo-spring-boot-distribution/pom.xml b/dubbo-spring-boot-distribution/pom.xml
index 181ba44..04af1fb 100644
--- a/dubbo-spring-boot-distribution/pom.xml
+++ b/dubbo-spring-boot-distribution/pom.xml
@@ -58,7 +58,7 @@
         <profile>
             <id>release</id>
             <build>
-                <finalName>apache-dubbo-spring-boot-project-incubating-${project.version}</finalName>
+                <finalName>apache-dubbo-spring-boot-project-${project.version}</finalName>
                 <plugins>
                     <plugin>
                         <artifactId>maven-assembly-plugin</artifactId>
diff --git a/dubbo-spring-boot-parent/pom.xml b/dubbo-spring-boot-parent/pom.xml
index 905d89c..b4424c0 100644
--- a/dubbo-spring-boot-parent/pom.xml
+++ b/dubbo-spring-boot-parent/pom.xml
@@ -38,7 +38,7 @@
         <java.target.version>1.8</java.target.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
-        <spring-boot.version>2.1.3.RELEASE</spring-boot.version>
+        <spring-boot.version>2.1.6.RELEASE</spring-boot.version>
         <dubbo.version>${revision}</dubbo.version>
         <!-- Build args -->
         <argline>-server -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true
@@ -429,4 +429,16 @@
         </plugins>
     </build>
 
+    <profiles>
+
+        <profile>
+            <!-- Spring Boot 2.0 -->
+            <id>spring-boot-2.0</id>
+            <properties>
+                <spring-boot.version>2.0.9.RELEASE</spring-boot.version>
+            </properties>
+        </profile>
+
+    </profiles>
+
 </project>
diff --git a/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/pom.xml b/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/pom.xml
index 4f01fe1..5b82024 100644
--- a/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/pom.xml
+++ b/dubbo-spring-boot-samples/auto-configure-samples/consumer-sample/pom.xml
@@ -43,11 +43,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.dubbo.samples</groupId>
             <artifactId>dubbo-spring-boot-sample-api</artifactId>
             <version>${revision}</version>
@@ -68,6 +63,11 @@
                         </goals>
                     </execution>
                 </executions>
+                <configuration>
+                    <executable>false</executable>
+                    <finalName>${project.artifactId}-${spring-boot.version}</finalName>
+                    <outputDirectory>${user.dir}/target</outputDirectory>
+                </configuration>
             </plugin>
         </plugins>
     </build>
diff --git a/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/pom.xml b/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/pom.xml
index a7aca3a..bc4bd87 100644
--- a/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/pom.xml
+++ b/dubbo-spring-boot-samples/auto-configure-samples/provider-sample/pom.xml
@@ -44,11 +44,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.dubbo.samples</groupId>
             <artifactId>dubbo-spring-boot-sample-api</artifactId>
             <version>${revision}</version>
@@ -69,6 +64,11 @@
                         </goals>
                     </execution>
                 </executions>
+                <configuration>
+                    <executable>false</executable>
+                    <finalName>${project.artifactId}-${spring-boot.version}</finalName>
+                    <outputDirectory>${user.dir}/target</outputDirectory>
+                </configuration>
             </plugin>
         </plugins>
     </build>
diff --git a/dubbo-spring-boot-samples/dubbo-registry-nacos-samples/consumer-sample/pom.xml b/dubbo-spring-boot-samples/dubbo-registry-nacos-samples/consumer-sample/pom.xml
index 0c1260e..a2d7bd1 100644
--- a/dubbo-spring-boot-samples/dubbo-registry-nacos-samples/consumer-sample/pom.xml
+++ b/dubbo-spring-boot-samples/dubbo-registry-nacos-samples/consumer-sample/pom.xml
@@ -30,7 +30,7 @@
     <name>Apache Dubbo Spring Boot :: Samples : Registry Nacos :: Consumer Sample</name>
 
     <properties>
-        <nacos.version>1.0.0-RC3</nacos.version>
+        <nacos.version>1.1.1</nacos.version>
     </properties>
 
     <dependencies>
@@ -46,12 +46,6 @@
             <version>${revision}</version>
         </dependency>
 
-        <!-- Dubbo -->
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-        </dependency>
-
         <!-- Dubbo Registry Nacos -->
         <dependency>
             <groupId>org.apache.dubbo</groupId>
@@ -72,4 +66,25 @@
         </dependency>
     </dependencies>
 
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <executable>false</executable>
+                    <finalName>${project.artifactId}-${spring-boot.version}</finalName>
+                    <outputDirectory>${user.dir}/target</outputDirectory>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>
\ No newline at end of file
diff --git a/dubbo-spring-boot-samples/dubbo-registry-nacos-samples/provider-sample/pom.xml b/dubbo-spring-boot-samples/dubbo-registry-nacos-samples/provider-sample/pom.xml
index 6996621..e06d3ba 100644
--- a/dubbo-spring-boot-samples/dubbo-registry-nacos-samples/provider-sample/pom.xml
+++ b/dubbo-spring-boot-samples/dubbo-registry-nacos-samples/provider-sample/pom.xml
@@ -30,7 +30,7 @@
     <name>Apache Dubbo Spring Boot :: Samples : Registry Nacos :: Provider Sample</name>
 
     <properties>
-        <nacos.version>1.0.0-RC3</nacos.version>
+        <nacos.version>1.1.1</nacos.version>
     </properties>
 
     <dependencies>
@@ -46,12 +46,6 @@
             <version>${revision}</version>
         </dependency>
 
-        <!-- Dubbo -->
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-        </dependency>
-
         <!-- Dubbo Registry Nacos -->
         <dependency>
             <groupId>org.apache.dubbo</groupId>
@@ -71,4 +65,26 @@
             <version>${revision}</version>
         </dependency>
     </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <version>${spring-boot.version}</version>
+                <executions>
+                    <execution>
+                        <goals>
+                            <goal>repackage</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <executable>false</executable>
+                    <finalName>${project.artifactId}-${spring-boot.version}</finalName>
+                    <outputDirectory>${user.dir}/target</outputDirectory>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
 </project>
\ No newline at end of file
diff --git a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/consumer-sample/pom.xml b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/consumer-sample/pom.xml
index 42860c1..1667be2 100644
--- a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/consumer-sample/pom.xml
+++ b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/consumer-sample/pom.xml
@@ -43,11 +43,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.dubbo.samples</groupId>
             <artifactId>dubbo-spring-boot-sample-api</artifactId>
             <version>${revision}</version>
@@ -59,6 +54,12 @@
             <artifactId>dubbo-dependencies-zookeeper</artifactId>
             <version>${dubbo.version}</version>
             <type>pom</type>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
     </dependencies>
@@ -76,6 +77,11 @@
                         </goals>
                     </execution>
                 </executions>
+                <configuration>
+                    <executable>false</executable>
+                    <finalName>${project.artifactId}-${spring-boot.version}</finalName>
+                    <outputDirectory>${user.dir}/target</outputDirectory>
+                </configuration>
             </plugin>
         </plugins>
     </build>
diff --git a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/pom.xml b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/pom.xml
index 94e7598..cb2179a 100644
--- a/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/pom.xml
+++ b/dubbo-spring-boot-samples/dubbo-registry-zookeeper-samples/provider-sample/pom.xml
@@ -43,12 +43,6 @@
             <version>${revision}</version>
         </dependency>
 
-        <!-- Dubbo -->
-        <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-        </dependency>
-
         <dependency>
             <groupId>org.apache.dubbo.samples</groupId>
             <artifactId>dubbo-spring-boot-sample-api</artifactId>
@@ -61,6 +55,12 @@
             <artifactId>dubbo-dependencies-zookeeper</artifactId>
             <version>${dubbo.version}</version>
             <type>pom</type>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.slf4j</groupId>
+                    <artifactId>slf4j-log4j12</artifactId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
     </dependencies>
@@ -78,6 +78,11 @@
                         </goals>
                     </execution>
                 </executions>
+                <configuration>
+                    <executable>false</executable>
+                    <finalName>${project.artifactId}-${spring-boot.version}</finalName>
+                    <outputDirectory>${user.dir}/target</outputDirectory>
+                </configuration>
             </plugin>
         </plugins>
     </build>
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/pom.xml b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/pom.xml
index edafe3d..dab1864 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/pom.xml
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/pom.xml
@@ -55,11 +55,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.dubbo.samples</groupId>
             <artifactId>dubbo-spring-boot-sample-api</artifactId>
             <version>${revision}</version>
@@ -80,6 +75,11 @@
                         </goals>
                     </execution>
                 </executions>
+                <configuration>
+                    <executable>false</executable>
+                    <finalName>${project.artifactId}-${spring-boot.version}</finalName>
+                    <outputDirectory>${user.dir}/target</outputDirectory>
+                </configuration>
             </plugin>
         </plugins>
     </build>
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboExternalizedConfigurationConsumerBootstrap.java b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboExternalizedConfigurationConsumerBootstrap.java
index 39f75b8..063c1a6 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboExternalizedConfigurationConsumerBootstrap.java
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/consumer-sample/src/main/java/org/apache/dubbo/spring/boot/demo/consumer/bootstrap/DubboExternalizedConfigurationConsumerBootstrap.java
@@ -18,16 +18,19 @@
 
 import org.apache.dubbo.config.annotation.Reference;
 import org.apache.dubbo.spring.boot.demo.consumer.DemoService;
+
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.ApplicationRunner;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
 import org.springframework.context.annotation.Bean;
-import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import static org.springframework.web.bind.annotation.RequestMethod.GET;
+
 /**
  * Dubbo Externalized Configuration Consumer Bootstrap
  */
@@ -44,7 +47,7 @@
         SpringApplication.run(DubboExternalizedConfigurationConsumerBootstrap.class);
     }
 
-    @GetMapping("/say-hello")
+    @RequestMapping(value = "/say-hello", method = GET)
     public String sayHello(@RequestParam String name) {
         return demoService.sayHello(name);
     }
diff --git a/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/pom.xml b/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/pom.xml
index 74ee45c..a22f202 100644
--- a/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/pom.xml
+++ b/dubbo-spring-boot-samples/externalized-configuration-samples/provider-sample/pom.xml
@@ -44,11 +44,6 @@
         </dependency>
 
         <dependency>
-            <groupId>org.apache.dubbo</groupId>
-            <artifactId>dubbo</artifactId>
-        </dependency>
-
-        <dependency>
             <groupId>org.apache.dubbo.samples</groupId>
             <artifactId>dubbo-spring-boot-sample-api</artifactId>
             <version>${revision}</version>
@@ -69,6 +64,11 @@
                         </goals>
                     </execution>
                 </executions>
+                <configuration>
+                    <executable>false</executable>
+                    <finalName>${project.artifactId}-${spring-boot.version}</finalName>
+                    <outputDirectory>${user.dir}/target</outputDirectory>
+                </configuration>
             </plugin>
         </plugins>
     </build>
diff --git a/dubbo-spring-boot-samples/pom.xml b/dubbo-spring-boot-samples/pom.xml
index 579f3fe..7e79622 100644
--- a/dubbo-spring-boot-samples/pom.xml
+++ b/dubbo-spring-boot-samples/pom.xml
@@ -51,4 +51,32 @@
             </plugin>
         </plugins>
     </build>
+
+    <profiles>
+
+        <profile>
+            <!-- Spring Boot 1.3 -->
+            <id>spring-boot-1.3</id>
+            <properties>
+                <spring-boot.version>1.3.8.RELEASE</spring-boot.version>
+            </properties>
+        </profile>
+
+        <profile>
+            <!-- Spring Boot 1.4 -->
+            <id>spring-boot-1.4</id>
+            <properties>
+                <spring-boot.version>1.4.7.RELEASE</spring-boot.version>
+            </properties>
+        </profile>
+
+        <profile>
+            <!-- Spring Boot 1.5 -->
+            <id>spring-boot-1.5</id>
+            <properties>
+                <spring-boot.version>1.5.21.RELEASE</spring-boot.version>
+            </properties>
+        </profile>
+
+    </profiles>
 </project>
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 6180879..77d4412 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,12 +33,12 @@
 
     <name>Apache Dubbo Spring Boot Project</name>
     <description>Apache Dubbo Spring Boot Project</description>
-    <url>https://github.com/apache/incubator-dubbo-spring-boot-project</url>
+    <url>https://github.com/apache/dubbo-spring-boot-project</url>
 
     <properties>
         <maven_javadoc_version>3.0.1</maven_javadoc_version>
         <maven_surefire_version>2.19.1</maven_surefire_version>
-        <revision>2.7.1</revision>
+        <revision>2.7.3</revision>
     </properties>
 
     <modules>
@@ -57,15 +57,15 @@
     </organization>
 
     <scm>
-        <url>https://github.com/apache/incubator-dubbo-spring-boot-project</url>
-        <connection>scm:git:git:////github.com/apache/incubator-dubbo-spring-boot-project.git</connection>
-        <developerConnection>scm:git:ssh://git@//github.com/apache/incubator-dubbo-spring-boot-project.git
+        <url>https://github.com/apache/dubbo-spring-boot-project</url>
+        <connection>scm:git:git:////github.com/apache/dubbo-spring-boot-project.git</connection>
+        <developerConnection>scm:git:ssh://git@//github.com/apache/dubbo-spring-boot-project.git
         </developerConnection>
     </scm>
 
     <issueManagement>
         <system>Github</system>
-        <url>https://github.com/apache/incubator-dubbo-spring-boot-project/issues</url>
+        <url>https://github.com/apache/dubbo-spring-boot-project/issues</url>
     </issueManagement>
 
     <mailingLists>
@@ -90,8 +90,8 @@
     </mailingLists>
     <developers>
         <developer>
-            <id>Apache Dubbo (incubating)</id>
-            <name>The Apache Dubbo (incubating) Project Contributors</name>
+            <id>Apache Dubbo </id>
+            <name>The Apache Dubbo  Project Contributors</name>
             <email>dev@dubbo.apache.org</email>
             <url>http://dubbo.apache.org</url>
         </developer>
