You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by GitBox <gi...@apache.org> on 2018/09/24 13:03:59 UTC

[GitHub] wu-sheng closed pull request #1699: Add Undertow 2.x plugin

wu-sheng closed pull request #1699: Add Undertow 2.x plugin
URL: https://github.com/apache/incubator-skywalking/pull/1699
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/CHANGES.md b/CHANGES.md
index 147900361..ccaa281f1 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -2,7 +2,23 @@ Changes by Version
 ==================
 Release Notes.
 
-5.0.0-RC
+5.0.0-GA
+------------------
+
+#### Agent Changes
+  - Add several package names ignore in agent settings. Classes in these packages would be enhanced, even plugin declared.
+  - Fix wrong class names of Motan plugin, not a feature related issue, just naming.
+
+#### Collector Changes
+  - Make buffer file handler close more safety.
+  - Fix NPE in AlarmService
+
+#### Documents
+  - Fix compiling doc link.
+  - Update new live demo address.
+
+
+5.0.0-RC2
 ------------------
 
 #### Agent Changes
@@ -38,6 +54,8 @@ Release Notes.
   - Sync the Chinese documents.
   - Add OpenAPM badge.
   - Add icon/font documents to NOTICE files.
+  
+[Issues and Pull requests](https://github.com/apache/incubator-skywalking/milestone/27?closed=1)
 
 
 5.0.0-beta2
@@ -102,7 +120,7 @@ Release Notes.
   - Update UI licenses.
   - Add incubating sections in doc.
 
-[Issues and Pull requests](https://github.com/apache/incubator-skywalking/milestone/28)
+[Issues and Pull requests](https://github.com/apache/incubator-skywalking/milestone/28?closed=1)
   
 5.0.0-beta
 ------------------
diff --git a/LICENSE b/LICENSE
index 8ae4ae55a..477918138 100644
--- a/LICENSE
+++ b/LICENSE
@@ -200,12 +200,20 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 
-   =======================================================================
-   Apache SkyWalking Subcomponents:
+=======================================================================
+Apache SkyWalking Subcomponents:
 
-   The Apache SkyWalking project contains subcomponents with separate copyright
-   notices and license terms. Your use of the source code for the these
-   subcomponents is subject to the terms and conditions of the following
-   licenses.
+The Apache SkyWalking project contains subcomponents with separate copyright
+notices and license terms. Your use of the source code for the these
+subcomponents is subject to the terms and conditions of the following
+licenses.
+
+
+========================================================================
+MIT licenses
+========================================================================
+
+The following components are provided under the MIT License. See project link for details.
+The text of each license is also included at licenses/LICENSE-[project].txt.
 
    iconfont(from antd): https://github.com/ant-design/antd-init/tree/master/examples/local-iconfont   MIT
diff --git a/NOTICE b/NOTICE
index a442344d6..a1b74dd32 100644
--- a/NOTICE
+++ b/NOTICE
@@ -3,9 +3,3 @@ Copyright 2017-2018 The Apache Software Foundation
 
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
-
-This product bundles icons/fonts in skywalking-ui/public/font/iconfont folder
-from the ant-design project,
-https://github.com/ant-design/antd-init/tree/master/examples/local-iconfont
-Licensed under the MIT license, confirmed by ant-design team member.
-https://github.com/ant-design/ant-design/issues/10243
\ No newline at end of file
diff --git a/README.md b/README.md
index 00d9df9c3..f56c9087f 100644
--- a/README.md
+++ b/README.md
@@ -58,7 +58,7 @@ After SkyWalking 5.0.0-beta2 released, all core features have been provided. For
 This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior to wusheng@apache.org.
 
 # Live Demo
-- Host in Beijing. [goto](http://49.4.12.44:8080/)
+- Host in Beijing. [goto](http://106.75.237.45:8080/)
   - Username: admin
   - Password: admin
 
@@ -69,7 +69,7 @@ This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDU
 - [See all screenshots](/docs/Screenshots.md)
 
 # Compiling project
-Follow this [document](https://github.com/apache/incubator-skywalking/blob/master/docs/en/How-to-build.md).
+Follow this [document](docs/en/How-to-build.md).
 
 # Contact Us
 * Submit an issue
diff --git a/README_ZH.md b/README_ZH.md
index 5f265ce09..cc9c2d743 100644
--- a/README_ZH.md
+++ b/README_ZH.md
@@ -54,7 +54,7 @@ This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDU
 
 
 # Live Demo
-- 北京服务器. [前往](http://49.4.12.44:8080/)
+- 北京服务器. [前往](http://106.75.237.45:8080/)
   - 用户名: admin
   - 密码: admin
 
@@ -65,7 +65,7 @@ This project adheres to the Contributor Covenant [code of conduct](CODE_OF_CONDU
 - [查看所有系统截图](/docs/Screenshots.md)
 
 # Compiling project
-查看[编译指南](https://github.com/apache/incubator-skywalking/blob/master/docs/cn/How-to-build-CN.md)
+查看[编译指南](docs/cn/How-to-build-CN.md)
 
 # Contact Us
 * 直接提交Issue
diff --git a/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml b/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml
index 88820b978..ee016d631 100644
--- a/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-log4j-1.x/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-application-toolkit</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml b/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml
index a417d9e07..d3aa9e68a 100644
--- a/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-log4j-2.x/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-application-toolkit</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml b/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml
index df9ef86ab..78544833a 100644
--- a/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-logback-1.x/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-application-toolkit</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-application-toolkit/apm-toolkit-opentracing/pom.xml b/apm-application-toolkit/apm-toolkit-opentracing/pom.xml
index acaf1622a..4f197ff84 100644
--- a/apm-application-toolkit/apm-toolkit-opentracing/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-opentracing/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-application-toolkit</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-application-toolkit/apm-toolkit-trace/pom.xml b/apm-application-toolkit/apm-toolkit-trace/pom.xml
index 4aa2acee1..391b9efee 100644
--- a/apm-application-toolkit/apm-toolkit-trace/pom.xml
+++ b/apm-application-toolkit/apm-toolkit-trace/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-application-toolkit</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-application-toolkit/pom.xml b/apm-application-toolkit/pom.xml
index 602622fff..2e9c0a170 100644
--- a/apm-application-toolkit/pom.xml
+++ b/apm-application-toolkit/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <artifactId>apm-application-toolkit</artifactId>
diff --git a/apm-checkstyle/pom.xml b/apm-checkstyle/pom.xml
index 8f9f92693..08afc70aa 100644
--- a/apm-checkstyle/pom.xml
+++ b/apm-checkstyle/pom.xml
@@ -27,7 +27,7 @@
 
     <groupId>org.apache.skywalking</groupId>
     <artifactId>apm-checkstyle</artifactId>
-    <version>5.0.0-RC-SNAPSHOT</version>
+    <version>5.0.0-GA-SNAPSHOT</version>
     <description>Module to hold Checkstyle for SkyWalking.</description>
 
     <properties>
diff --git a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-define/pom.xml b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-define/pom.xml
index da8a55cfe..d89ee89cc 100644
--- a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-define/pom.xml
+++ b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>agent-grpc</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/pom.xml b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/pom.xml
index 8ec04729c..e601fc67d 100644
--- a/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/pom.xml
+++ b/apm-collector/apm-collector-agent/agent-grpc/agent-grpc-provider/pom.xml
@@ -21,15 +21,23 @@
     <parent>
         <artifactId>agent-grpc</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>agent-grpc-provider</artifactId>
     <properties>
-        <grpc.version>1.10.0</grpc.version>
+        <grpc.version>1.14.0</grpc.version>
+        <guava.version>20.0</guava.version>
     </properties>
-
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>com.google.guava</groupId>
+                <artifactId>guava</artifactId>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
     <dependencies>
         <dependency>
             <groupId>org.apache.skywalking</groupId>
diff --git a/apm-collector/apm-collector-agent/agent-grpc/pom.xml b/apm-collector/apm-collector-agent/agent-grpc/pom.xml
index 4e1490e3f..0f2939f69 100644
--- a/apm-collector/apm-collector-agent/agent-grpc/pom.xml
+++ b/apm-collector/apm-collector-agent/agent-grpc/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-agent</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-agent/agent-jetty/agent-jetty-define/pom.xml b/apm-collector/apm-collector-agent/agent-jetty/agent-jetty-define/pom.xml
index 106bb02c2..c5e4f2fe2 100644
--- a/apm-collector/apm-collector-agent/agent-jetty/agent-jetty-define/pom.xml
+++ b/apm-collector/apm-collector-agent/agent-jetty/agent-jetty-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>agent-jetty</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-agent/agent-jetty/agent-jetty-provider/pom.xml b/apm-collector/apm-collector-agent/agent-jetty/agent-jetty-provider/pom.xml
index fbaa77c35..6cf21066d 100644
--- a/apm-collector/apm-collector-agent/agent-jetty/agent-jetty-provider/pom.xml
+++ b/apm-collector/apm-collector-agent/agent-jetty/agent-jetty-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>agent-jetty</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-agent/agent-jetty/pom.xml b/apm-collector/apm-collector-agent/agent-jetty/pom.xml
index 72b3963c2..f7d03feec 100644
--- a/apm-collector/apm-collector-agent/agent-jetty/pom.xml
+++ b/apm-collector/apm-collector-agent/agent-jetty/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-agent</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-agent/pom.xml b/apm-collector/apm-collector-agent/pom.xml
index 89ca6227e..87a0cd84d 100644
--- a/apm-collector/apm-collector-agent/pom.xml
+++ b/apm-collector/apm-collector-agent/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-define/pom.xml b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-define/pom.xml
index f403a2165..1a9cf843f 100644
--- a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-define/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-alarm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/pom.xml b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/pom.xml
index 9bf1a1e2d..479a6727a 100644
--- a/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-alarm/alarm-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-alarm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-alarm/pom.xml b/apm-collector/apm-collector-analysis/analysis-alarm/pom.xml
index f34432bbb..aac275b84 100644
--- a/apm-collector/apm-collector-analysis/analysis-alarm/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-alarm/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-analysis</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-baseline/baseline-computing-define/pom.xml b/apm-collector/apm-collector-analysis/analysis-baseline/baseline-computing-define/pom.xml
index 7469dfb45..4684d5f9b 100644
--- a/apm-collector/apm-collector-analysis/analysis-baseline/baseline-computing-define/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-baseline/baseline-computing-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-baseline</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-baseline/baseline-computing-provider/pom.xml b/apm-collector/apm-collector-analysis/analysis-baseline/baseline-computing-provider/pom.xml
index c7761ac35..9dd954eb2 100644
--- a/apm-collector/apm-collector-analysis/analysis-baseline/baseline-computing-provider/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-baseline/baseline-computing-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-baseline</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-baseline/pom.xml b/apm-collector/apm-collector-analysis/analysis-baseline/pom.xml
index b560e3d53..6159fee67 100644
--- a/apm-collector/apm-collector-analysis/analysis-baseline/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-baseline/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-analysis</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-jvm/jvm-define/pom.xml b/apm-collector/apm-collector-analysis/analysis-jvm/jvm-define/pom.xml
index 5e5a14142..cb6bcaaf1 100644
--- a/apm-collector/apm-collector-analysis/analysis-jvm/jvm-define/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-jvm/jvm-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-jvm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-jvm/jvm-provider/pom.xml b/apm-collector/apm-collector-analysis/analysis-jvm/jvm-provider/pom.xml
index 847daf4e7..8a26952ef 100644
--- a/apm-collector/apm-collector-analysis/analysis-jvm/jvm-provider/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-jvm/jvm-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-jvm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-jvm/pom.xml b/apm-collector/apm-collector-analysis/analysis-jvm/pom.xml
index 2165fef36..2fea02652 100644
--- a/apm-collector/apm-collector-analysis/analysis-jvm/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-jvm/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-analysis</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-define/pom.xml b/apm-collector/apm-collector-analysis/analysis-metric/metric-define/pom.xml
index e40380a30..2dabbd106 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/metric-define/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-metric</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/pom.xml b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/pom.xml
index c10265d3c..22bd98448 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-metric/metric-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-metric</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-metric/pom.xml b/apm-collector/apm-collector-analysis/analysis-metric/pom.xml
index cf947b25e..57b39ef45 100644
--- a/apm-collector/apm-collector-analysis/analysis-metric/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-metric/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-analysis</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-register/pom.xml b/apm-collector/apm-collector-analysis/analysis-register/pom.xml
index bcf9081be..d9363c1e4 100644
--- a/apm-collector/apm-collector-analysis/analysis-register/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-register/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-analysis</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-register/register-define/pom.xml b/apm-collector/apm-collector-analysis/analysis-register/register-define/pom.xml
index 05bdfb34a..a48485c60 100644
--- a/apm-collector/apm-collector-analysis/analysis-register/register-define/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-register/register-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-register</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-register/register-provider/pom.xml b/apm-collector/apm-collector-analysis/analysis-register/register-provider/pom.xml
index 6cc2fb047..6334cf491 100644
--- a/apm-collector/apm-collector-analysis/analysis-register/register-provider/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-register/register-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-register</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/pom.xml b/apm-collector/apm-collector-analysis/analysis-segment-parser/pom.xml
index e6efc9d9e..4dc1d7293 100644
--- a/apm-collector/apm-collector-analysis/analysis-segment-parser/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-analysis</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/pom.xml b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/pom.xml
index 3b334a1f2..b6a4ae49e 100644
--- a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-segment-parser</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/pom.xml b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/pom.xml
index 02ba6898c..13e54cc45 100644
--- a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>analysis-segment-parser</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/buffer/SegmentBufferReader.java b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/buffer/SegmentBufferReader.java
index d1ce1c4e6..965aba857 100644
--- a/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/buffer/SegmentBufferReader.java
+++ b/apm-collector/apm-collector-analysis/analysis-segment-parser/segment-parser-provider/src/main/java/org/apache/skywalking/apm/collector/analysis/segment/parser/provider/buffer/SegmentBufferReader.java
@@ -19,6 +19,7 @@
 package org.apache.skywalking.apm.collector.analysis.segment.parser.provider.buffer;
 
 import com.google.protobuf.CodedOutputStream;
+
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FilenameFilter;
@@ -26,6 +27,7 @@
 import java.io.InputStream;
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
+
 import org.apache.skywalking.apm.collector.analysis.segment.parser.define.service.ISegmentParseService;
 import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.SegmentParse;
 import org.apache.skywalking.apm.collector.analysis.segment.parser.provider.parser.SegmentParserListenerManager;
@@ -148,13 +150,20 @@ private boolean read(File readFile, long readFileOffset) {
                 OffsetManager.INSTANCE.setReadOffset(readFileOffset);
             }
 
-            inputStream.close();
             if (!writeFileName.equals(readFile.getName())) {
                 readFile.delete();
             }
         } catch (IOException e) {
             logger.error(e.getMessage(), e);
             return false;
+        } finally {
+            if (inputStream != null) {
+                try {
+                    inputStream.close();
+                } catch (IOException e) {
+                    logger.error(e.getMessage(), e);
+                }
+            }
         }
         return true;
     }
diff --git a/apm-collector/apm-collector-analysis/analysis-worker-model/pom.xml b/apm-collector/apm-collector-analysis/analysis-worker-model/pom.xml
index 390f78441..79f8ddaf0 100644
--- a/apm-collector/apm-collector-analysis/analysis-worker-model/pom.xml
+++ b/apm-collector/apm-collector-analysis/analysis-worker-model/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-analysis</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-analysis/pom.xml b/apm-collector/apm-collector-analysis/pom.xml
index 614b17390..9892c77b5 100644
--- a/apm-collector/apm-collector-analysis/pom.xml
+++ b/apm-collector/apm-collector-analysis/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-boot/pom.xml b/apm-collector/apm-collector-boot/pom.xml
index c765cef59..d02415c07 100644
--- a/apm-collector/apm-collector-boot/pom.xml
+++ b/apm-collector/apm-collector-boot/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-boot/src/main/resources/component-libraries.yml b/apm-collector/apm-collector-boot/src/main/resources/component-libraries.yml
index 7291c7f7e..ab20b468f 100644
--- a/apm-collector/apm-collector-boot/src/main/resources/component-libraries.yml
+++ b/apm-collector/apm-collector-boot/src/main/resources/component-libraries.yml
@@ -171,6 +171,9 @@ Elasticsearch:
 transport-client:
   id: 48
   languages: Java
+Undertow:
+  id: 49
+  languages: Java
 
 # .NET/.NET Core components
 # [3000, 4000) for C#/.NET only
diff --git a/apm-collector/apm-collector-cache/collector-cache-caffeine-provider/pom.xml b/apm-collector/apm-collector-cache/collector-cache-caffeine-provider/pom.xml
index ee07fc8ff..1687ebc6c 100644
--- a/apm-collector/apm-collector-cache/collector-cache-caffeine-provider/pom.xml
+++ b/apm-collector/apm-collector-cache/collector-cache-caffeine-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-cache</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-cache/collector-cache-define/pom.xml b/apm-collector/apm-collector-cache/collector-cache-define/pom.xml
index 6283bf7d5..767a76548 100644
--- a/apm-collector/apm-collector-cache/collector-cache-define/pom.xml
+++ b/apm-collector/apm-collector-cache/collector-cache-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-cache</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml b/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml
index d962bb6ba..bb0e66596 100644
--- a/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml
+++ b/apm-collector/apm-collector-cache/collector-cache-guava-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-cache</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-cache/pom.xml b/apm-collector/apm-collector-cache/pom.xml
index 4bbcdf2b3..d75c3c057 100644
--- a/apm-collector/apm-collector-cache/pom.xml
+++ b/apm-collector/apm-collector-cache/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml b/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml
index e6ff34f05..f143970a9 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml
+++ b/apm-collector/apm-collector-cluster/collector-cluster-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-cluster</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/pom.xml b/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/pom.xml
index 3f5fee2f3..82b52631d 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/pom.xml
+++ b/apm-collector/apm-collector-cluster/collector-cluster-redis-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-cluster</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/pom.xml b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/pom.xml
index f9ea86907..98e4eefaf 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/pom.xml
+++ b/apm-collector/apm-collector-cluster/collector-cluster-standalone-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-cluster</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/pom.xml b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/pom.xml
index 00601d6bd..9490d1958 100644
--- a/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/pom.xml
+++ b/apm-collector/apm-collector-cluster/collector-cluster-zookeeper-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-cluster</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-cluster/pom.xml b/apm-collector/apm-collector-cluster/pom.xml
index 756e3ac07..ea42557d1 100644
--- a/apm-collector/apm-collector-cluster/pom.xml
+++ b/apm-collector/apm-collector-cluster/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-component/client-component/pom.xml b/apm-collector/apm-collector-component/client-component/pom.xml
index 2f5a1b99c..3a4da6aa9 100644
--- a/apm-collector/apm-collector-component/client-component/pom.xml
+++ b/apm-collector/apm-collector-component/client-component/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-component</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-component/pom.xml b/apm-collector/apm-collector-component/pom.xml
index ad69a5c3b..d74d470b8 100644
--- a/apm-collector/apm-collector-component/pom.xml
+++ b/apm-collector/apm-collector-component/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-component/server-component/pom.xml b/apm-collector/apm-collector-component/server-component/pom.xml
index e59a097a2..c9b61fda3 100644
--- a/apm-collector/apm-collector-component/server-component/pom.xml
+++ b/apm-collector/apm-collector-component/server-component/pom.xml
@@ -21,13 +21,23 @@
     <parent>
         <artifactId>apm-collector-component</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
     <artifactId>server-component</artifactId>
     <packaging>jar</packaging>
-
+    <properties>
+        <guava.version>20.0</guava.version>
+    </properties>
+    <dependencyManagement>
+        <dependencies>
+            <dependency>
+                <groupId>com.google.guava</groupId>
+                <artifactId>guava</artifactId>
+            </dependency>
+        </dependencies>
+    </dependencyManagement>
     <dependencies>
         <dependency>
             <groupId>org.apache.skywalking</groupId>
diff --git a/apm-collector/apm-collector-configuration/collector-configuration-define/pom.xml b/apm-collector/apm-collector-configuration/collector-configuration-define/pom.xml
index 376ca7f49..668a4bd7b 100644
--- a/apm-collector/apm-collector-configuration/collector-configuration-define/pom.xml
+++ b/apm-collector/apm-collector-configuration/collector-configuration-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-configuration</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-configuration/collector-configuration-provider/pom.xml b/apm-collector/apm-collector-configuration/collector-configuration-provider/pom.xml
index 3057dc235..11ed289bf 100644
--- a/apm-collector/apm-collector-configuration/collector-configuration-provider/pom.xml
+++ b/apm-collector/apm-collector-configuration/collector-configuration-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-configuration</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-configuration/pom.xml b/apm-collector/apm-collector-configuration/pom.xml
index ac116b8c7..5ef3c34a6 100644
--- a/apm-collector/apm-collector-configuration/pom.xml
+++ b/apm-collector/apm-collector-configuration/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-core/pom.xml b/apm-collector/apm-collector-core/pom.xml
index 3cd685f1a..ccde65251 100644
--- a/apm-collector/apm-collector-core/pom.xml
+++ b/apm-collector/apm-collector-core/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-define/pom.xml b/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-define/pom.xml
index 7fd1e41d3..1e3d4cd3f 100644
--- a/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-define/pom.xml
+++ b/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-grpc-manager</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-provider/pom.xml b/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-provider/pom.xml
index f4946c899..84f51f307 100644
--- a/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-provider/pom.xml
+++ b/apm-collector/apm-collector-grpc-manager/collector-grpc-manager-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-grpc-manager</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-grpc-manager/pom.xml b/apm-collector/apm-collector-grpc-manager/pom.xml
index 63e1ddb46..833f93e8c 100644
--- a/apm-collector/apm-collector-grpc-manager/pom.xml
+++ b/apm-collector/apm-collector-grpc-manager/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-instrument/pom.xml b/apm-collector/apm-collector-instrument/pom.xml
index 8e2bd5ae0..3b788036f 100644
--- a/apm-collector/apm-collector-instrument/pom.xml
+++ b/apm-collector/apm-collector-instrument/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/pom.xml b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/pom.xml
index 6c7da7a00..bbe78679b 100644
--- a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/pom.xml
+++ b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-jetty-manager</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-provider/pom.xml b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-provider/pom.xml
index 10141204b..84a6a03d7 100644
--- a/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-provider/pom.xml
+++ b/apm-collector/apm-collector-jetty-manager/collector-jetty-manager-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-jetty-manager</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-jetty-manager/pom.xml b/apm-collector/apm-collector-jetty-manager/pom.xml
index 8a9b5b212..c836ed92c 100644
--- a/apm-collector/apm-collector-jetty-manager/pom.xml
+++ b/apm-collector/apm-collector-jetty-manager/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-naming/collector-naming-define/pom.xml b/apm-collector/apm-collector-naming/collector-naming-define/pom.xml
index a6277657c..41dea7f62 100644
--- a/apm-collector/apm-collector-naming/collector-naming-define/pom.xml
+++ b/apm-collector/apm-collector-naming/collector-naming-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-naming</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml
index 3fa0b1dd8..3446d4967 100644
--- a/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml
+++ b/apm-collector/apm-collector-naming/collector-naming-jetty-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-naming</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-naming/pom.xml b/apm-collector/apm-collector-naming/pom.xml
index bc7e38771..960719bec 100644
--- a/apm-collector/apm-collector-naming/pom.xml
+++ b/apm-collector/apm-collector-naming/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-remote/collector-remote-define/pom.xml b/apm-collector/apm-collector-remote/collector-remote-define/pom.xml
index 42edfa518..eb8302348 100644
--- a/apm-collector/apm-collector-remote/collector-remote-define/pom.xml
+++ b/apm-collector/apm-collector-remote/collector-remote-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-remote</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml
index 0e697c271..46348f773 100644
--- a/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml
+++ b/apm-collector/apm-collector-remote/collector-remote-grpc-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-remote</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-remote/collector-remote-kafka-provider/pom.xml b/apm-collector/apm-collector-remote/collector-remote-kafka-provider/pom.xml
index 9c7f33e8b..3691137ca 100644
--- a/apm-collector/apm-collector-remote/collector-remote-kafka-provider/pom.xml
+++ b/apm-collector/apm-collector-remote/collector-remote-kafka-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-remote</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-remote/pom.xml b/apm-collector/apm-collector-remote/pom.xml
index b7fe70293..f137bbd2d 100644
--- a/apm-collector/apm-collector-remote/pom.xml
+++ b/apm-collector/apm-collector-remote/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-define/pom.xml b/apm-collector/apm-collector-storage/collector-storage-define/pom.xml
index 580f6da46..0d8c14285 100644
--- a/apm-collector/apm-collector-storage/collector-storage-define/pom.xml
+++ b/apm-collector/apm-collector-storage/collector-storage-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-storage</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-es-provider/pom.xml b/apm-collector/apm-collector-storage/collector-storage-es-provider/pom.xml
index 3724356ad..3adeaf6b3 100644
--- a/apm-collector/apm-collector-storage/collector-storage-es-provider/pom.xml
+++ b/apm-collector/apm-collector-storage/collector-storage-es-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-storage</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-h2-provider/pom.xml b/apm-collector/apm-collector-storage/collector-storage-h2-provider/pom.xml
index 6e8d78c0b..07118e30f 100644
--- a/apm-collector/apm-collector-storage/collector-storage-h2-provider/pom.xml
+++ b/apm-collector/apm-collector-storage/collector-storage-h2-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-storage</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/pom.xml b/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/pom.xml
index aa13264cb..37ea44e72 100644
--- a/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/pom.xml
+++ b/apm-collector/apm-collector-storage/collector-storage-shardingjdbc-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-storage</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-storage/pom.xml b/apm-collector/apm-collector-storage/pom.xml
index 7859470e4..506c49a99 100644
--- a/apm-collector/apm-collector-storage/pom.xml
+++ b/apm-collector/apm-collector-storage/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-thirdparty-receiver/pom.xml b/apm-collector/apm-collector-thirdparty-receiver/pom.xml
index 3efa96658..1e804cb8f 100644
--- a/apm-collector/apm-collector-thirdparty-receiver/pom.xml
+++ b/apm-collector/apm-collector-thirdparty-receiver/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/pom.xml b/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/pom.xml
index 2768ae8d9..2f05ff137 100644
--- a/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/pom.xml
+++ b/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-thirdparty-receiver</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/receiver-zipkin-define/pom.xml b/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/receiver-zipkin-define/pom.xml
index 706411e5c..a2002d2fe 100644
--- a/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/receiver-zipkin-define/pom.xml
+++ b/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/receiver-zipkin-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>receiver-zipkin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/receiver-zipkin-provider/pom.xml b/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/receiver-zipkin-provider/pom.xml
index f94a30602..61a9de444 100644
--- a/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/receiver-zipkin-provider/pom.xml
+++ b/apm-collector/apm-collector-thirdparty-receiver/receiver-zipkin/receiver-zipkin-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>receiver-zipkin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-ui/collector-ui-define/pom.xml b/apm-collector/apm-collector-ui/collector-ui-define/pom.xml
index 0f092fed4..cd4917b2d 100644
--- a/apm-collector/apm-collector-ui/collector-ui-define/pom.xml
+++ b/apm-collector/apm-collector-ui/collector-ui-define/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-ui</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-ui/collector-ui-graphql/pom.xml b/apm-collector/apm-collector-ui/collector-ui-graphql/pom.xml
index dcd1e4d5a..831c017d1 100644
--- a/apm-collector/apm-collector-ui/collector-ui-graphql/pom.xml
+++ b/apm-collector/apm-collector-ui/collector-ui-graphql/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-ui</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml
index aca079a29..495646187 100644
--- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml
+++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector-ui</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/AlarmService.java b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/AlarmService.java
index b10449fb9..b5388c783 100644
--- a/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/AlarmService.java
+++ b/apm-collector/apm-collector-ui/collector-ui-jetty-provider/src/main/java/org/apache/skywalking/apm/collector/ui/service/AlarmService.java
@@ -175,7 +175,7 @@ public AlarmTrend getApplicationAlarmTrend(Step step, long startTimeBucket, long
     private String buildServerName(String osInfoJson) {
         JsonObject osInfo = gson.fromJson(osInfoJson, JsonObject.class);
         String serverName = Const.UNKNOWN;
-        if (osInfo.has("hostName")) {
+        if (osInfo != null && osInfo.has("hostName")) {
             serverName = osInfo.get("hostName").getAsString();
         }
         return serverName;
diff --git a/apm-collector/apm-collector-ui/pom.xml b/apm-collector/apm-collector-ui/pom.xml
index 5d8c6f621..01fc5e72c 100644
--- a/apm-collector/apm-collector-ui/pom.xml
+++ b/apm-collector/apm-collector-ui/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-collector</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-collector/pom.xml b/apm-collector/pom.xml
index 1d898ba53..f8a3b0493 100644
--- a/apm-collector/pom.xml
+++ b/apm-collector/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -51,7 +51,7 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <slf4j.version>1.7.25</slf4j.version>
         <log4j.version>2.9.0</log4j.version>
-        <guava.version>19.0</guava.version>
+        <guava.version>20.0</guava.version>
         <caffeine.version>2.6.2</caffeine.version>
         <snakeyaml.version>1.18</snakeyaml.version>
         <byte-buddy.version>1.7.8</byte-buddy.version>
diff --git a/apm-commons/apm-datacarrier/pom.xml b/apm-commons/apm-datacarrier/pom.xml
index 7b7112351..c0b983174 100644
--- a/apm-commons/apm-datacarrier/pom.xml
+++ b/apm-commons/apm-datacarrier/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-commons</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-commons/apm-util/pom.xml b/apm-commons/apm-util/pom.xml
index 1ee3b676c..d0027f173 100644
--- a/apm-commons/apm-util/pom.xml
+++ b/apm-commons/apm-util/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-commons</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-commons/pom.xml b/apm-commons/pom.xml
index 76f8b1289..b4aa381a3 100644
--- a/apm-commons/pom.xml
+++ b/apm-commons/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-dist/pom.xml b/apm-dist/pom.xml
index e824bd32c..a41077b7c 100644
--- a/apm-dist/pom.xml
+++ b/apm-dist/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-dist/release-docs/NOTICE b/apm-dist/release-docs/NOTICE
index cd088c301..8dfb21204 100644
--- a/apm-dist/release-docs/NOTICE
+++ b/apm-dist/release-docs/NOTICE
@@ -4,11 +4,6 @@ Copyright 2017-2018 The Apache Software Foundation
 This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
-This product bundles icons/fonts from the ant-design project,
-https://github.com/ant-design/antd-init/tree/master/examples/local-iconfont
-Licensed under the MIT license, confirmed by ant-design team member.
-https://github.com/ant-design/ant-design/issues/10243
-
 ========================================================================
 
 grpc-java NOTICE
diff --git a/apm-protocol/apm-network/pom.xml b/apm-protocol/apm-network/pom.xml
index 85ef1dab1..7bf1a9116 100644
--- a/apm-protocol/apm-network/pom.xml
+++ b/apm-protocol/apm-network/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-protocol</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
@@ -30,8 +30,8 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <compiler.version>1.6</compiler.version>
-        <grpc.version>1.10.0</grpc.version>
-        <netty.version>4.1.17.Final</netty.version>
+        <grpc.version>1.14.0</grpc.version>
+        <netty.version>4.1.27.Final</netty.version>
         <netty-tcnative-boringssl-static.version>2.0.7.Final</netty-tcnative-boringssl-static.version>
         <os-maven-plugin.version>1.5.0.Final</os-maven-plugin.version>
         <protobuf-maven-plugin.version>0.5.0</protobuf-maven-plugin.version>
diff --git a/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java
index 8c60442db..f4ed8c0fd 100644
--- a/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java
+++ b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java
@@ -98,6 +98,8 @@
 
     public static final OfficialComponent TRANSPORT_CLIENT =  new OfficialComponent(48, "transport-client");
 
+    public static final OfficialComponent UNDERTOW =  new OfficialComponent(49, "Undertow");
+
     private static ComponentsDefine INSTANCE = new ComponentsDefine();
 
     private String[] components;
@@ -107,7 +109,7 @@ public static ComponentsDefine getInstance() {
     }
 
     public ComponentsDefine() {
-        components = new String[49];
+        components = new String[50];
         addComponent(TOMCAT);
         addComponent(HTTPCLIENT);
         addComponent(DUBBO);
@@ -144,6 +146,7 @@ public ComponentsDefine() {
         addComponent(ACTIVEMQ_PRODUCER);
         addComponent(ACTIVEMQ_CONSUMER);
         addComponent(TRANSPORT_CLIENT);
+        addComponent(UNDERTOW);
     }
 
     private void addComponent(OfficialComponent component) {
diff --git a/apm-protocol/apm-ui-protocol/pom.xml b/apm-protocol/apm-ui-protocol/pom.xml
index 62784cb94..dbe78dde8 100644
--- a/apm-protocol/apm-ui-protocol/pom.xml
+++ b/apm-protocol/apm-ui-protocol/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-protocol</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-protocol/pom.xml b/apm-protocol/pom.xml
index cbddc48ea..cede35ad0 100644
--- a/apm-protocol/pom.xml
+++ b/apm-protocol/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-agent-core/pom.xml b/apm-sniffer/apm-agent-core/pom.xml
index b45bc9577..20d46ebe5 100644
--- a/apm-sniffer/apm-agent-core/pom.xml
+++ b/apm-sniffer/apm-agent-core/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sniffer</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-agent-core</artifactId>
@@ -34,13 +34,13 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <jetty.version>9.4.2.v20170220</jetty.version>
-        <grpc.version>1.10.0</grpc.version>
+        <grpc.version>1.14.0</grpc.version>
+        <guava.version>20.0</guava.version>
         <bytebuddy.version>1.7.9</bytebuddy.version>
         <disruptor.version>3.3.6</disruptor.version>
         <apache-httpclient.version>4.5.3</apache-httpclient.version>
         <wiremock.version>2.6.0</wiremock.version>
         <os-maven-plugin.version>1.4.1.Final</os-maven-plugin.version>
-
         <shade.package>org.apache.skywalking.apm.dependencies</shade.package>
         <shade.com.lmax.disruptor.source>com.lmax.disruptor</shade.com.lmax.disruptor.source>
         <shade.com.lmax.disruptor.target>${shade.package}.${shade.com.lmax.disruptor.source}
@@ -64,6 +64,7 @@
             <groupId>org.apache.skywalking</groupId>
             <artifactId>apm-network</artifactId>
             <version>${project.version}</version>
+
         </dependency>
         <dependency>
             <groupId>org.apache.skywalking</groupId>
@@ -108,6 +109,7 @@
             <artifactId>wiremock</artifactId>
             <version>${wiremock.version}</version>
             <scope>test</scope>
+
         </dependency>
         <dependency>
             <groupId>io.grpc</groupId>
@@ -127,7 +129,17 @@
             <version>${project.version}</version>
         </dependency>
     </dependencies>
+    <dependencyManagement>
+<dependencies>
+    <dependency>
+        <groupId>com.google.guava</groupId>
+        <artifactId>guava</artifactId>
+        <version>${guava.version}</version>
+    </dependency>
+</dependencies>
+    </dependencyManagement>
     <build>
+
         <extensions>
             <extension>
                 <groupId>kr.motd.maven</groupId>
diff --git a/apm-sniffer/apm-agent/pom.xml b/apm-sniffer/apm-agent/pom.xml
index ff4bde04e..dcfa0d3f9 100644
--- a/apm-sniffer/apm-agent/pom.xml
+++ b/apm-sniffer/apm-agent/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sniffer</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-agent</artifactId>
diff --git a/apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java b/apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
index c224aa5a2..c6ca2ca20 100644
--- a/apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
+++ b/apm-sniffer/apm-agent/src/main/java/org/apache/skywalking/apm/agent/SkyWalkingAgent.java
@@ -16,16 +16,21 @@
  *
  */
 
-
 package org.apache.skywalking.apm.agent;
 
 import java.lang.instrument.Instrumentation;
 import java.util.List;
+import net.bytebuddy.ByteBuddy;
 import net.bytebuddy.agent.builder.AgentBuilder;
+import net.bytebuddy.description.NamedElement;
 import net.bytebuddy.description.type.TypeDescription;
 import net.bytebuddy.dynamic.DynamicType;
+import net.bytebuddy.dynamic.scaffold.TypeValidation;
+import net.bytebuddy.matcher.ElementMatcher;
 import net.bytebuddy.utility.JavaModule;
 import org.apache.skywalking.apm.agent.core.boot.ServiceManager;
+import org.apache.skywalking.apm.agent.core.conf.Config;
+import org.apache.skywalking.apm.agent.core.conf.SnifferConfigInitializer;
 import org.apache.skywalking.apm.agent.core.logging.api.ILog;
 import org.apache.skywalking.apm.agent.core.logging.api.LogManager;
 import org.apache.skywalking.apm.agent.core.plugin.AbstractClassEnhancePluginDefine;
@@ -33,11 +38,13 @@
 import org.apache.skywalking.apm.agent.core.plugin.PluginBootstrap;
 import org.apache.skywalking.apm.agent.core.plugin.PluginException;
 import org.apache.skywalking.apm.agent.core.plugin.PluginFinder;
-import org.apache.skywalking.apm.agent.core.conf.SnifferConfigInitializer;
+
+import static net.bytebuddy.matcher.ElementMatchers.nameContains;
+import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith;
+import static net.bytebuddy.matcher.ElementMatchers.not;
 
 /**
- * The main entrance of sky-waking agent,
- * based on javaagent mechanism.
+ * The main entrance of sky-waking agent, based on javaagent mechanism.
  *
  * @author wusheng
  */
@@ -45,8 +52,7 @@
     private static final ILog logger = LogManager.getLogger(SkyWalkingAgent.class);
 
     /**
-     * Main entrance.
-     * Use byte-buddy transform to enhance all classes, which define in plugins.
+     * Main entrance. Use byte-buddy transform to enhance all classes, which define in plugins.
      *
      * @param agentArgs
      * @param instrumentation
@@ -64,11 +70,21 @@ public static void premain(String agentArgs, Instrumentation instrumentation) th
             return;
         }
 
-        new AgentBuilder.Default()
-                .type(pluginFinder.buildMatch())
-                .transform(new Transformer(pluginFinder))
-                .with(new Listener())
-                .installOn(instrumentation);
+        final ByteBuddy byteBuddy = new ByteBuddy()
+            .with(TypeValidation.of(Config.Agent.IS_OPEN_DEBUGGING_CLASS));
+
+        new AgentBuilder.Default(byteBuddy)
+            .ignore(nameStartsWith("net.bytebuddy."))
+            .ignore(nameStartsWith("org.slf4j."))
+            .ignore(nameStartsWith("org.apache.logging."))
+            .ignore(nameStartsWith("org.groovy."))
+            .ignore(nameContains("javassist"))
+            .ignore(nameContains(".asm."))
+            .ignore(allSkyWalkingAgentExcludeToolkit())
+            .type(pluginFinder.buildMatch())
+            .transform(new Transformer(pluginFinder))
+            .with(new Listener())
+            .installOn(instrumentation);
 
         try {
             ServiceManager.INSTANCE.boot();
@@ -91,7 +107,8 @@ public static void premain(String agentArgs, Instrumentation instrumentation) th
         }
 
         @Override
-        public DynamicType.Builder<?> transform(DynamicType.Builder<?> builder, TypeDescription typeDescription, ClassLoader classLoader, JavaModule module) {
+        public DynamicType.Builder<?> transform(DynamicType.Builder<?> builder, TypeDescription typeDescription,
+            ClassLoader classLoader, JavaModule module) {
             List<AbstractClassEnhancePluginDefine> pluginDefines = pluginFinder.find(typeDescription, classLoader);
             if (pluginDefines.size() > 0) {
                 DynamicType.Builder<?> newBuilder = builder;
@@ -114,6 +131,10 @@ public static void premain(String agentArgs, Instrumentation instrumentation) th
         }
     }
 
+    private static ElementMatcher.Junction<NamedElement> allSkyWalkingAgentExcludeToolkit() {
+        return nameStartsWith("org.apache.skywalking.").and(not(nameStartsWith("org.apache.skywalking.apm.toolkit.")));
+    }
+
     private static class Listener implements AgentBuilder.Listener {
         @Override
         public void onDiscovery(String typeName, ClassLoader classLoader, JavaModule module, boolean loaded) {
@@ -122,7 +143,7 @@ public void onDiscovery(String typeName, ClassLoader classLoader, JavaModule mod
 
         @Override
         public void onTransformation(TypeDescription typeDescription, ClassLoader classLoader, JavaModule module,
-                                     boolean loaded, DynamicType dynamicType) {
+            boolean loaded, DynamicType dynamicType) {
             if (logger.isDebugEnable()) {
                 logger.debug("On Transformation class {}.", typeDescription.getName());
             }
@@ -132,13 +153,13 @@ public void onTransformation(TypeDescription typeDescription, ClassLoader classL
 
         @Override
         public void onIgnored(TypeDescription typeDescription, ClassLoader classLoader, JavaModule module,
-                              boolean loaded) {
+            boolean loaded) {
 
         }
 
         @Override
         public void onError(String typeName, ClassLoader classLoader, JavaModule module, boolean loaded,
-                            Throwable throwable) {
+            Throwable throwable) {
             logger.error("Enhance class " + typeName + " error.", throwable);
         }
 
diff --git a/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/pom.xml
index dd0c49073..f11b8efdf 100644
--- a/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml
index aea612fa5..04953d966 100644
--- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml
index 7fd7d268f..01b2560f3 100644
--- a/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/elasticsearch-5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/elasticsearch-5.x-plugin/pom.xml
index eb672a4f3..60cfa04f8 100644
--- a/apm-sniffer/apm-sdk-plugin/elasticsearch-5.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/elasticsearch-5.x-plugin/pom.xml
@@ -16,13 +16,11 @@
   ~ 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">
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/pom.xml
index 5a28b7c46..e24d0c59f 100644
--- a/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/feign-default-http-9.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml
index c6346a683..e0d9d3734 100644
--- a/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-grpc-1.x-plugin</artifactId>
diff --git a/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml
index 7e32c3841..6d1eca655 100755
--- a/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/pom.xml
index 760a47190..39b357b6f 100644
--- a/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/httpClient-4.x-plugin/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-httpClient-4.x-plugin</artifactId>
@@ -34,7 +34,6 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <apache-httpclient.version>4.3</apache-httpclient.version>
-        <log4j-core.version>2.4.1</log4j-core.version>
         <junit.version>4.12</junit.version>
     </properties>
 
@@ -46,12 +45,7 @@
             <scope>provided</scope>
         </dependency>
         
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>${log4j-core.version}</version>
-            <scope>test</scope>
-        </dependency>
+
 
         <dependency>
             <groupId>junit</groupId>
diff --git a/apm-sniffer/apm-sdk-plugin/httpasyncclient-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/httpasyncclient-4.x-plugin/pom.xml
index fa6f46257..b62c61c79 100644
--- a/apm-sniffer/apm-sdk-plugin/httpasyncclient-4.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/httpasyncclient-4.x-plugin/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-httpasyncclient-4.x-plugin</artifactId>
diff --git a/apm-sniffer/apm-sdk-plugin/hystrix-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/hystrix-1.x-plugin/pom.xml
index c099ebc30..08d6b2cb5 100644
--- a/apm-sniffer/apm-sdk-plugin/hystrix-1.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/hystrix-1.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml b/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml
index 215653394..1ab6624a8 100755
--- a/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/pom.xml
index 2a0d069f8..a4aa929c1 100644
--- a/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/jedis-2.x-plugin/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-jedis-2.x-plugin</artifactId>
@@ -32,7 +32,6 @@
     <url>http://maven.apache.org</url>
     <properties>
         <jedis.version>2.9.0</jedis.version>
-        <log4j-core.version>2.4.1</log4j-core.version>
     </properties>
 
     <dependencies>
@@ -43,11 +42,5 @@
             <scope>provided</scope>
         </dependency>
 
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>${log4j-core.version}</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
diff --git a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.0-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.0-plugin/pom.xml
index f45d431de..3b97e7b3b 100644
--- a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.0-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.0-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>jetty-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.x-plugin/pom.xml
index 2815db32f..8dc673031 100644
--- a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-client-9.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>jetty-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/pom.xml
index 05602d339..9b05ef64d 100644
--- a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>jetty-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml
index e17a30bdd..86ab46c85 100644
--- a/apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>jetty-plugins</artifactId>
diff --git a/apm-sniffer/apm-sdk-plugin/kafka-v1-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/kafka-v1-plugin/pom.xml
index 11b111b3a..3e6f64012 100644
--- a/apm-sniffer/apm-sdk-plugin/kafka-v1-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/kafka-v1-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml
index 7241ec8b9..eb567b64a 100644
--- a/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/mongodb-2.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml
index 02cb0aa09..f9880104b 100644
--- a/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/mongodb-3.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-mongodb-3.x-plugin</artifactId>
diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml
index 70e044e65..9b9eff52a 100644
--- a/apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/apache/skywalking/apm/plugin/motan/define/MotanConsumerInstrumentation.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/apache/skywalking/apm/plugin/motan/define/MotanConsumerInstrumentation.java
index 21328955a..6d953a835 100644
--- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/apache/skywalking/apm/plugin/motan/define/MotanConsumerInstrumentation.java
+++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/apache/skywalking/apm/plugin/motan/define/MotanConsumerInstrumentation.java
@@ -18,6 +18,7 @@
 
 package org.apache.skywalking.apm.plugin.motan.define;
 
+import com.weibo.api.motan.rpc.Request;
 import net.bytebuddy.description.method.MethodDescription;
 import net.bytebuddy.matcher.ElementMatcher;
 import org.apache.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint;
@@ -26,13 +27,23 @@
 import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch;
 import org.apache.skywalking.apm.agent.core.plugin.match.NameMatch;
 
+import static net.bytebuddy.matcher.ElementMatchers.any;
 import static net.bytebuddy.matcher.ElementMatchers.named;
 
 public class MotanConsumerInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
 
-    private static final String ENHANCE_CLASS = "com.weibo.api.motan.transport.ProviderMessageRouter";
-
-    private static final String INVOKE_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanProviderInterceptor";
+    /**
+     * Enhance class.
+     */
+    private static final String ENHANCE_CLASS = "com.weibo.api.motan.rpc.AbstractReferer";
+    /**
+     * Class that intercept all constructor of ${@link com.weibo.api.motan.rpc.AbstractProvider}.
+     */
+    private static final String CONSTRUCTOR_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanConsumerInterceptor";
+    /**
+     * Class that intercept {@link com.weibo.api.motan.rpc.AbstractProvider#call(Request)}.
+     */
+    private static final String PROVIDER_INVOKE_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanConsumerInterceptor";
 
     @Override
     protected ClassMatch enhanceClass() {
@@ -41,7 +52,19 @@ protected ClassMatch enhanceClass() {
 
     @Override
     protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
-        return new ConstructorInterceptPoint[0];
+        return new ConstructorInterceptPoint[] {
+            new ConstructorInterceptPoint() {
+                @Override
+                public ElementMatcher<MethodDescription> getConstructorMatcher() {
+                    return any();
+                }
+
+                @Override
+                public String getConstructorInterceptor() {
+                    return CONSTRUCTOR_INTERCEPT_CLASS;
+                }
+            }
+        };
     }
 
     @Override
@@ -55,7 +78,7 @@ protected ClassMatch enhanceClass() {
 
                 @Override
                 public String getMethodsInterceptor() {
-                    return INVOKE_INTERCEPT_CLASS;
+                    return PROVIDER_INVOKE_INTERCEPT_CLASS;
                 }
 
                 @Override public boolean isOverrideArgs() {
diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/apache/skywalking/apm/plugin/motan/define/MotanProviderInstrumentation.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/apache/skywalking/apm/plugin/motan/define/MotanProviderInstrumentation.java
index 36159da97..dcc38e678 100644
--- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/apache/skywalking/apm/plugin/motan/define/MotanProviderInstrumentation.java
+++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/main/java/org/apache/skywalking/apm/plugin/motan/define/MotanProviderInstrumentation.java
@@ -18,7 +18,6 @@
 
 package org.apache.skywalking.apm.plugin.motan.define;
 
-import com.weibo.api.motan.rpc.Request;
 import net.bytebuddy.description.method.MethodDescription;
 import net.bytebuddy.matcher.ElementMatcher;
 import org.apache.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint;
@@ -27,23 +26,13 @@
 import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch;
 import org.apache.skywalking.apm.agent.core.plugin.match.NameMatch;
 
-import static net.bytebuddy.matcher.ElementMatchers.any;
 import static net.bytebuddy.matcher.ElementMatchers.named;
 
 public class MotanProviderInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
 
-    /**
-     * Enhance class.
-     */
-    private static final String ENHANCE_CLASS = "com.weibo.api.motan.rpc.AbstractReferer";
-    /**
-     * Class that intercept all constructor of ${@link com.weibo.api.motan.rpc.AbstractProvider}.
-     */
-    private static final String CONSTRUCTOR_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanConsumerInterceptor";
-    /**
-     * Class that intercept {@link com.weibo.api.motan.rpc.AbstractProvider#call(Request)}.
-     */
-    private static final String PROVIDER_INVOKE_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanConsumerInterceptor";
+    private static final String ENHANCE_CLASS = "com.weibo.api.motan.transport.ProviderMessageRouter";
+
+    private static final String INVOKE_INTERCEPT_CLASS = "org.apache.skywalking.apm.plugin.motan.MotanProviderInterceptor";
 
     @Override
     protected ClassMatch enhanceClass() {
@@ -52,19 +41,7 @@ protected ClassMatch enhanceClass() {
 
     @Override
     protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
-        return new ConstructorInterceptPoint[] {
-            new ConstructorInterceptPoint() {
-                @Override
-                public ElementMatcher<MethodDescription> getConstructorMatcher() {
-                    return any();
-                }
-
-                @Override
-                public String getConstructorInterceptor() {
-                    return CONSTRUCTOR_INTERCEPT_CLASS;
-                }
-            }
-        };
+        return new ConstructorInterceptPoint[0];
     }
 
     @Override
@@ -78,7 +55,7 @@ public String getConstructorInterceptor() {
 
                 @Override
                 public String getMethodsInterceptor() {
-                    return PROVIDER_INVOKE_INTERCEPT_CLASS;
+                    return INVOKE_INTERCEPT_CLASS;
                 }
 
                 @Override public boolean isOverrideArgs() {
diff --git a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml
index f3ca2c157..4fbe978f1 100755
--- a/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/mysql-5.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml
index 924f010a2..43df4cae6 100644
--- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/http-1.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>nutz-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml
index da5dc6429..56957395f 100644
--- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/mvc-annotation-1.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>nutz-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml b/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml
index c8436616a..301eb2e02 100644
--- a/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>nutz-plugins</artifactId>
diff --git a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/pom.xml
index 841a855fd..a35e9f1b9 100644
--- a/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/okhttp-3.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml
index 38cba1bf8..10b048eea 100644
--- a/apm-sniffer/apm-sdk-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sniffer</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-sdk-plugin</artifactId>
@@ -59,6 +59,7 @@
         <module>sofarpc-plugin</module>
         <module>elasticsearch-5.x-plugin</module>
         <module>activemq-5.x-plugin</module>
+        <module>undertow-plugins</module>
     </modules>
     <packaging>pom</packaging>
 
diff --git a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml
index b2692e2ee..49415efa9 100755
--- a/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/postgresql-8.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/rocketMQ-3.x-plugin/pom.xml
index 80f3c7cfc..b6b6680b3 100644
--- a/apm-sniffer/apm-sdk-plugin/rocketMQ-3.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-3.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml
index 71fdc5246..4ee6af7ff 100644
--- a/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/pom.xml
index 82d533905..5b7b941e1 100644
--- a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/pom.xml
index db758d6d8..6ef89e774 100644
--- a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-0.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>servicecomb-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-1.x-plugin/pom.xml
index 87fe7a658..c44da6553 100644
--- a/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-1.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/servicecomb-plugin/servicecomb-java-chassis-1.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>servicecomb-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml
index 73f3fb17b..21a01f93b 100644
--- a/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/sharding-jdbc-1.5.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/pom.xml
index 68b5eb292..e6d11b92c 100644
--- a/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/concurrent-util-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/concurrent-util-4.x-plugin/pom.xml
index 402e60fad..49151f104 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/concurrent-util-4.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/concurrent-util-4.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>spring-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/pom.xml
index e04f427f2..085527079 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/core-patch/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>spring-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/pom.xml
index b24f66afb..7cf730642 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-3.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>spring-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/pom.xml
index c43435f9a..0351726e5 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-4.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>spring-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-commons/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-commons/pom.xml
index 8e802bccf..34739e2f4 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-commons/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/mvc-annotation-commons/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>spring-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml
index 4bb1fb85a..f666526f5 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>spring-plugins</artifactId>
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/resttemplate-4.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/resttemplate-4.x-plugin/pom.xml
index 11027373d..f47e3649e 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/resttemplate-4.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/resttemplate-4.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>spring-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/pom.xml
index c1962da20..fadfacce8 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>spring-cloud</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>netflix-plugins</artifactId>
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x-plugin/pom.xml
index 969fef13c..944a03cfe 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/netflix-plugins/spring-cloud-feign-1.x-plugin/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>netflix-plugins</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-spring-cloud-feign-1.x-plugin</artifactId>
diff --git a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/pom.xml b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/pom.xml
index 929e0e9d5..4551c4264 100644
--- a/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spring-plugins/spring-cloud/pom.xml
@@ -23,7 +23,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>spring-plugins</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>spring-cloud</artifactId>
diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml
index 94b84c6fe..41f7a7651 100644
--- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-spymemcached-2.x-plugin</artifactId>
@@ -32,7 +32,6 @@
     <properties>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <spymemcached.version>2.11.1</spymemcached.version>
-        <log4j-core.version>2.4.1</log4j-core.version>
     </properties>
 
     <dependencies>
@@ -42,11 +41,6 @@
             <version>${spymemcached.version}</version>
             <scope>provided</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>${log4j-core.version}</version>
-            <scope>test</scope>
-        </dependency>
+
     </dependencies>
 </project>
diff --git a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml
index 7973b8230..8a0328e23 100644
--- a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml
index eae8b203c..f6f653a55 100644
--- a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>apm-sdk-plugin</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/pom.xml b/apm-sniffer/apm-sdk-plugin/undertow-plugins/pom.xml
new file mode 100644
index 000000000..20077b2ee
--- /dev/null
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/pom.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  ~
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.skywalking</groupId>
+        <artifactId>apm-sdk-plugin</artifactId>
+        <version>5.0.0-GA-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>undertow-plugins</artifactId>
+    <modules>
+        <module>undertow-2.x-plugin</module>
+    </modules>
+    <packaging>pom</packaging>
+
+    <name>undertow-plugins</name>
+    <url>http://maven.apache.org</url>
+
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <sdk.plugin.related.dir>/..</sdk.plugin.related.dir>
+    </properties>
+</project>
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/pom.xml
new file mode 100644
index 000000000..a42b68f02
--- /dev/null
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/pom.xml
@@ -0,0 +1,54 @@
+<!--
+  ~ Licensed to the Apache Software Foundation (ASF) under one or more
+  ~ contributor license agreements.  See the NOTICE file distributed with
+  ~ this work for additional information regarding copyright ownership.
+  ~ The ASF licenses this file to You under the Apache License, Version 2.0
+  ~ (the "License"); you may not use this file except in compliance with
+  ~ the License.  You may obtain a copy of the License at
+  ~
+  ~     http://www.apache.org/licenses/LICENSE-2.0
+  ~
+  ~ Unless required by applicable law or agreed to in writing, software
+  ~ distributed under the License is distributed on an "AS IS" BASIS,
+  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  ~ See the License for the specific language governing permissions and
+  ~ limitations under the License.
+  ~
+  -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>undertow-plugins</artifactId>
+        <groupId>org.apache.skywalking</groupId>
+        <version>5.0.0-GA-SNAPSHOT</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>apm-undertow-2.x-plugin</artifactId>
+    <packaging>jar</packaging>
+
+    <name>undertow-2.x-plugin</name>
+    <url>http://maven.apache.org</url>
+
+    <properties>
+        <undertow.version>2.0.9.Final</undertow.version>
+        <servlet-api.version>3.1.0</servlet-api.version>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>io.undertow</groupId>
+            <artifactId>undertow-core</artifactId>
+            <version>${undertow.version}</version>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>javax.servlet-api</artifactId>
+            <version>${servlet-api.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+</project>
diff --git a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/ReaderAccountTest.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/Constants.java
similarity index 55%
rename from apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/ReaderAccountTest.java
rename to apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/Constants.java
index 3cfe631a3..ac8b2082c 100644
--- a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/ReaderAccountTest.java
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/Constants.java
@@ -6,7 +6,7 @@
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
  *
- *     http://www.apache.org/licenses/LICENSE-2.0
+ *    http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
@@ -14,24 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  *
+ *
  */
 
-package org.apache.skywalking.apm.webapp.security;
-
-import java.io.BufferedReader;
-import java.io.StringReader;
-import org.junit.Test;
-
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.*;
+package org.apache.skywalking.apm.plugin.undertow.v2x;
 
-public class ReaderAccountTest {
-
-    @Test
-    public void assertNewReaderAccount() {
-        Account account = ReaderAccount.newReaderAccount(new BufferedReader(new StringReader("{\"userName\": \"admin\", \"password\":\"888888\"}")));
-        assertThat(account.userName(), is("admin"));
-        assertThat(account.password(), is("888888"));
-    }
-    
-}
\ No newline at end of file
+/**
+ * @author chenpengfei
+ */
+public class Constants {
+    public static final String FORWARD_REQUEST_FLAG = "SW_FORWARD_REQUEST_FLAG";
+}
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/ExecuteRootHandlerInterceptor.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/ExecuteRootHandlerInterceptor.java
new file mode 100644
index 000000000..6afb43c04
--- /dev/null
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/ExecuteRootHandlerInterceptor.java
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.plugin.undertow.v2x;
+
+import org.apache.skywalking.apm.agent.core.context.CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.ContextCarrier;
+import org.apache.skywalking.apm.agent.core.context.ContextManager;
+import org.apache.skywalking.apm.agent.core.context.tag.Tags;
+import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
+import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.StaticMethodsAroundInterceptor;
+import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
+
+import java.lang.reflect.Method;
+
+import io.undertow.server.HttpServerExchange;
+import io.undertow.util.HeaderMap;
+
+/**
+ * @author chenpengfei
+ */
+public class ExecuteRootHandlerInterceptor implements StaticMethodsAroundInterceptor {
+
+    @Override
+    public void beforeMethod(Class clazz, Method method, Object[] allArguments, Class<?>[] parameterTypes, MethodInterceptResult result) {
+        HttpServerExchange exchange = (HttpServerExchange) allArguments[1];
+
+        ContextCarrier contextCarrier = new ContextCarrier();
+        HeaderMap headers = exchange.getRequestHeaders();
+        CarrierItem next = contextCarrier.items();
+        while (next.hasNext()) {
+            next = next.next();
+            next.setHeadValue(headers.getFirst(next.getHeadKey()));
+        }
+        AbstractSpan span = ContextManager.createEntrySpan(exchange.getRequestPath(), contextCarrier);
+        Tags.URL.set(span, exchange.getRequestURL());
+        Tags.HTTP.METHOD.set(span, exchange.getRequestMethod().toString());
+        span.setComponent(ComponentsDefine.UNDERTOW);
+        SpanLayer.asHttp(span);
+    }
+
+    @Override
+    public Object afterMethod(Class clazz, Method method, Object[] allArguments, Class<?>[] parameterTypes, Object ret) {
+        HttpServerExchange exchange = (HttpServerExchange) allArguments[1];
+
+        AbstractSpan span = ContextManager.activeSpan();
+        if (exchange.getStatusCode() >= 400) {
+            span.errorOccurred();
+            Tags.STATUS_CODE.set(span, Integer.toString(exchange.getStatusCode()));
+        }
+        ContextManager.stopSpan();
+        ContextManager.getRuntimeContext().remove(Constants.FORWARD_REQUEST_FLAG);
+        return ret;
+    }
+
+    @Override
+    public void handleMethodException(Class clazz, Method method, Object[] allArguments, Class<?>[] parameterTypes, Throwable t) {
+        ContextManager.activeSpan().errorOccurred().log(t);
+    }
+}
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/ForwardInterceptor.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/ForwardInterceptor.java
new file mode 100644
index 000000000..3640d530e
--- /dev/null
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/ForwardInterceptor.java
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ *
+ */
+
+package org.apache.skywalking.apm.plugin.undertow.v2x;
+
+import org.apache.skywalking.apm.agent.core.context.ContextManager;
+import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
+
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author chenpengfei
+ */
+public class ForwardInterceptor implements InstanceMethodsAroundInterceptor, InstanceConstructorInterceptor {
+
+    @Override
+    public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes, MethodInterceptResult result) throws Throwable {
+        if (ContextManager.isActive()) {
+            AbstractSpan abstractTracingSpan = ContextManager.activeSpan();
+            Map<String, String> eventMap = new HashMap<String, String>();
+            eventMap.put("forward-url", objInst.getSkyWalkingDynamicField() == null ? "" : String.valueOf(objInst.getSkyWalkingDynamicField()));
+            abstractTracingSpan.log(System.currentTimeMillis(), eventMap);
+            ContextManager.getRuntimeContext().put(Constants.FORWARD_REQUEST_FLAG, true);
+        }
+    }
+
+    @Override
+    public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes, Object ret) throws Throwable {
+
+        return ret;
+    }
+
+    @Override
+    public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes, Throwable t) {
+
+    }
+
+    @Override
+    public void onConstruct(EnhancedInstance objInst, Object[] allArguments) {
+        objInst.setSkyWalkingDynamicField(allArguments[0]);
+    }
+}
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/define/RequestDispatcherImplInstrumentation.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/define/RequestDispatcherImplInstrumentation.java
new file mode 100644
index 000000000..9ab7b0421
--- /dev/null
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/define/RequestDispatcherImplInstrumentation.java
@@ -0,0 +1,85 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.plugin.undertow.v2x.define;
+
+import net.bytebuddy.description.method.MethodDescription;
+import net.bytebuddy.matcher.ElementMatcher;
+
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine;
+import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch;
+
+import static net.bytebuddy.matcher.ElementMatchers.named;
+import static org.apache.skywalking.apm.agent.core.plugin.bytebuddy.ArgumentTypeNameMatch.takesArgumentWithType;
+import static org.apache.skywalking.apm.agent.core.plugin.match.NameMatch.byName;
+
+/**
+ * @author chenpengfei
+ */
+public class RequestDispatcherImplInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
+
+    private static final String ENHANCE_CLASS = "io.undertow.servlet.spec.RequestDispatcherImpl";
+    private static final String ENHANCE_METHOD = "forward";
+    public static final String INTERCEPTOR_CLASS = "org.apache.skywalking.apm.plugin.undertow.v2x.ForwardInterceptor";
+
+    @Override
+    protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
+        return new ConstructorInterceptPoint[] {
+            new ConstructorInterceptPoint() {
+                @Override
+                public ElementMatcher<MethodDescription> getConstructorMatcher() {
+                    return takesArgumentWithType(0, "java.lang.String");
+                }
+
+                @Override
+                public String getConstructorInterceptor() {
+                    return INTERCEPTOR_CLASS;
+                }
+            }
+        };
+    }
+
+    @Override
+    protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() {
+        return new InstanceMethodsInterceptPoint[] {
+            new InstanceMethodsInterceptPoint() {
+                @Override
+                public ElementMatcher<MethodDescription> getMethodsMatcher() {
+                    return named(ENHANCE_METHOD);
+                }
+
+                @Override
+                public String getMethodsInterceptor() {
+                    return INTERCEPTOR_CLASS;
+                }
+
+                @Override
+                public boolean isOverrideArgs() {
+                    return false;
+                }
+            }
+        };
+    }
+
+    @Override
+    protected ClassMatch enhanceClass() {
+        return byName(ENHANCE_CLASS);
+    }
+}
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/define/UndertowInstrumentation.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/define/UndertowInstrumentation.java
new file mode 100644
index 000000000..7c27e92a0
--- /dev/null
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/undertow/v2x/define/UndertowInstrumentation.java
@@ -0,0 +1,65 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.plugin.undertow.v2x.define;
+
+import net.bytebuddy.description.method.MethodDescription;
+import net.bytebuddy.matcher.ElementMatcher;
+
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.StaticMethodsInterceptPoint;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassStaticMethodsEnhancePluginDefine;
+import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch;
+import org.apache.skywalking.apm.agent.core.plugin.match.NameMatch;
+
+import static net.bytebuddy.matcher.ElementMatchers.named;
+
+/**
+ * @author chenpengfei
+ */
+public class UndertowInstrumentation extends ClassStaticMethodsEnhancePluginDefine {
+
+    private static final String ENHANCE_CLASS = "io.undertow.server.Connectors";
+    private static final String ENHANCE_METHOD = "executeRootHandler";
+    private static final String INTERCEPTOR_CLASS = "org.apache.skywalking.apm.plugin.undertow.v2x.ExecuteRootHandlerInterceptor";
+
+    @Override
+    protected ClassMatch enhanceClass() {
+        return NameMatch.byName(ENHANCE_CLASS);
+    }
+
+    @Override
+    protected StaticMethodsInterceptPoint[] getStaticMethodsInterceptPoints() {
+        return new StaticMethodsInterceptPoint[] {
+            new StaticMethodsInterceptPoint() {
+                @Override
+                public ElementMatcher<MethodDescription> getMethodsMatcher() {
+                    return named(ENHANCE_METHOD);
+                }
+
+                @Override
+                public String getMethodsInterceptor() {
+                    return INTERCEPTOR_CLASS;
+                }
+
+                @Override public boolean isOverrideArgs() {
+                    return false;
+                }
+            }
+        };
+    }
+}
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/resources/skywalking-plugin.def
new file mode 100644
index 000000000..a6070c618
--- /dev/null
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/main/resources/skywalking-plugin.def
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+undertow-2.x-plugin=org.apache.skywalking.apm.plugin.undertow.v2x.define.RequestDispatcherImplInstrumentation
+undertow-2.x-plugin=org.apache.skywalking.apm.plugin.undertow.v2x.define.UndertowInstrumentation
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/ExecuteRootHandlerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/ExecuteRootHandlerInterceptorTest.java
new file mode 100644
index 000000000..993942503
--- /dev/null
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/ExecuteRootHandlerInterceptorTest.java
@@ -0,0 +1,179 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.plugin.undertow.v2x;
+
+import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
+import org.apache.skywalking.apm.agent.core.context.trace.LogDataEntity;
+import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
+import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
+import org.apache.skywalking.apm.agent.core.context.trace.TraceSegmentRef;
+import org.apache.skywalking.apm.agent.core.context.util.KeyValuePair;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
+import org.apache.skywalking.apm.agent.test.helper.SegmentHelper;
+import org.apache.skywalking.apm.agent.test.helper.SegmentRefHelper;
+import org.apache.skywalking.apm.agent.test.helper.SpanHelper;
+import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
+import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
+import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
+import org.apache.skywalking.apm.agent.test.tools.SpanAssert;
+import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
+import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.modules.junit4.PowerMockRunnerDelegate;
+
+import java.net.InetSocketAddress;
+import java.util.List;
+
+import io.undertow.server.HttpHandler;
+import io.undertow.server.HttpServerExchange;
+import io.undertow.server.ServerConnection;
+import io.undertow.util.HeaderMap;
+import io.undertow.util.HttpString;
+
+import static org.apache.skywalking.apm.agent.test.tools.SpanAssert.assertComponent;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+/**
+ * @author chenpengfei
+ */
+@RunWith(PowerMockRunner.class)
+@PowerMockRunnerDelegate(TracingSegmentRunner.class)
+public class ExecuteRootHandlerInterceptorTest {
+
+    private ExecuteRootHandlerInterceptor executeRootHandlerInterceptor;
+
+    @SegmentStoragePoint
+    private SegmentStorage segmentStorage;
+
+    @Rule
+    public AgentServiceRule serviceRule = new AgentServiceRule();
+
+    @Mock
+    private HttpHandler httpHandler;
+    private HttpServerExchange exchange;
+    @Mock
+    ServerConnection serverConnection;
+    private HeaderMap requestHeaders = new HeaderMap();
+    private HeaderMap responseHeaders = new HeaderMap();
+
+    private Object[] arguments;
+    private Class[] argumentType;
+
+    @Mock
+    private MethodInterceptResult methodInterceptResult;
+
+    @Before
+    public void setUp() throws Exception {
+        executeRootHandlerInterceptor = new ExecuteRootHandlerInterceptor();
+        exchange = new HttpServerExchange(serverConnection, requestHeaders, responseHeaders, 0);
+        exchange.setRequestURI("/test/testRequestURL");
+        exchange.setRequestPath("/test/testRequestURL");
+        exchange.setDestinationAddress(new InetSocketAddress("localhost", 8080));
+        exchange.setRequestScheme("http");
+        exchange.setRequestMethod(HttpString.tryFromString("POST"));
+        arguments = new Object[]{httpHandler, exchange};
+        argumentType = new Class[]{httpHandler.getClass(), exchange.getClass()};
+    }
+
+    @Test
+    public void testWithoutSerializedContextData() throws Throwable {
+        executeRootHandlerInterceptor.beforeMethod(EnhancedInstance.class, null, arguments, argumentType, methodInterceptResult);
+        executeRootHandlerInterceptor.afterMethod(EnhancedInstance.class, null, arguments, argumentType, null);
+
+        assertThat(segmentStorage.getTraceSegments().size(), is(1));
+        TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
+        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(traceSegment);
+
+        assertHttpSpan(spans.get(0));
+    }
+
+    @Test
+    public void testWithSerializedContextData() throws Throwable {
+        requestHeaders.put(HttpString.tryFromString(SW3CarrierItem.HEADER_NAME), "1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+
+        executeRootHandlerInterceptor.beforeMethod(EnhancedInstance.class, null, arguments, argumentType, methodInterceptResult);
+        executeRootHandlerInterceptor.afterMethod(EnhancedInstance.class, null, arguments, argumentType, null);
+
+        assertThat(segmentStorage.getTraceSegments().size(), is(1));
+        TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
+        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(traceSegment);
+
+        assertHttpSpan(spans.get(0));
+        assertTraceSegmentRef(traceSegment.getRefs().get(0));
+    }
+
+    @Test
+    public void testStatusCodeNotEquals200() throws Throwable {
+        exchange.setStatusCode(500);
+        executeRootHandlerInterceptor.beforeMethod(EnhancedInstance.class, null, arguments, argumentType, methodInterceptResult);
+        executeRootHandlerInterceptor.afterMethod(EnhancedInstance.class, null, arguments, argumentType, null);
+
+        Assert.assertThat(segmentStorage.getTraceSegments().size(), is(1));
+        TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
+        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(traceSegment);
+
+        assertThat(spans.size(), is(1));
+
+        List<KeyValuePair> tags = SpanHelper.getTags(spans.get(0));
+        assertThat(tags.size(), is(3));
+        assertThat(tags.get(2).getValue(), is("500"));
+
+        assertHttpSpan(spans.get(0));
+        assertThat(SpanHelper.getErrorOccurred(spans.get(0)), is(true));
+    }
+
+    @Test
+    public void testWithUndertowException() throws Throwable {
+        executeRootHandlerInterceptor.beforeMethod(EnhancedInstance.class, null, arguments, argumentType, methodInterceptResult);
+        executeRootHandlerInterceptor.handleMethodException(EnhancedInstance.class, null, arguments, argumentType, new RuntimeException());
+        executeRootHandlerInterceptor.afterMethod(EnhancedInstance.class, null, arguments, argumentType, null);
+
+        assertThat(segmentStorage.getTraceSegments().size(), is(1));
+        TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
+        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(traceSegment);
+
+        assertHttpSpan(spans.get(0));
+        List<LogDataEntity> logDataEntities = SpanHelper.getLogs(spans.get(0));
+        assertThat(logDataEntities.size(), is(1));
+        SpanAssert.assertException(logDataEntities.get(0), RuntimeException.class);
+    }
+
+    private void assertTraceSegmentRef(TraceSegmentRef ref) {
+        assertThat(SegmentRefHelper.getEntryApplicationInstanceId(ref), is(1));
+        assertThat(SegmentRefHelper.getSpanId(ref), is(3));
+        assertThat(SegmentRefHelper.getTraceSegmentId(ref).toString(), is("1.234.111"));
+    }
+
+    private void assertHttpSpan(AbstractTracingSpan span) {
+        assertThat(span.getOperationName(), is("/test/testRequestURL"));
+        assertComponent(span, ComponentsDefine.UNDERTOW);
+        SpanAssert.assertTag(span, 0, "http://localhost:8080/test/testRequestURL");
+        assertThat(span.isEntry(), is(true));
+        SpanAssert.assertLayer(span, SpanLayer.HTTP);
+    }
+}
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/ForwardInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/ForwardInterceptorTest.java
new file mode 100644
index 000000000..0ca917a66
--- /dev/null
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/ForwardInterceptorTest.java
@@ -0,0 +1,103 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.skywalking.apm.plugin.undertow.v2x;
+
+import org.apache.skywalking.apm.agent.core.context.ContextManager;
+import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
+import org.apache.skywalking.apm.agent.core.context.trace.LogDataEntity;
+import org.apache.skywalking.apm.agent.core.context.util.KeyValuePair;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
+import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
+import org.apache.skywalking.apm.agent.test.helper.SpanHelper;
+import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
+import org.apache.skywalking.apm.agent.test.tools.SegmentStorage;
+import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
+import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
+import org.hamcrest.CoreMatchers;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.powermock.modules.junit4.PowerMockRunner;
+import org.powermock.modules.junit4.PowerMockRunnerDelegate;
+
+import java.util.List;
+
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.when;
+
+/**
+ * @author chenpengfei
+ */
+@RunWith(PowerMockRunner.class)
+@PowerMockRunnerDelegate(TracingSegmentRunner.class)
+public class ForwardInterceptorTest {
+
+    private ForwardInterceptor forwardInterceptor;
+
+    @SegmentStoragePoint
+    private SegmentStorage segmentStorage;
+
+    @Rule
+    public AgentServiceRule serviceRule = new AgentServiceRule();
+
+    @Mock
+    ServletRequest request;
+    @Mock
+    ServletResponse response;
+
+    @Mock
+    private MethodInterceptResult methodInterceptResult;
+
+    @Mock
+    private EnhancedInstance enhancedInstance;
+
+    private Object[] arguments;
+    private Class[] argumentType;
+
+    @Before
+    public void setUp() throws Exception {
+        forwardInterceptor = new ForwardInterceptor();
+        when(enhancedInstance.getSkyWalkingDynamicField()).thenReturn("http://localhost:8080/test/testRequestURL");
+        arguments = new Object[]{request, response};
+        argumentType = new Class[]{request.getClass(), response.getClass()};
+    }
+
+    @Test
+    public void testWithoutSerializedContextData() throws Throwable {
+        AbstractSpan span = ContextManager.createLocalSpan("/testForward");
+        forwardInterceptor.onConstruct(enhancedInstance, arguments);
+        forwardInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
+        forwardInterceptor.afterMethod(enhancedInstance, null, arguments, argumentType, null);
+
+        List<LogDataEntity> logDataEntities = SpanHelper.getLogs(span);
+        assertThat(logDataEntities.size(), is(1));
+        List<KeyValuePair> logs = logDataEntities.get(0).getLogs();
+        assertThat(logs.size(), is(1));
+        assertThat(logs.get(0).getKey(), is("forward-url"));
+        assertThat(logs.get(0).getValue(), is("http://localhost:8080/test/testRequestURL"));
+
+        assertThat(ContextManager.getRuntimeContext().get(Constants.FORWARD_REQUEST_FLAG), CoreMatchers.<Object>is(true));
+    }
+}
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml
index f0def7888..be3d7b5e5 100644
--- a/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sdk-plugin</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-xmemcached-2.x-plugin</artifactId>
@@ -32,7 +32,6 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
         <xmemcached.version>2.0.0</xmemcached.version>
-        <log4j-core.version>2.4.1</log4j-core.version>
     </properties>
 
     <dependencies>
@@ -42,11 +41,5 @@
             <version>${xmemcached.version}</version>
             <scope>provided</scope>
         </dependency>
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>${log4j-core.version}</version>
-            <scope>test</scope>
-        </dependency>
     </dependencies>
 </project>
diff --git a/apm-sniffer/apm-test-tools/pom.xml b/apm-sniffer/apm-test-tools/pom.xml
index 75d647fca..9996438f4 100644
--- a/apm-sniffer/apm-test-tools/pom.xml
+++ b/apm-sniffer/apm-test-tools/pom.xml
@@ -22,7 +22,7 @@
     <parent>
         <groupId>org.apache.skywalking</groupId>
         <artifactId>apm-sniffer</artifactId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
 
     <artifactId>apm-test-tools</artifactId>
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml
index c88554516..51d7ec70b 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-1.x-activation/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-toolkit-activation</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/pom.xml
index c279e6e6e..4882900c4 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/pom.xml
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-log4j-2.x-activation/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-toolkit-activation</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/pom.xml
index f285ea072..8622c7c14 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/pom.xml
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-logback-1.x-activation/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-toolkit-activation</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/pom.xml
index 5e68778b1..9f37eda7b 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/pom.xml
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-toolkit-activation</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-activation/pom.xml
index 4ff12c35a..392f6b642 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-activation/pom.xml
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-trace-activation/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-toolkit-activation</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/apm-toolkit-activation/pom.xml b/apm-sniffer/apm-toolkit-activation/pom.xml
index b081907ac..1bec13618 100644
--- a/apm-sniffer/apm-toolkit-activation/pom.xml
+++ b/apm-sniffer/apm-toolkit-activation/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sniffer</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>pom</packaging>
diff --git a/apm-sniffer/optional-plugins/optional-spring-plugins/pom.xml b/apm-sniffer/optional-plugins/optional-spring-plugins/pom.xml
index 7f01cfacb..1f68be7d5 100644
--- a/apm-sniffer/optional-plugins/optional-spring-plugins/pom.xml
+++ b/apm-sniffer/optional-plugins/optional-spring-plugins/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>optional-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>pom</packaging>
diff --git a/apm-sniffer/optional-plugins/optional-spring-plugins/spring-annotation-plugin/pom.xml b/apm-sniffer/optional-plugins/optional-spring-plugins/spring-annotation-plugin/pom.xml
index e8bd0efd6..d5456444f 100644
--- a/apm-sniffer/optional-plugins/optional-spring-plugins/spring-annotation-plugin/pom.xml
+++ b/apm-sniffer/optional-plugins/optional-spring-plugins/spring-annotation-plugin/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>optional-spring-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
     <packaging>jar</packaging>
diff --git a/apm-sniffer/optional-plugins/pom.xml b/apm-sniffer/optional-plugins/pom.xml
index 34cf70549..933438746 100644
--- a/apm-sniffer/optional-plugins/pom.xml
+++ b/apm-sniffer/optional-plugins/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm-sniffer</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/optional-plugins/trace-ignore-plugin/pom.xml b/apm-sniffer/optional-plugins/trace-ignore-plugin/pom.xml
index a2361192c..2b73202b6 100644
--- a/apm-sniffer/optional-plugins/trace-ignore-plugin/pom.xml
+++ b/apm-sniffer/optional-plugins/trace-ignore-plugin/pom.xml
@@ -20,7 +20,7 @@
     <parent>
         <artifactId>optional-plugins</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-sniffer/pom.xml b/apm-sniffer/pom.xml
index 08c0a3ebb..4a4eceb8d 100644
--- a/apm-sniffer/pom.xml
+++ b/apm-sniffer/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-webapp/pom.xml b/apm-webapp/pom.xml
index cdfde64fb..3af790568 100644
--- a/apm-webapp/pom.xml
+++ b/apm-webapp/pom.xml
@@ -21,7 +21,7 @@
     <parent>
         <artifactId>apm</artifactId>
         <groupId>org.apache.skywalking</groupId>
-        <version>5.0.0-RC-SNAPSHOT</version>
+        <version>5.0.0-GA-SNAPSHOT</version>
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
diff --git a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/proxy/NIWSServerListTest.java b/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/proxy/NIWSServerListTest.java
deleted file mode 100644
index 38748cec0..000000000
--- a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/proxy/NIWSServerListTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.webapp.proxy;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.core.env.AbstractEnvironment;
-import org.springframework.core.env.Environment;
-import org.springframework.core.env.MapPropertySource;
-import org.springframework.test.annotation.DirtiesContext;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import com.netflix.loadbalancer.Server;
-import com.netflix.loadbalancer.ServerList;
-import com.netflix.loadbalancer.ZoneAwareLoadBalancer;
-import org.springframework.cloud.netflix.ribbon.SpringClientFactory;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@SpringBootTest
-@DirtiesContext
-public class NIWSServerListTest {
-    @Autowired
-    private Environment env;
-
-    @Autowired
-    private SpringClientFactory factory;
-
-    private Map<String, String> serverListClassNames = new HashMap<String, String>();
-
-    @Before
-    public void initServerListClassNames() {
-        for (Iterator<?> iter = ((AbstractEnvironment) env).getPropertySources().iterator(); iter.hasNext();) {
-            Object propertySource = iter.next();
-            if (propertySource instanceof MapPropertySource) {
-                Map<String, Object> mapPropertySource = ((MapPropertySource) propertySource).getSource();
-                for (Map.Entry<String, Object> entry : mapPropertySource.entrySet()) {
-                    String key = entry.getKey();
-                    int index;
-                    if (key.endsWith(".NIWSServerListClassName") &&
-                            (index = key.indexOf(".ribbon")) > 0) {
-                        String clientName = key.substring(0, index);
-                        serverListClassNames.put(clientName,(String)entry.getValue());
-                    }
-                }
-            }
-        }
-    }
-
-    @Test
-    public void serverListClass() throws ClassNotFoundException {
-        for (String serverListClassName : serverListClassNames.values()) {
-            Class<?> clazz = Class.forName(serverListClassName);
-        }
-    }
-
-    @Test
-    public void serverListFliter() {
-        for (Map.Entry<String, String> entry : serverListClassNames.entrySet()) {
-            String clientName = entry.getKey();
-            String serverListClassName = entry.getValue();
-            ServerList<Server> serverList = getLoadBalancer(clientName).getServerListImpl();
-            assertNotNull("Client: " + clientName + "'s ServerListImpl is null",serverList);
-            assertEquals("Clinet: " + clientName + "'s ServerListImpl not Same with setting in configs",
-                    serverListClassName, serverList.getClass().getName());
-        }
-    }
-
-    @SuppressWarnings("unchecked")
-    private ZoneAwareLoadBalancer<Server> getLoadBalancer(String name) {
-        return (ZoneAwareLoadBalancer<Server>)this.factory.getLoadBalancer(name);
-    }
-}
diff --git a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/proxy/RewritePathFilterTest.java b/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/proxy/RewritePathFilterTest.java
deleted file mode 100644
index 013d96d3f..000000000
--- a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/proxy/RewritePathFilterTest.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.webapp.proxy;
-
-import com.netflix.zuul.context.RequestContext;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.*;
-import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.PRE_DECORATION_FILTER_ORDER;
-
-public class RewritePathFilterTest {
-
-    private RewritePathFilter filter = new RewritePathFilter();
-
-    @Before
-    public void init() {
-        filter.setPath("/graphql");
-    }
-
-    @Test
-    public void filterOrder() {
-        assertThat(filter.filterOrder(), is(PRE_DECORATION_FILTER_ORDER + 2));
-    }
-
-    @Test
-    public void filterType() {
-        assertThat(filter.filterType(), is("pre"));
-    }
-
-    @Test
-    public void shouldFilter() {
-        assertFalse(filter.shouldFilter());
-        RequestContext.getCurrentContext().set("requestURI");
-        assertTrue(filter.shouldFilter());
-    }
-
-    @Test
-    public void run() {
-        filter.run();
-        assertThat(RequestContext.getCurrentContext().get("requestURI"), is("/graphql"));
-    }
-}
\ No newline at end of file
diff --git a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/LoginFilterTest.java b/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/LoginFilterTest.java
deleted file mode 100644
index cb20ba2ef..000000000
--- a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/LoginFilterTest.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.webapp.security;
-
-import com.netflix.zuul.context.RequestContext;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import static org.hamcrest.core.Is.is;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.springframework.cloud.netflix.zuul.filters.support.FilterConstants.PRE_DECORATION_FILTER_ORDER;
-
-
-public class LoginFilterTest {
-    
-    private LoginFilter loginFilter;
-
-    @Before
-    public void setUp() {
-        UserChecker checker = new UserChecker();
-        UserChecker.User user = new UserChecker.User();
-        user.setPassword("admin");
-        checker.getUser().put("admin", user);
-        loginFilter = new LoginFilter(checker);
-    }
-
-    @After
-    public void tearDown() {
-        RequestContext.testSetCurrentContext(null);
-    }
-
-    @Test
-    public void assertFilterType() {
-        assertThat(loginFilter.filterType(), is("pre"));
-    }
-
-    @Test
-    public void assertFilterOrder() {
-        assertThat(loginFilter.filterOrder(), is(PRE_DECORATION_FILTER_ORDER + 1));
-    }
-
-    @Test
-    public void assertShouldFilter() {
-        RequestContext ctx = new RequestContext();
-        ctx.set("requestURI", "/login/account");
-        RequestContext.testSetCurrentContext(ctx);
-        assertTrue(loginFilter.shouldFilter());
-        ctx.set("requestURI", "/dashboard");
-        assertFalse(loginFilter.shouldFilter());
-    }
-}
\ No newline at end of file
diff --git a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/LoginTest.java b/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/LoginTest.java
deleted file mode 100644
index e077d5149..000000000
--- a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/LoginTest.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.webapp.security;
-
-import com.netflix.zuul.context.RequestContext;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.StringReader;
-import java.lang.reflect.UndeclaredThrowableException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.runners.MockitoJUnitRunner;
-
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-@RunWith(MockitoJUnitRunner.class)
-public class LoginTest {
-
-    private LoginFilter loginFilter;
-
-    @Mock
-    private RequestContext ctx;
-
-    @Mock
-    private HttpServletRequest request;
-    
-    @Mock
-    private HttpServletResponse response;
-
-    @Before
-    public void setUp() {
-        UserChecker checker = new UserChecker();
-        UserChecker.User user = new UserChecker.User();
-        user.setPassword("admin");
-        checker.getUser().put("admin", user);
-        loginFilter = new LoginFilter(checker);
-        when(ctx.getRequest()).thenReturn(request);
-        when(ctx.getResponse()).thenReturn(response);
-        RequestContext.testSetCurrentContext(ctx);
-    }
-
-    @Test
-    public void assertSuccessLogin() throws IOException {
-        when(request.getReader()).thenReturn(new BufferedReader(new StringReader("{\"userName\": \"admin\", \"password\":\"admin\"}")));
-        loginFilter.run();
-        assertHeaderAndStatusCode();
-        verify(ctx).setResponseBody("{\"status\":\"ok\",\"currentAuthority\":\"admin\"}");
-    }
-    
-    @Test
-    public void assertFailLogin() throws IOException {
-        when(request.getReader()).thenReturn(new BufferedReader(new StringReader("{\"userName\": \"admin\", \"password\":\"888888\"}")));
-        loginFilter.run();
-        assertHeaderAndStatusCode();
-        verify(ctx).setResponseBody("{\"status\":\"error\",\"currentAuthority\":\"guest\"}");
-    }
-
-    @Test(expected = UndeclaredThrowableException.class)
-    public void assertException() throws IOException {
-        when(request.getReader()).thenThrow(new IOException());
-        loginFilter.run();
-    }
-    
-    private void assertHeaderAndStatusCode() {
-        verify(ctx).setResponseStatusCode(HttpServletResponse.SC_OK);
-        verify(response).setContentType("application/json");
-        verify(response).setCharacterEncoding("UTF-8");
-    }
-}
diff --git a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/UserCheckerTest.java b/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/UserCheckerTest.java
deleted file mode 100644
index 81c266b41..000000000
--- a/apm-webapp/src/test/java/org/apache/skywalking/apm/webapp/security/UserCheckerTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.apm.webapp.security;
-
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-public class UserCheckerTest {
-
-    @Test
-    public void assertCheckSuccess() {
-        UserChecker checker = new UserChecker();
-        UserChecker.User user = new UserChecker.User();
-        user.setPassword("888888");
-        checker.getUser().put("admin", user);
-        assertTrue(checker.check(new Account() {
-            @Override public String userName() {
-                return "admin";
-            }
-
-            @Override public String password() {
-                return "888888";
-            }
-        }));
-    }
-
-    @Test
-    public void assertCheckFail() {
-        UserChecker checker = new UserChecker();
-        UserChecker.User user = new UserChecker.User();
-        user.setPassword("123456");
-        checker.getUser().put("guest", user);
-        assertFalse(checker.check(new Account() {
-            @Override public String userName() {
-                return "admin";
-            }
-
-            @Override public String password() {
-                return "888888";
-            }
-        }));
-        assertFalse(checker.check(new Account() {
-            @Override public String userName() {
-                return "guest";
-            }
-
-            @Override public String password() {
-                return "888888";
-            }
-        }));
-        assertFalse(checker.check(new Account() {
-            @Override public String userName() {
-                return "admin";
-            }
-
-            @Override public String password() {
-                return "123456";
-            }
-        }));
-        assertFalse(checker.check(new Account() {
-            @Override public String userName() {
-                return "";
-            }
-
-            @Override public String password() {
-                return "123456";
-            }
-        }));
-        assertFalse(checker.check(new Account() {
-            @Override public String userName() {
-                return "admin";
-            }
-
-            @Override public String password() {
-                return "";
-            }
-        }));
-    }
-}
\ No newline at end of file
diff --git a/docs/Supported-list.md b/docs/Supported-list.md
index 243d69887..b2fc63ed3 100644
--- a/docs/Supported-list.md
+++ b/docs/Supported-list.md
@@ -9,6 +9,7 @@
   * [Resin](http://www.caucho.com/resin-4.0/) 3 (Optional¹)
   * [Resin](http://www.caucho.com/resin-4.0/) 4 (Optional¹)
   * [Jetty Server](http://www.eclipse.org/jetty/) 9
+  * [Undertow](http://undertow.io/)  2.0.0.Final -> 2.0.13.Final
 * HTTP Client
   * [Feign](https://github.com/OpenFeign/feign) 9.x
   * [Netflix Spring Cloud Feign](https://github.com/spring-cloud/spring-cloud-netflix/tree/master/spring-cloud-starter-feign) 1.1.x, 1.2.x, 1.3.x
diff --git a/licenses/LICENSE-antd.txt b/licenses/LICENSE-antd.txt
new file mode 100644
index 000000000..12189b627
--- /dev/null
+++ b/licenses/LICENSE-antd.txt
@@ -0,0 +1,22 @@
+MIT LICENSE
+
+Copyright (c) 2015-present Alipay.com, https://www.alipay.com/
+
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so, subject to
+the following conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/pom.xml b/pom.xml
index ce126141d..e63eb3513 100644
--- a/pom.xml
+++ b/pom.xml
@@ -22,7 +22,7 @@
 
     <groupId>org.apache.skywalking</groupId>
     <artifactId>apm</artifactId>
-    <version>5.0.0-RC-SNAPSHOT</version>
+    <version>5.0.0-GA-SNAPSHOT</version>
 
     <parent>
         <groupId>org.apache</groupId>


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services