Merge branch 'master' into 0.2.0-release
diff --git a/README.md b/README.md
index 5112246..2daf656 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@
 <dependency>
     <groupId>com.alibaba.boot</groupId>
     <artifactId>dubbo-spring-boot-starter</artifactId>
-    <version>0.1.0</version>
+    <version>0.2.0</version>
 </dependency>
 ```
 
diff --git a/README_CN.md b/README_CN.md
index 1d1c455..7cc0656 100644
--- a/README_CN.md
+++ b/README_CN.md
@@ -26,7 +26,7 @@
 <dependency>
     <groupId>com.alibaba.boot</groupId>
     <artifactId>dubbo-spring-boot-starter</artifactId>
-    <version>0.1.0</version>
+    <version>0.2.0</version>
 </dependency>
 ```
 
diff --git a/dubbo-spring-boot-actuator/README_CN.md b/dubbo-spring-boot-actuator/README_CN.md
index 8273780..395e3ef 100644
--- a/dubbo-spring-boot-actuator/README_CN.md
+++ b/dubbo-spring-boot-actuator/README_CN.md
@@ -31,14 +31,14 @@
     <dependency>
         <groupId>com.alibaba.boot</groupId>
         <artifactId>dubbo-spring-boot-starter</artifactId>
-        <version>0.1.1-SNAPSHOT</version>
+        <version>0.2.0</version>
     </dependency>
 
     <!-- Production-Ready 特性 -->
     <dependency>
         <groupId>com.alibaba.boot</groupId>
         <artifactId>dubbo-spring-boot-actuator</artifactId>
-        <version>0.1.1-SNAPSHOT</version>
+        <version>0.2.0</version>
     </dependency>
 
      ...
diff --git a/dubbo-spring-boot-actuator/src/main/java/com/alibaba/boot/dubbo/actuate/endpoint/AbstractDubboEndpoint.java b/dubbo-spring-boot-actuator/src/main/java/com/alibaba/boot/dubbo/actuate/endpoint/AbstractDubboEndpoint.java
index 05f5bed..95b8655 100644
--- a/dubbo-spring-boot-actuator/src/main/java/com/alibaba/boot/dubbo/actuate/endpoint/AbstractDubboEndpoint.java
+++ b/dubbo-spring-boot-actuator/src/main/java/com/alibaba/boot/dubbo/actuate/endpoint/AbstractDubboEndpoint.java
@@ -20,6 +20,7 @@
 import com.alibaba.dubbo.config.spring.ServiceBean;
 import com.alibaba.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;
 import org.springframework.beans.BeansException;
+import org.springframework.boot.actuate.endpoint.annotation.Endpoint;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationContextAware;
 import org.springframework.context.EnvironmentAware;
@@ -42,7 +43,7 @@
 import static org.springframework.util.ClassUtils.isPrimitiveOrWrapper;
 
 /**
- * Abstract Dubbo {@link @Endpoint}
+ * Abstract Dubbo {@link Endpoint @Endpoint}
  *
  * @author <a href="mailto:mercyblitz@gmail.com">Mercy</a>
  * @since 0.2.0
diff --git a/dubbo-spring-boot-autoconfigure/README.md b/dubbo-spring-boot-autoconfigure/README.md
index e938cb8..b5e9306 100644
--- a/dubbo-spring-boot-autoconfigure/README.md
+++ b/dubbo-spring-boot-autoconfigure/README.md
@@ -23,7 +23,7 @@
 <dependency>
     <groupId>com.alibaba.boot</groupId>
     <artifactId>dubbo-spring-boot-autoconfigure</artifactId>
-    <version>0.1.1-SNAPSHOT</version>
+    <version>0.2.0</version>
 </dependency>
 ```
 
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/autoconfigure/DubboAutoConfiguration.java b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/autoconfigure/DubboAutoConfiguration.java
index 1b86dce..486c1b9 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/autoconfigure/DubboAutoConfiguration.java
+++ b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/autoconfigure/DubboAutoConfiguration.java
@@ -70,9 +70,9 @@
     }
 
     /**
-     * Multiple Dubbo Config Configuration , equals {@link EnableDubboConfig#multiple()} == <code>true</code>
+     * Multiple Dubbo Config Configuration , equals @EnableDubboConfig.multiple() == <code>true</code>
      *
-     * @see EnableDubboConfig#multiple()
+     * @see EnableDubboConfig
      * @see DubboConfigConfiguration.Multiple
      */
     @ConditionalOnProperty(name = MULTIPLE_CONFIG_PROPERTY_NAME, havingValue = "true")
@@ -83,6 +83,7 @@
     /**
      * Creates {@link ServiceAnnotationBeanPostProcessor} Bean
      *
+     * @param environment {@link Environment} Bean
      * @return {@link ServiceAnnotationBeanPostProcessor}
      */
     @ConditionalOnProperty(name = BASE_PACKAGES_PROPERTY_NAME)
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/autoconfigure/RelaxedDubboConfigBinder.java b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/autoconfigure/RelaxedDubboConfigBinder.java
index 1bbd18a..def20f0 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/autoconfigure/RelaxedDubboConfigBinder.java
+++ b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/autoconfigure/RelaxedDubboConfigBinder.java
@@ -31,10 +31,9 @@
 
 /**
  * Spring Boot Relaxed {@link DubboConfigBinder} implementation
+ * see org.springframework.boot.context.properties.ConfigurationPropertiesBinder
  *
  * @author <a href="mailto:mercyblitz@gmail.com">Mercy</a>
- * @revision 0.2.0
- * @see org.springframework.boot.context.properties.ConfigurationPropertiesBinder
  * @since 0.1.1
  */
 public class RelaxedDubboConfigBinder extends AbstractDubboConfigBinder {
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/context/event/OverrideDubboConfigApplicationListener.java b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/context/event/OverrideDubboConfigApplicationListener.java
index 08135c6..33ac29b 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/context/event/OverrideDubboConfigApplicationListener.java
+++ b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/context/event/OverrideDubboConfigApplicationListener.java
@@ -17,6 +17,7 @@
 package com.alibaba.boot.dubbo.context.event;
 
 import com.alibaba.dubbo.common.utils.ConfigUtils;
+import com.alibaba.dubbo.config.AbstractConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.context.event.ApplicationEnvironmentPreparedEvent;
@@ -32,7 +33,7 @@
 /**
  * {@link ApplicationListener} to override the dubbo properties from {@link Environment}into
  * {@link ConfigUtils#getProperties() Dubbo Config}.
- * {@ConfigUtils Dubbo Config} on {@link ApplicationEnvironmentPreparedEvent}.
+ * {@link AbstractConfig Dubbo Config} on {@link ApplicationEnvironmentPreparedEvent}.
  * <p>
  *
  * @author <a href="mailto:mercyblitz@gmail.com">Mercy</a>
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/context/event/WelcomeLogoApplicationListener.java b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/context/event/WelcomeLogoApplicationListener.java
index 172b33a..ae9682c 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/context/event/WelcomeLogoApplicationListener.java
+++ b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/context/event/WelcomeLogoApplicationListener.java
@@ -31,7 +31,7 @@
  * Dubbo Welcome Logo {@link ApplicationListener}
  *
  * @author <a href="mailto:mercyblitz@gmail.com">Mercy</a>
- * @see
+ * @see ApplicationListener
  * @since 1.0.0
  */
 @Order(LoggingApplicationListener.DEFAULT_ORDER + 1)
diff --git a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/util/DubboUtils.java b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/util/DubboUtils.java
index ff07534..7114844 100644
--- a/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/util/DubboUtils.java
+++ b/dubbo-spring-boot-autoconfigure/src/main/java/com/alibaba/boot/dubbo/util/DubboUtils.java
@@ -27,7 +27,6 @@
  * The utilities class for Dubbo
  *
  * @author <a href="mailto:mercyblitz@gmail.com">Mercy</a>
- * @see
  * @since 1.0.0
  */
 public abstract class DubboUtils {
diff --git a/dubbo-spring-boot-parent/pom.xml b/dubbo-spring-boot-parent/pom.xml
index c3a79bd..cfce3f3 100644
--- a/dubbo-spring-boot-parent/pom.xml
+++ b/dubbo-spring-boot-parent/pom.xml
@@ -46,6 +46,7 @@
         <argline>-server -Xms256m -Xmx512m -XX:PermSize=64m -XX:MaxPermSize=128m -Dfile.encoding=UTF-8
             -Djava.net.preferIPv4Stack=true
         </argline>
+        <arguments/>
 
         <!-- Maven plugins -->
         <maven-jar-plugin.version>3.0.2</maven-jar-plugin.version>
@@ -54,6 +55,8 @@
         <maven-jacoco-plugin.version>0.8.1</maven-jacoco-plugin.version>
         <maven-gpg-plugin.version>1.5</maven-gpg-plugin.version>
         <apache-rat-plugin.version>0.12</apache-rat-plugin.version>
+        <maven-release-plugin.version>2.5.3</maven-release-plugin.version>
+        <maven-surefire-plugin.version>2.19.1</maven-surefire-plugin.version>
     </properties>
 
     <dependencyManagement>
@@ -198,6 +201,31 @@
     </pluginRepositories>
 
     <build>
+        <!-- Used for packaging NOTICE & LICENSE to each sub-module jar-->
+        <resources>
+            <resource>
+                <directory>src/main/resources/</directory>
+                <filtering>false</filtering>
+            </resource>
+            <resource>
+                <directory>../</directory>
+                <targetPath>META-INF/</targetPath>
+                <filtering>false</filtering>
+                <includes>
+                    <include>NOTICE</include>
+                    <include>LICENSE</include>
+                </includes>
+            </resource>
+            <resource>
+                <directory>../../</directory>
+                <targetPath>META-INF/</targetPath>
+                <filtering>false</filtering>
+                <includes>
+                    <include>NOTICE</include>
+                    <include>LICENSE</include>
+                </includes>
+            </resource>
+        </resources>
         <plugins>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
@@ -296,6 +324,77 @@
                 </executions>
             </plugin>
             <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <version>${maven-surefire-plugin.version}</version>
+                <configuration>
+                    <useSystemClassLoader>true</useSystemClassLoader>
+                    <forkMode>once</forkMode>
+                    <argLine>${argline} ${jacocoArgLine}</argLine>
+                    <systemProperties>
+                        <!-- common shared -->
+                        <property>
+                            <name>transporter</name>
+                            <value>${transporter}</value>
+                        </property>
+                        <property>
+                            <name>serialization</name>
+                            <value>${serialization}</value>
+                        </property>
+                        <!-- server side -->
+                        <property>
+                            <name>port</name>
+                            <value>${port}</value>
+                        </property>
+                        <property>
+                            <name>threadpool</name>
+                            <value>${threadpool}</value>
+                        </property>
+                        <property>
+                            <name>threads</name>
+                            <value>${threads}</value>
+                        </property>
+                        <property>
+                            <name>iothreads</name>
+                            <value>${iothreads}</value>
+                        </property>
+                        <!-- client side -->
+                        <property>
+                            <name>server</name>
+                            <value>${server}</value>
+                        </property>
+                        <property>
+                            <name>timeout</name>
+                            <value>${timeout}</value>
+                        </property>
+                        <property>
+                            <name>length</name>
+                            <value>${length}</value>
+                        </property>
+                        <property>
+                            <name>connections</name>
+                            <value>${connections}</value>
+                        </property>
+                        <property>
+                            <name>base</name>
+                            <value>${base}</value>
+                        </property>
+                        <property>
+                            <name>concurrent</name>
+                            <value>${concurrent}</value>
+                        </property>
+                        <property>
+                            <name>runs</name>
+                            <value>${runs}</value>
+                        </property>
+                        <property>
+                            <name>onerror</name>
+                            <value>${onerror}</value>
+                        </property>
+                    </systemProperties>
+                </configuration>
+            </plugin>
+            <plugin>
                 <groupId>org.apache.rat</groupId>
                 <artifactId>apache-rat-plugin</artifactId>
                 <version>${apache-rat-plugin.version}</version>
@@ -348,6 +447,20 @@
                     </execution>
                 </executions>
             </plugin>
+
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+                <version>${maven-release-plugin.version}</version>
+                <configuration>
+                    <autoVersionSubmodules>true</autoVersionSubmodules>
+                    <useReleaseProfile>false</useReleaseProfile>
+                    <releaseProfiles>release</releaseProfiles>
+                    <goals>deploy</goals>
+                    <arguments>${arguments}</arguments>
+                </configuration>
+            </plugin>
         </plugins>
     </build>
+
 </project>
diff --git a/dubbo-spring-boot-samples/dubbo-spring-boot-sample-consumer/src/main/java/com/alibaba/boot/dubbo/demo/consumer/controller/DemoConsumerController.java b/dubbo-spring-boot-samples/dubbo-spring-boot-sample-consumer/src/main/java/com/alibaba/boot/dubbo/demo/consumer/controller/DemoConsumerController.java
index 5b105d6..1897979 100644
--- a/dubbo-spring-boot-samples/dubbo-spring-boot-sample-consumer/src/main/java/com/alibaba/boot/dubbo/demo/consumer/controller/DemoConsumerController.java
+++ b/dubbo-spring-boot-samples/dubbo-spring-boot-sample-consumer/src/main/java/com/alibaba/boot/dubbo/demo/consumer/controller/DemoConsumerController.java
@@ -25,7 +25,7 @@
  * Demo Consumer Controller (REST)
  *
  * @author <a href="mailto:mercyblitz@gmail.com">Mercy</a>
- * @see
+ * @see RestController
  * @since 1.0.0
  */
 @RestController
diff --git a/pom.xml b/pom.xml
index 601cafc..a68c9f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -99,7 +99,6 @@
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-javadoc-plugin</artifactId>
-                        <version>${maven_javadoc_version}</version>
                         <executions>
                             <execution>
                                 <phase>package</phase>
@@ -126,21 +125,4 @@
         </profile>
     </profiles>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>cobertura-maven-plugin</artifactId>
-                <version>2.7</version>
-                <configuration>
-                    <formats>
-                        <format>html</format>
-                        <format>xml</format>
-                    </formats>
-                    <check/>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
 </project>
\ No newline at end of file