You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by ra...@apache.org on 2021/10/13 08:58:29 UTC

[dubbo-spi-extensions] branch master updated: Adjust pom file (#74)

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

ranke pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/dubbo-spi-extensions.git


The following commit(s) were added to refs/heads/master by this push:
     new 3b6909a  Adjust pom file (#74)
3b6909a is described below

commit 3b6909a5dbb148dd1e8c53f856552eeb4d7e1776
Author: haoyann <10...@qq.com>
AuthorDate: Wed Oct 13 16:58:26 2021 +0800

    Adjust pom file (#74)
    
    * Adjust project pom
    
    * fix checkstyle file
    
    * fix dubbo-extensions-bom pom
    
    * fix check file
    
    * change module version to 3.0.0
    
    * fix ci
    
    * change version to 3.0.0-SNAPSHOT
    
    * change parent version to 1.0.0-SNAPSHOT
    
    Co-authored-by: yanhao <ya...@tinman.cn>
---
 dubbo-api-docs/pom.xml                             |   7 +-
 dubbo-cluster-extensions/pom.xml                   |  11 +-
 dubbo-common-extensions/pom.xml                    |  10 +-
 dubbo-configcenter-extensions/pom.xml              |   9 +-
 dubbo-extensions-dependencies-bom/pom.xml          | 546 ++++++++++++++++++-
 dubbo-extensions-distribution/dubbo-bom/pom.xml    |  13 +-
 dubbo-extensions-distribution/pom.xml              |  10 +-
 dubbo-filter-extensions/pom.xml                    |  11 +-
 dubbo-metadata-report-extensions/pom.xml           |  11 +-
 dubbo-mock-extensions/pom.xml                      |   8 +-
 dubbo-registry-extensions/pom.xml                  |  11 +-
 dubbo-remoting-extensions/pom.xml                  |  10 +-
 dubbo-rpc-extensions/pom.xml                       |  11 +-
 .../dubbo-serialization-kryo/pom.xml               |   3 +-
 .../dubbo-serialization-test/pom.xml               |  12 +-
 dubbo-serialization-extensions/pom.xml             |  11 +-
 pom.xml                                            | 603 +--------------------
 17 files changed, 639 insertions(+), 658 deletions(-)

diff --git a/dubbo-api-docs/pom.xml b/dubbo-api-docs/pom.xml
index fea0da8..ed8d999 100644
--- a/dubbo-api-docs/pom.xml
+++ b/dubbo-api-docs/pom.xml
@@ -19,9 +19,9 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
 
     <artifactId>dubbo-api-docs</artifactId>
@@ -33,6 +33,7 @@
     <inceptionYear>2020</inceptionYear>
 
     <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
         <project.build.jdkVersion>1.8</project.build.jdkVersion>
         <argLine>-Dfile.encoding=UTF-8</argLine>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
diff --git a/dubbo-cluster-extensions/pom.xml b/dubbo-cluster-extensions/pom.xml
index 5dc0c1e..3c4a4f6 100644
--- a/dubbo-cluster-extensions/pom.xml
+++ b/dubbo-cluster-extensions/pom.xml
@@ -20,14 +20,19 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-cluster-extensions</artifactId>
+    <version>${revision}</version>
     <packaging>pom</packaging>
+
+    <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
+    </properties>
     <modules>
         <module>dubbo-cluster-broadcast-1</module>
         <module>dubbo-cluster-loadbalance-peakewma</module>
diff --git a/dubbo-common-extensions/pom.xml b/dubbo-common-extensions/pom.xml
index ec737d2..806c877 100644
--- a/dubbo-common-extensions/pom.xml
+++ b/dubbo-common-extensions/pom.xml
@@ -20,12 +20,16 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-common-extensions</artifactId>
+    <version>${revision}</version>
+    <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
+    </properties>
 
 </project>
diff --git a/dubbo-configcenter-extensions/pom.xml b/dubbo-configcenter-extensions/pom.xml
index 28e3faf..eaa488f 100644
--- a/dubbo-configcenter-extensions/pom.xml
+++ b/dubbo-configcenter-extensions/pom.xml
@@ -20,15 +20,16 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
-
+    <version>${revision}</version>
     <artifactId>dubbo-configcenter-extensions</artifactId>
 
     <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
     </properties>
diff --git a/dubbo-extensions-dependencies-bom/pom.xml b/dubbo-extensions-dependencies-bom/pom.xml
index b1392b9..132c059 100644
--- a/dubbo-extensions-dependencies-bom/pom.xml
+++ b/dubbo-extensions-dependencies-bom/pom.xml
@@ -15,19 +15,20 @@
   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">
+<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">
     <modelVersion>4.0.0</modelVersion>
 
     <parent>
         <groupId>org.apache</groupId>
         <artifactId>apache</artifactId>
         <version>21</version>
-        <relativePath />
+        <relativePath/>
     </parent>
 
     <groupId>org.apache.dubbo.extensions</groupId>
     <artifactId>dubbo-extensions-dependencies-bom</artifactId>
-    <version>${revision}</version>
+    <version>1.0.0-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <name>dubbo-extensions-dependencies-bom</name>
@@ -88,12 +89,46 @@
     </issueManagement>
 
     <properties>
+        <!-- Test libs -->
+        <junit_jupiter_version>5.6.0</junit_jupiter_version>
+        <hazelcast_version>3.11.1</hazelcast_version>
+        <hamcrest_version>2.2</hamcrest_version>
+        <hibernate_validator_version>5.2.4.Final</hibernate_validator_version>
+        <el_api_version>2.2.4</el_api_version>
+        <jaxb_api_version>2.2.7</jaxb_api_version>
+        <cglib_version>2.2</cglib_version>
+        <mockito_version>3.8.0</mockito_version>
+        <!-- for maven compiler plugin -->
+        <java_source_version>1.8</java_source_version>
+        <java_target_version>1.8</java_target_version>
+        <file_encoding>UTF-8</file_encoding>
+        <!-- Build args -->
+        <argline>-server -Xms256m -Xmx512m -Dfile.encoding=UTF-8
+            -Djava.net.preferIPv4Stack=true -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m
+        </argline>
+
+        <maven_jar_version>3.2.0</maven_jar_version>
+        <maven_surefire_version>2.22.2</maven_surefire_version>
+        <maven_deploy_version>2.8.2</maven_deploy_version>
+        <maven_compiler_version>3.8.1</maven_compiler_version>
+        <maven_source_version>3.2.1</maven_source_version>
+        <maven_javadoc_version>3.2.0</maven_javadoc_version>
+        <maven_checkstyle_version>3.1.2</maven_checkstyle_version>
+        <maven_jacoco_version>0.8.6</maven_jacoco_version>
+        <maven_flatten_version>1.2.5</maven_flatten_version>
+        <maven_enforce_version>3.0.0-M3</maven_enforce_version>
+        <apache-rat-plugin.version>0.13</apache-rat-plugin.version>
+        <skip_maven_deploy>false</skip_maven_deploy>
+        <checkstyle.skip>true</checkstyle.skip>
+        <checkstyle_unix.skip>true</checkstyle_unix.skip>
+        <rat.skip>true</rat.skip>
+        <jacoco.skip>false</jacoco.skip>
+
         <dubbo.version>3.0.0</dubbo.version>
         <spring.version>5.2.8.RELEASE</spring.version>
         <spring-boot.version>2.4.1</spring-boot.version>
 
         <maven_flatten_version>1.2.5</maven_flatten_version>
-        <revision>1.0.0-SNAPSHOT</revision>
     </properties>
 
     <dependencyManagement>
@@ -135,9 +170,207 @@
         </dependencies>
     </dependencyManagement>
 
+    <dependencies>
+        <!--JUnit Jupiter Engine to depend on the JUnit5 engine and JUnit 5 API -->
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-engine</artifactId>
+            <version>${junit_jupiter_version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.junit.jupiter</groupId>
+            <artifactId>junit-jupiter-params</artifactId>
+            <version>${junit_jupiter_version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.hamcrest</groupId>
+            <artifactId>hamcrest</artifactId>
+            <version>${hamcrest_version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.mockito</groupId>
+            <artifactId>mockito-core</artifactId>
+            <version>${mockito_version}</version>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>cglib</groupId>
+            <artifactId>cglib-nodep</artifactId>
+            <version>${cglib_version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
     <build>
+        <!-- Used for packaging NOTICE & LICENSE to each sub-module jar-->
+        <resources>
+            <resource>
+                <directory>src/main/resources</directory>
+                <filtering>false</filtering>
+            </resource>
+            <resource>
+                <directory>${maven.multiModuleProjectDirectory}</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>
+                <artifactId>maven-jar-plugin</artifactId>
+                <version>${maven_jar_version}</version>
+                <configuration>
+                    <archive>
+                        <addMavenDescriptor>true</addMavenDescriptor>
+                        <index>true</index>
+                        <manifest>
+                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
+                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
+                        </manifest>
+                        <manifestEntries>
+                            <Specification-Version>${project.version}</Specification-Version>
+                            <Implementation-Version>${project.version}</Implementation-Version>
+                        </manifestEntries>
+                    </archive>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.jacoco</groupId>
+                <artifactId>jacoco-maven-plugin</artifactId>
+                <version>${maven_jacoco_version}</version>
+                <executions>
+                    <execution>
+                        <id>jacoco-initialize</id>
+                        <goals>
+                            <goal>prepare-agent</goal>
+                        </goals>
+                        <configuration>
+                            <propertyName>jacocoArgLine</propertyName>
+                        </configuration>
+                    </execution>
+                    <execution>
+                        <id>report-aggregate</id>
+                        <phase>verify</phase>
+                        <goals>
+                            <goal>report</goal>
+                        </goals>
+                        <configuration>
+                            <includes>
+                                <include>target/classes/**/*</include>
+                                <include>target/classes/**</include>
+                                <include>**/*</include>
+                            </includes>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-surefire-plugin</artifactId>
+                <configuration>
+                    <useSystemClassLoader>true</useSystemClassLoader>
+                    <forkMode>once</forkMode>
+                    <argLine>${argline} ${jacocoArgLine}</argLine>
+                    <systemProperties>
+                        <!-- common shared -->
+                    </systemProperties>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-deploy-plugin</artifactId>
+                <version>${maven_deploy_version}</version>
+                <configuration>
+                    <skip>${skip_maven_deploy}</skip>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>${maven_compiler_version}</version>
+                <configuration>
+                    <compilerArgs>
+                        <compilerArg>-proc:none</compilerArg>
+                        <compilerArg>-parameters</compilerArg>
+                    </compilerArgs>
+                    <fork>true</fork>
+                    <source>${java_source_version}</source>
+                    <target>${java_target_version}</target>
+                    <encoding>${file_encoding}</encoding>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.rat</groupId>
+                <artifactId>apache-rat-plugin</artifactId>
+                <version>${apache-rat-plugin.version}</version>
+                <executions>
+                    <execution>
+                        <id>rat-validate</id>
+                        <phase>validate</phase>
+                        <goals>
+                            <goal>check</goal>
+                        </goals>
+                    </execution>
+                </executions>
+                <configuration>
+                    <excludes>
+                        <exclude>**/*.versionsBackup</exclude>
+                        <exclude>**/.idea/</exclude>
+                        <exclude>**/*.iml</exclude>
+                        <exclude>**/*.txt</exclude>
+                        <exclude>**/*.load</exclude>
+                        <exclude>**/*.flex</exclude>
+                        <exclude>**/*.fc</exclude>
+                        <exclude>**/*.properties</exclude>
+                        <exclude>**/*.sh</exclude>
+                        <exclude>**/*.bat</exclude>
+                        <exclude>**/*.md</exclude>
+                        <exclude>.git/</exclude>
+                        <exclude>.gitignore</exclude>
+                        <!-- ASF jenkins box puts the Maven repo in our root directory. -->
+                        <exclude>.repository/</exclude>
+                        <exclude>**/.settings/*</exclude>
+                        <exclude>**/.classpath</exclude>
+                        <exclude>**/.project</exclude>
+                        <exclude>**/target/**</exclude>
+                        <exclude>**/*.log</exclude>
+                        <exclude>CODE_OF_CONDUCT.md</exclude>
+                        <exclude>.codecov.yml</exclude>
+                        <exclude>.travis.yml</exclude>
+                        <exclude>PULL_REQUEST_TEMPLATE.md</exclude>
+                        <exclude>CONTRIBUTING.md</exclude>
+                        <exclude>README.md</exclude>
+                        <exclude>Jenkinsfile</exclude>
+                        <exclude>**/codestyle/*</exclude>
+                        <exclude>**/resources/META-INF/**</exclude>
+                        <exclude>.github/**</exclude>
+                        <exclude>compiler/**</exclude>
+                        <exclude>**/generated/**</exclude>
+                        <!-- exclude mockito extensions spi files -->
+                        <exclude>**/mockito-extensions/*</exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-release-plugin</artifactId>
+                <version>3.0.0-M1</version>
+                <configuration>
+                    <autoVersionSubmodules>true</autoVersionSubmodules>
+                    <useReleaseProfile>false</useReleaseProfile>
+                    <releaseProfiles>release</releaseProfiles>
+                    <goals>deploy</goals>
+                    <arguments>${arguments}</arguments>
+                </configuration>
+            </plugin>
+            <plugin>
                 <groupId>org.codehaus.mojo</groupId>
                 <artifactId>flatten-maven-plugin</artifactId>
                 <version>${maven_flatten_version}</version>
@@ -163,14 +396,281 @@
                 </executions>
             </plugin>
         </plugins>
+
+        <pluginManagement>
+            <plugins>
+                <!-- keep surefire and failsafe in sync -->
+                <plugin>
+                    <artifactId>maven-surefire-plugin</artifactId>
+                    <version>${maven_surefire_version}</version>
+                </plugin>
+                <!-- keep surefire and failsafe in sync -->
+                <plugin>
+                    <artifactId>maven-failsafe-plugin</artifactId>
+                    <version>2.22.2</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-clean-plugin</artifactId>
+                    <version>3.1.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.ops4j.pax.exam</groupId>
+                    <artifactId>maven-paxexam-plugin</artifactId>
+                    <version>1.2.4</version>
+                </plugin>
+                <plugin>
+                    <artifactId>maven-dependency-plugin</artifactId>
+                    <version>3.1.2</version>
+                </plugin>
+                <plugin>
+                    <!-- Do NOT upgrade -->
+                    <artifactId>maven-jxr-plugin</artifactId>
+                    <version>2.2</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.codehaus.mojo</groupId>
+                    <artifactId>build-helper-maven-plugin</artifactId>
+                    <version>3.2.0</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.fusesource.hawtjni</groupId>
+                    <artifactId>maven-hawtjni-plugin</artifactId>
+                    <version>1.15</version>
+                </plugin>
+                <plugin>
+                    <groupId>kr.motd.maven</groupId>
+                    <artifactId>exec-maven-plugin</artifactId>
+                    <version>1.0.0.Final</version>
+                </plugin>
+                <plugin>
+                    <groupId>org.apache.maven.plugins</groupId>
+                    <artifactId>maven-shade-plugin</artifactId>
+                    <version>3.2.4</version>
+                    <configuration>
+                        <createDependencyReducedPom>false</createDependencyReducedPom>
+                    </configuration>
+                </plugin>
+                <plugin>
+                    <groupId>org.eclipse.jetty</groupId>
+                    <artifactId>jetty-maven-plugin</artifactId>
+                    <version>${maven_jetty_version}</version>
+                </plugin>
+            </plugins>
+        </pluginManagement>
     </build>
 
     <profiles>
         <profile>
+            <id>snapshot-ci-deploy</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-enforcer-plugin</artifactId>
+                        <version>${maven_enforce_version}</version>
+                        <executions>
+                            <execution>
+                                <id>enforce-no-releases</id>
+                                <goals>
+                                    <goal>enforce</goal>
+                                </goals>
+                                <configuration>
+                                    <rules>
+                                        <requireSnapshotVersion>
+                                            <message>No Releases Allowed!</message>
+                                            <failWhenParentIsRelease>false</failWhenParentIsRelease>
+                                        </requireSnapshotVersion>
+                                    </rules>
+                                    <fail>true</fail>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>javadoc-lint</id>
+            <activation>
+                <jdk>[1.8,)</jdk>
+            </activation>
+            <properties>
+                <doclint>none</doclint>
+            </properties>
+        </profile>
+        <!-- jacoco: mvn validate -Pjacoco  -->
+        <profile>
+            <id>jacoco</id>
+            <properties>
+                <jacoco.skip>false</jacoco.skip>
+            </properties>
+        </profile>
+        <!-- check apache license: mvn validate -Prat  -->
+        <profile>
+            <id>rat</id>
+            <properties>
+                <rat.skip>false</rat.skip>
+            </properties>
+        </profile>
+        <!-- check code style: mvn validate -Pcheckstyle  -->
+        <profile>
+            <id>checkstyle</id>
+            <properties>
+                <checkstyle.skip>false</checkstyle.skip>
+                <checkstyle_unix.skip>false</checkstyle_unix.skip>
+            </properties>
+        </profile>
+        <profile>
+            <id>checkstyle_def</id>
+            <activation>
+                <jdk>[1.8,)</jdk>
+            </activation>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.apache.maven.plugins</groupId>
+                        <artifactId>maven-checkstyle-plugin</artifactId>
+                        <version>${maven_checkstyle_version}</version>
+                        <dependencies>
+                            <dependency>
+                                <groupId>com.puppycrawl.tools</groupId>
+                                <artifactId>checkstyle</artifactId>
+                                <version>8.41</version>
+                            </dependency>
+                            <dependency>
+                                <groupId>org.apache.dubbo</groupId>
+                                <artifactId>dubbo-build-tools</artifactId>
+                                <version>1.0.0</version>
+                            </dependency>
+                        </dependencies>
+                        <executions>
+                            <execution>
+                                <id>checkstyle-validation</id>
+                                <phase>validate</phase>
+                                <configuration>
+                                    <configLocation>../codestyle/checkstyle.xml</configLocation>
+                                    <suppressionsLocation>../codestyle/checkstyle-suppressions.xml</suppressionsLocation>
+                                    <encoding>UTF-8</encoding>
+                                    <consoleOutput>true</consoleOutput>
+                                    <failOnViolation>true</failOnViolation>
+                                    <skip>${checkstyle.skip}</skip>
+                                    <excludes>
+                                        **/generated/**/*,
+                                        **/target/**/*,
+                                    </excludes>
+                                </configuration>
+                                <goals>
+                                    <goal>check</goal>
+                                </goals>
+                            </execution>
+                            <execution>
+                                <id>checkstyle-unix-validation</id>
+                                <phase>validate</phase>
+                                <configuration>
+                                    <configLocation>../codestyle/checkstyle_unix.xml</configLocation>
+                                    <encoding>UTF-8</encoding>
+                                    <consoleOutput>true</consoleOutput>
+                                    <failOnViolation>true</failOnViolation>
+                                    <skip>${checkstyle_unix.skip}</skip>
+                                    <resourceExcludes>
+                                        **/target/**/*
+                                    </resourceExcludes>
+                                    <resourceExcludes>
+                                        **/generated/**/*
+                                    </resourceExcludes>
+                                </configuration>
+                                <goals>
+                                    <goal>check</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
+            <id>sources</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <artifactId>maven-source-plugin</artifactId>
+                        <version>${maven_source_version}</version>
+                        <executions>
+                            <execution>
+                                <id>attach-sources</id>
+                                <goals>
+                                    <goal>jar</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
+        <profile>
             <id>release</id>
+            <properties>
+                <log4j2_version>2.11.1</log4j2_version>
+                <jacoco.skip>false</jacoco.skip>
+            </properties>
             <build>
                 <plugins>
                     <plugin>
+                        <artifactId>maven-source-plugin</artifactId>
+                        <version>${maven_source_version}</version>
+                        <executions>
+                            <execution>
+                                <id>attach-sources</id>
+                                <goals>
+                                    <goal>jar</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <artifactId>maven-javadoc-plugin</artifactId>
+                        <version>${maven_javadoc_version}</version>
+                        <executions>
+                            <execution>
+                                <id>attach-javadoc</id>
+                                <goals>
+                                    <goal>jar</goal>
+                                    <goal>aggregate</goal>
+                                </goals>
+                                <configuration>
+                                    <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
+                                    <additionalDependencies>
+                                        <additionalDependency>
+                                            <groupId>org.apache.logging.log4j</groupId>
+                                            <artifactId>log4j-api</artifactId>
+                                            <version>${log4j2_version}</version>
+                                        </additionalDependency>
+                                        <additionalDependency>
+                                            <groupId>org.apache.logging.log4j</groupId>
+                                            <artifactId>log4j-core</artifactId>
+                                            <version>${log4j2_version}</version>
+                                        </additionalDependency>
+                                    </additionalDependencies>
+                                </configuration>
+                            </execution>
+                        </executions>
+                        <configuration>
+                            <show>public</show>
+                            <charset>UTF-8</charset>
+                            <encoding>UTF-8</encoding>
+                            <docencoding>UTF-8</docencoding>
+                            <links>
+                                <link>http://docs.oracle.com/javase/8/docs/api</link>
+                            </links>
+                            <doclint>none</doclint>
+                            <excludePackageNames>
+                                org.apache.dubbo.demo,org.apache.dubbo.demo.*,org.apache.dubbo.apidocs.examples.*
+                            </excludePackageNames>
+                            <doctitle>Apache Dubbo Extensions ${project.version} API</doctitle>
+                            <windowtitle>Apache Dubbo Extensions ${project.version} API</windowtitle>
+                        </configuration>
+                    </plugin>
+                    <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-gpg-plugin</artifactId>
                         <executions>
@@ -185,5 +685,43 @@
                 </plugins>
             </build>
         </profile>
+        <profile>
+            <id>licenseCheck</id>
+            <build>
+                <plugins>
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>license-maven-plugin</artifactId>
+                        <version>2.0.0</version>
+                        <executions>
+                            <execution>
+                                <id>license-check</id>
+                                <phase>generate-sources</phase>
+                                <goals>
+                                    <goal>add-third-party</goal>
+                                </goals>
+                                <configuration>
+                                    <includeOptional>false</includeOptional>
+                                    <useMissingFile>false</useMissingFile>
+                                    <failOnMissing>false</failOnMissing>
+                                    <licenseMerges>
+                                        <licenseMerge>Apache License, Version 2.0|The Apache Software License, Version
+                                            2.0|ASF 2.0|Apache 2|Apache-2.0|Apache 2.0 License|Apache 2.0|Apache License
+                                            v2.0|Apache License 2.0|The Apache License, Version 2.0|The Apache Software
+                                            License, Version 2.0
+                                        </licenseMerge>
+                                        <licenseMerge>The MIT License|MIT License</licenseMerge>
+                                        <licenseMerge>The 3-Clause BSD License|New BSD License|3-Clause BSD
+                                            License|BSD|3-Clause BSD License|The New BSD License
+                                        </licenseMerge>
+                                    </licenseMerges>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
     </profiles>
+
 </project>
diff --git a/dubbo-extensions-distribution/dubbo-bom/pom.xml b/dubbo-extensions-distribution/dubbo-bom/pom.xml
index a7ede71..e724137 100644
--- a/dubbo-extensions-distribution/dubbo-bom/pom.xml
+++ b/dubbo-extensions-distribution/dubbo-bom/pom.xml
@@ -21,9 +21,9 @@
 
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
 
     <artifactId>dubbo-extensions-bom</artifactId>
@@ -118,6 +118,13 @@
                 <version>${project.version}</version>
             </dependency>
 
+            <!-- Dubbo Mock Extensions -->
+            <dependency>
+                <groupId>org.apache.dubbo.extensions</groupId>
+                <artifactId>dubbo-mock-extensions</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+
         </dependencies>
     </dependencyManagement>
 
diff --git a/dubbo-extensions-distribution/pom.xml b/dubbo-extensions-distribution/pom.xml
index f317454..e4e511f 100644
--- a/dubbo-extensions-distribution/pom.xml
+++ b/dubbo-extensions-distribution/pom.xml
@@ -19,15 +19,19 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-extensions-distribution</artifactId>
     <packaging>pom</packaging>
+    <version>${revision}</version>
 
+    <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
+    </properties>
     <profiles>
         <profile>
             <id>install</id>
diff --git a/dubbo-filter-extensions/pom.xml b/dubbo-filter-extensions/pom.xml
index 5080dc4..abad354 100644
--- a/dubbo-filter-extensions/pom.xml
+++ b/dubbo-filter-extensions/pom.xml
@@ -20,12 +20,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-filter-extensions</artifactId>
-
+    <version>${revision}</version>
+    <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
+    </properties>
 </project>
diff --git a/dubbo-metadata-report-extensions/pom.xml b/dubbo-metadata-report-extensions/pom.xml
index de4a2c7..b613eb9 100644
--- a/dubbo-metadata-report-extensions/pom.xml
+++ b/dubbo-metadata-report-extensions/pom.xml
@@ -20,12 +20,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-metadata-report-extensions</artifactId>
-
+    <version>${revision}</version>
+    <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
+    </properties>
 </project>
diff --git a/dubbo-mock-extensions/pom.xml b/dubbo-mock-extensions/pom.xml
index c67169c..0bc280a 100644
--- a/dubbo-mock-extensions/pom.xml
+++ b/dubbo-mock-extensions/pom.xml
@@ -19,20 +19,22 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-mock-extensions</artifactId>
     <packaging>pom</packaging>
+    <version>${revision}</version>
     <modules>
         <module>dubbo-mock-api</module>
         <module>dubbo-mock-admin</module>
     </modules>
 
     <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
         <protobuf-java-format>1.2</protobuf-java-format>
         <mockito-version>1.9.5</mockito-version>
         <junit-version>4.11</junit-version>
diff --git a/dubbo-registry-extensions/pom.xml b/dubbo-registry-extensions/pom.xml
index 04cdd4b..1cb37d5 100644
--- a/dubbo-registry-extensions/pom.xml
+++ b/dubbo-registry-extensions/pom.xml
@@ -20,12 +20,15 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-registry-extensions</artifactId>
-
+    <version>${revision}</version>
+    <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
+    </properties>
 </project>
diff --git a/dubbo-remoting-extensions/pom.xml b/dubbo-remoting-extensions/pom.xml
index 3b65f1b..5b43729 100644
--- a/dubbo-remoting-extensions/pom.xml
+++ b/dubbo-remoting-extensions/pom.xml
@@ -20,14 +20,18 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-remoting-extensions</artifactId>
     <packaging>pom</packaging>
+    <version>${revision}</version>
+    <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
+    </properties>
     <modules>
         <module>dubbo-remoting-quic</module>
     </modules>
diff --git a/dubbo-rpc-extensions/pom.xml b/dubbo-rpc-extensions/pom.xml
index 11f796a..0a40163 100644
--- a/dubbo-rpc-extensions/pom.xml
+++ b/dubbo-rpc-extensions/pom.xml
@@ -20,16 +20,19 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <packaging>pom</packaging>
 
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>dubbo-rpc-extensions</artifactId>
-
+    <version>${revision}</version>
+    <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
+    </properties>
     <modules>
         <module>dubbo-rpc-native-thrift</module>
         <module>dubbo-rpc-http</module>
diff --git a/dubbo-serialization-extensions/dubbo-serialization-kryo/pom.xml b/dubbo-serialization-extensions/dubbo-serialization-kryo/pom.xml
index 61d1834..08e5011 100644
--- a/dubbo-serialization-extensions/dubbo-serialization-kryo/pom.xml
+++ b/dubbo-serialization-extensions/dubbo-serialization-kryo/pom.xml
@@ -29,6 +29,7 @@ limitations under the License.
     <description>The kryo serialization module of dubbo project</description>
     <properties>
         <skip_maven_deploy>false</skip_maven_deploy>
+        <dubbo-common-extensions-version>3.0.0-SNAPSHOT</dubbo-common-extensions-version>
     </properties>
     <dependencies>
         <dependency>
@@ -46,7 +47,7 @@ limitations under the License.
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-common-extensions</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>${dubbo-common-extensions-version}</version>
         </dependency>
     </dependencies>
 </project>
diff --git a/dubbo-serialization-extensions/dubbo-serialization-test/pom.xml b/dubbo-serialization-extensions/dubbo-serialization-test/pom.xml
index b638f0e..7323d37 100644
--- a/dubbo-serialization-extensions/dubbo-serialization-test/pom.xml
+++ b/dubbo-serialization-extensions/dubbo-serialization-test/pom.xml
@@ -36,32 +36,32 @@
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-protostuff</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>${revision}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-protobuf</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>${revision}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-kryo</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>${revision}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-avro</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>${revision}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-fastjson</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>${revision}</version>
         </dependency>
         <dependency>
             <groupId>org.apache.dubbo.extensions</groupId>
             <artifactId>dubbo-serialization-fst</artifactId>
-            <version>1.0.0-SNAPSHOT</version>
+            <version>${revision}</version>
         </dependency>      
         <dependency>
             <groupId>org.apache.dubbo</groupId>
diff --git a/dubbo-serialization-extensions/pom.xml b/dubbo-serialization-extensions/pom.xml
index 50cf0cc..b9b9590 100644
--- a/dubbo-serialization-extensions/pom.xml
+++ b/dubbo-serialization-extensions/pom.xml
@@ -20,14 +20,17 @@
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <parent>
         <groupId>org.apache.dubbo.extensions</groupId>
-        <artifactId>extensions-parent</artifactId>
-        <version>${revision}</version>
-        <relativePath>../pom.xml</relativePath>
+        <artifactId>dubbo-extensions-dependencies-bom</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <relativePath>../dubbo-extensions-dependencies-bom/pom.xml</relativePath>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>pom</packaging>
     <artifactId>dubbo-serialization-extensions</artifactId>
-
+    <version>${revision}</version>
+    <properties>
+        <revision>3.0.0-SNAPSHOT</revision>
+    </properties>
     <modules>
         <module>dubbo-serialization-protostuff</module>
         <module>dubbo-serialization-protobuf</module>
diff --git a/pom.xml b/pom.xml
index 397886e..505e368 100644
--- a/pom.xml
+++ b/pom.xml
@@ -26,7 +26,7 @@
 
     <groupId>org.apache.dubbo.extensions</groupId>
     <artifactId>extensions-parent</artifactId>
-    <version>${revision}</version>
+    <version>1.0.0-SNAPSHOT</version>
     <packaging>pom</packaging>
 
     <licenses>
@@ -95,605 +95,4 @@
         <module>dubbo-mock-extensions</module>
     </modules>
 
-    <properties>
-        <revision>1.0.0-SNAPSHOT</revision>
-        <!-- Test libs -->
-        <junit_jupiter_version>5.6.0</junit_jupiter_version>
-        <hazelcast_version>3.11.1</hazelcast_version>
-        <hamcrest_version>2.2</hamcrest_version>
-        <hibernate_validator_version>5.2.4.Final</hibernate_validator_version>
-        <el_api_version>2.2.4</el_api_version>
-        <jaxb_api_version>2.2.7</jaxb_api_version>
-        <cglib_version>2.2</cglib_version>
-        <mockito_version>3.8.0</mockito_version>
-        <!-- for maven compiler plugin -->
-        <java_source_version>1.8</java_source_version>
-        <java_target_version>1.8</java_target_version>
-        <file_encoding>UTF-8</file_encoding>
-        <!-- Build args -->
-        <argline>-server -Xms256m -Xmx512m -Dfile.encoding=UTF-8
-            -Djava.net.preferIPv4Stack=true -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=128m
-        </argline>
-
-        <maven_jar_version>3.2.0</maven_jar_version>
-        <maven_surefire_version>2.22.2</maven_surefire_version>
-        <maven_deploy_version>2.8.2</maven_deploy_version>
-        <maven_compiler_version>3.8.1</maven_compiler_version>
-        <maven_source_version>3.2.1</maven_source_version>
-        <maven_javadoc_version>3.2.0</maven_javadoc_version>
-        <maven_checkstyle_version>3.1.2</maven_checkstyle_version>
-        <maven_jacoco_version>0.8.6</maven_jacoco_version>
-        <maven_flatten_version>1.2.5</maven_flatten_version>
-        <maven_enforce_version>3.0.0-M3</maven_enforce_version>
-        <apache-rat-plugin.version>0.13</apache-rat-plugin.version>
-        <skip_maven_deploy>false</skip_maven_deploy>
-        <checkstyle.skip>true</checkstyle.skip>
-        <checkstyle_unix.skip>true</checkstyle_unix.skip>
-        <rat.skip>true</rat.skip>
-        <jacoco.skip>false</jacoco.skip>
-    </properties>
-
-    <dependencyManagement>
-        <dependencies>
-            <dependency>
-                <groupId>org.apache.dubbo.extensions</groupId>
-                <artifactId>dubbo-extensions-dependencies-bom</artifactId>
-                <version>${project.version}</version>
-                <type>pom</type>
-                <scope>import</scope>
-            </dependency>
-        </dependencies>
-    </dependencyManagement>
-
-    <dependencies>
-        <!--JUnit Jupiter Engine to depend on the JUnit5 engine and JUnit 5 API -->
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-engine</artifactId>
-            <version>${junit_jupiter_version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.junit.jupiter</groupId>
-            <artifactId>junit-jupiter-params</artifactId>
-            <version>${junit_jupiter_version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.hamcrest</groupId>
-            <artifactId>hamcrest</artifactId>
-            <version>${hamcrest_version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>org.mockito</groupId>
-            <artifactId>mockito-core</artifactId>
-            <version>${mockito_version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
-            <groupId>cglib</groupId>
-            <artifactId>cglib-nodep</artifactId>
-            <version>${cglib_version}</version>
-            <scope>test</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <!-- Used for packaging NOTICE & LICENSE to each sub-module jar-->
-        <resources>
-            <resource>
-                <directory>src/main/resources</directory>
-                <filtering>false</filtering>
-            </resource>
-            <resource>
-                <directory>${maven.multiModuleProjectDirectory}</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>
-                <artifactId>maven-jar-plugin</artifactId>
-                <version>${maven_jar_version}</version>
-                <configuration>
-                    <archive>
-                        <addMavenDescriptor>true</addMavenDescriptor>
-                        <index>true</index>
-                        <manifest>
-                            <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-                            <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-                        </manifest>
-                        <manifestEntries>
-                            <Specification-Version>${project.version}</Specification-Version>
-                            <Implementation-Version>${project.version}</Implementation-Version>
-                        </manifestEntries>
-                    </archive>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.jacoco</groupId>
-                <artifactId>jacoco-maven-plugin</artifactId>
-                <version>${maven_jacoco_version}</version>
-                <executions>
-                    <execution>
-                        <id>jacoco-initialize</id>
-                        <goals>
-                            <goal>prepare-agent</goal>
-                        </goals>
-                        <configuration>
-                            <propertyName>jacocoArgLine</propertyName>
-                        </configuration>
-                    </execution>
-                    <execution>
-                        <id>report-aggregate</id>
-                        <phase>verify</phase>
-                        <goals>
-                            <goal>report</goal>
-                        </goals>
-                        <configuration>
-                            <includes>
-                                <include>target/classes/**/*</include>
-                                <include>target/classes/**</include>
-                                <include>**/*</include>
-                            </includes>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-surefire-plugin</artifactId>
-                <configuration>
-                    <useSystemClassLoader>true</useSystemClassLoader>
-                    <forkMode>once</forkMode>
-                    <argLine>${argline} ${jacocoArgLine}</argLine>
-                    <systemProperties>
-                        <!-- common shared -->
-                    </systemProperties>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-deploy-plugin</artifactId>
-                <version>${maven_deploy_version}</version>
-                <configuration>
-                    <skip>${skip_maven_deploy}</skip>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-compiler-plugin</artifactId>
-                <version>${maven_compiler_version}</version>
-                <configuration>
-                    <compilerArgs>
-                        <compilerArg>-proc:none</compilerArg>
-                        <compilerArg>-parameters</compilerArg>
-                    </compilerArgs>
-                    <fork>true</fork>
-                    <source>${java_source_version}</source>
-                    <target>${java_target_version}</target>
-                    <encoding>${file_encoding}</encoding>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.rat</groupId>
-                <artifactId>apache-rat-plugin</artifactId>
-                <version>${apache-rat-plugin.version}</version>
-                <executions>
-                    <execution>
-                        <id>rat-validate</id>
-                        <phase>validate</phase>
-                        <goals>
-                            <goal>check</goal>
-                        </goals>
-                    </execution>
-                </executions>
-                <configuration>
-                    <excludes>
-                        <exclude>**/*.versionsBackup</exclude>
-                        <exclude>**/.idea/</exclude>
-                        <exclude>**/*.iml</exclude>
-                        <exclude>**/*.txt</exclude>
-                        <exclude>**/*.load</exclude>
-                        <exclude>**/*.flex</exclude>
-                        <exclude>**/*.fc</exclude>
-                        <exclude>**/*.properties</exclude>
-                        <exclude>**/*.sh</exclude>
-                        <exclude>**/*.bat</exclude>
-                        <exclude>**/*.md</exclude>
-                        <exclude>.git/</exclude>
-                        <exclude>.gitignore</exclude>
-                        <!-- ASF jenkins box puts the Maven repo in our root directory. -->
-                        <exclude>.repository/</exclude>
-                        <exclude>**/.settings/*</exclude>
-                        <exclude>**/.classpath</exclude>
-                        <exclude>**/.project</exclude>
-                        <exclude>**/target/**</exclude>
-                        <exclude>**/*.log</exclude>
-                        <exclude>CODE_OF_CONDUCT.md</exclude>
-                        <exclude>.codecov.yml</exclude>
-                        <exclude>.travis.yml</exclude>
-                        <exclude>PULL_REQUEST_TEMPLATE.md</exclude>
-                        <exclude>CONTRIBUTING.md</exclude>
-                        <exclude>README.md</exclude>
-                        <exclude>Jenkinsfile</exclude>
-                        <exclude>**/codestyle/*</exclude>
-                        <exclude>**/resources/META-INF/**</exclude>
-                        <exclude>.github/**</exclude>
-                        <exclude>compiler/**</exclude>
-                        <exclude>**/generated/**</exclude>
-                        <!-- exclude mockito extensions spi files -->
-                        <exclude>**/mockito-extensions/*</exclude>
-                    </excludes>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-release-plugin</artifactId>
-                <version>3.0.0-M1</version>
-                <configuration>
-                    <autoVersionSubmodules>true</autoVersionSubmodules>
-                    <useReleaseProfile>false</useReleaseProfile>
-                    <releaseProfiles>release</releaseProfiles>
-                    <goals>deploy</goals>
-                    <arguments>${arguments}</arguments>
-                </configuration>
-            </plugin>
-            <plugin>
-                <groupId>org.codehaus.mojo</groupId>
-                <artifactId>flatten-maven-plugin</artifactId>
-                <version>${maven_flatten_version}</version>
-                <configuration>
-                    <updatePomFile>true</updatePomFile>
-                    <flattenMode>resolveCiFriendliesOnly</flattenMode>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>flatten</id>
-                        <phase>process-resources</phase>
-                        <goals>
-                            <goal>flatten</goal>
-                        </goals>
-                    </execution>
-                    <execution>
-                        <id>flatten.clean</id>
-                        <phase>clean</phase>
-                        <goals>
-                            <goal>clean</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-
-        <pluginManagement>
-            <plugins>
-                <!-- keep surefire and failsafe in sync -->
-                <plugin>
-                    <artifactId>maven-surefire-plugin</artifactId>
-                    <version>${maven_surefire_version}</version>
-                </plugin>
-                <!-- keep surefire and failsafe in sync -->
-                <plugin>
-                    <artifactId>maven-failsafe-plugin</artifactId>
-                    <version>2.22.2</version>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-clean-plugin</artifactId>
-                    <version>3.1.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.ops4j.pax.exam</groupId>
-                    <artifactId>maven-paxexam-plugin</artifactId>
-                    <version>1.2.4</version>
-                </plugin>
-                <plugin>
-                    <artifactId>maven-dependency-plugin</artifactId>
-                    <version>3.1.2</version>
-                </plugin>
-                <plugin>
-                    <!-- Do NOT upgrade -->
-                    <artifactId>maven-jxr-plugin</artifactId>
-                    <version>2.2</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.codehaus.mojo</groupId>
-                    <artifactId>build-helper-maven-plugin</artifactId>
-                    <version>3.2.0</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.fusesource.hawtjni</groupId>
-                    <artifactId>maven-hawtjni-plugin</artifactId>
-                    <version>1.15</version>
-                </plugin>
-                <plugin>
-                    <groupId>kr.motd.maven</groupId>
-                    <artifactId>exec-maven-plugin</artifactId>
-                    <version>1.0.0.Final</version>
-                </plugin>
-                <plugin>
-                    <groupId>org.apache.maven.plugins</groupId>
-                    <artifactId>maven-shade-plugin</artifactId>
-                    <version>3.2.4</version>
-                    <configuration>
-                        <createDependencyReducedPom>false</createDependencyReducedPom>
-                    </configuration>
-                </plugin>
-                <plugin>
-                    <groupId>org.eclipse.jetty</groupId>
-                    <artifactId>jetty-maven-plugin</artifactId>
-                    <version>${maven_jetty_version}</version>
-                </plugin>
-            </plugins>
-        </pluginManagement>
-    </build>
-
-    <profiles>
-        <profile>
-            <id>snapshot-ci-deploy</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-enforcer-plugin</artifactId>
-                        <version>${maven_enforce_version}</version>
-                        <executions>
-                            <execution>
-                                <id>enforce-no-releases</id>
-                                <goals>
-                                    <goal>enforce</goal>
-                                </goals>
-                                <configuration>
-                                    <rules>
-                                        <requireSnapshotVersion>
-                                            <message>No Releases Allowed!</message>
-                                            <failWhenParentIsRelease>false</failWhenParentIsRelease>
-                                        </requireSnapshotVersion>
-                                    </rules>
-                                    <fail>true</fail>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>javadoc-lint</id>
-            <activation>
-                <jdk>[1.8,)</jdk>
-            </activation>
-            <properties>
-                <doclint>none</doclint>
-            </properties>
-        </profile>
-        <!-- jacoco: mvn validate -Pjacoco  -->
-        <profile>
-            <id>jacoco</id>
-            <properties>
-                <jacoco.skip>false</jacoco.skip>
-            </properties>
-        </profile>
-        <!-- check apache license: mvn validate -Prat  -->
-        <profile>
-            <id>rat</id>
-            <properties>
-                <rat.skip>false</rat.skip>
-            </properties>
-        </profile>
-        <!-- check code style: mvn validate -Pcheckstyle  -->
-        <profile>
-            <id>checkstyle</id>
-            <properties>
-                <checkstyle.skip>false</checkstyle.skip>
-                <checkstyle_unix.skip>false</checkstyle_unix.skip>
-            </properties>
-        </profile>
-        <profile>
-            <id>checkstyle_def</id>
-            <activation>
-                <jdk>[1.8,)</jdk>
-            </activation>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-checkstyle-plugin</artifactId>
-                        <version>${maven_checkstyle_version}</version>
-                        <dependencies>
-                            <dependency>
-                                <groupId>com.puppycrawl.tools</groupId>
-                                <artifactId>checkstyle</artifactId>
-                                <version>8.41</version>
-                            </dependency>
-                            <dependency>
-                                <groupId>org.apache.dubbo</groupId>
-                                <artifactId>dubbo-build-tools</artifactId>
-                                <version>1.0.0</version>
-                            </dependency>
-                        </dependencies>
-                        <executions>
-                            <execution>
-                                <id>checkstyle-validation</id>
-                                <phase>validate</phase>
-                                <configuration>
-                                    <configLocation>codestyle/checkstyle.xml</configLocation>
-                                    <suppressionsLocation>codestyle/checkstyle-suppressions.xml</suppressionsLocation>
-                                    <encoding>UTF-8</encoding>
-                                    <consoleOutput>true</consoleOutput>
-                                    <failOnViolation>true</failOnViolation>
-                                    <skip>${checkstyle.skip}</skip>
-                                    <excludes>
-                                        **/generated/**/*,
-                                        **/target/**/*,
-                                    </excludes>
-                                </configuration>
-                                <goals>
-                                    <goal>check</goal>
-                                </goals>
-                            </execution>
-                            <execution>
-                                <id>checkstyle-unix-validation</id>
-                                <phase>validate</phase>
-                                <configuration>
-                                    <configLocation>codestyle/checkstyle_unix.xml</configLocation>
-                                    <encoding>UTF-8</encoding>
-                                    <consoleOutput>true</consoleOutput>
-                                    <failOnViolation>true</failOnViolation>
-                                    <skip>${checkstyle_unix.skip}</skip>
-                                    <resourceExcludes>
-                                        **/target/**/*
-                                    </resourceExcludes>
-                                    <resourceExcludes>
-                                        **/generated/**/*
-                                    </resourceExcludes>
-                                </configuration>
-                                <goals>
-                                    <goal>check</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>sources</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-source-plugin</artifactId>
-                        <version>${maven_source_version}</version>
-                        <executions>
-                            <execution>
-                                <id>attach-sources</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>release</id>
-            <properties>
-                <log4j2_version>2.11.1</log4j2_version>
-                <jacoco.skip>false</jacoco.skip>
-            </properties>
-            <build>
-                <plugins>
-                    <plugin>
-                        <artifactId>maven-source-plugin</artifactId>
-                        <version>${maven_source_version}</version>
-                        <executions>
-                            <execution>
-                                <id>attach-sources</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                    <plugin>
-                        <artifactId>maven-javadoc-plugin</artifactId>
-                        <version>${maven_javadoc_version}</version>
-                        <executions>
-                            <execution>
-                                <id>attach-javadoc</id>
-                                <goals>
-                                    <goal>jar</goal>
-                                    <goal>aggregate</goal>
-                                </goals>
-                                <configuration>
-                                    <javadocExecutable>${java.home}/bin/javadoc</javadocExecutable>
-                                    <additionalDependencies>
-                                        <additionalDependency>
-                                            <groupId>org.apache.logging.log4j</groupId>
-                                            <artifactId>log4j-api</artifactId>
-                                            <version>${log4j2_version}</version>
-                                        </additionalDependency>
-                                        <additionalDependency>
-                                            <groupId>org.apache.logging.log4j</groupId>
-                                            <artifactId>log4j-core</artifactId>
-                                            <version>${log4j2_version}</version>
-                                        </additionalDependency>
-                                    </additionalDependencies>
-                                </configuration>
-                            </execution>
-                        </executions>
-                        <configuration>
-                            <show>public</show>
-                            <charset>UTF-8</charset>
-                            <encoding>UTF-8</encoding>
-                            <docencoding>UTF-8</docencoding>
-                            <links>
-                                <link>http://docs.oracle.com/javase/8/docs/api</link>
-                            </links>
-                            <doclint>none</doclint>
-                            <excludePackageNames>
-                                org.apache.dubbo.demo,org.apache.dubbo.demo.*,org.apache.dubbo.apidocs.examples.*
-                            </excludePackageNames>
-                            <doctitle>Apache Dubbo Extensions ${project.version} API</doctitle>
-                            <windowtitle>Apache Dubbo Extensions ${project.version} API</windowtitle>
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-gpg-plugin</artifactId>
-                        <executions>
-                            <execution>
-                                <phase>verify</phase>
-                                <goals>
-                                    <goal>sign</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-        <profile>
-            <id>licenseCheck</id>
-            <build>
-                <plugins>
-                    <plugin>
-                        <groupId>org.codehaus.mojo</groupId>
-                        <artifactId>license-maven-plugin</artifactId>
-                        <version>2.0.0</version>
-                        <executions>
-                            <execution>
-                                <id>license-check</id>
-                                <phase>generate-sources</phase>
-                                <goals>
-                                    <goal>add-third-party</goal>
-                                </goals>
-                                <configuration>
-                                    <includeOptional>false</includeOptional>
-                                    <useMissingFile>false</useMissingFile>
-                                    <failOnMissing>false</failOnMissing>
-                                    <licenseMerges>
-                                        <licenseMerge>Apache License, Version 2.0|The Apache Software License, Version
-                                            2.0|ASF 2.0|Apache 2|Apache-2.0|Apache 2.0 License|Apache 2.0|Apache License v2.0|Apache License 2.0|The Apache License, Version 2.0|The Apache Software License, Version 2.0
-                                        </licenseMerge>
-                                        <licenseMerge>The MIT License|MIT License</licenseMerge>
-                                        <licenseMerge>The 3-Clause BSD License|New BSD License|3-Clause BSD
-                                            License|BSD|3-Clause BSD License|The New BSD License
-                                        </licenseMerge>
-                                    </licenseMerges>
-                                </configuration>
-                            </execution>
-                        </executions>
-                    </plugin>
-                </plugins>
-            </build>
-        </profile>
-    </profiles>
 </project>