You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by ke...@apache.org on 2020/01/17 12:34:07 UTC

[skywalking] branch master updated: Drop support of protocol v1 (sw3) (#4244)

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

kezhenxu94 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git


The following commit(s) were added to refs/heads/master by this push:
     new 019af3e  Drop support of protocol v1 (sw3) (#4244)
019af3e is described below

commit 019af3e3456fff49500eb6440b94eb95aa3a4ed9
Author: kezhenxu94 <ke...@apache.org>
AuthorDate: Fri Jan 17 20:33:52 2020 +0800

    Drop support of protocol v1 (sw3) (#4244)
    
    * Drop support of protocol v1 (sw3)
    
    * Remove versioning logic further
    
    * Remove more version5-only classes
    
    * Commit missing files
    
    * Update submodule and address review comment
    
    * Fix failed tests
---
 .../skywalking/apm/network/ProtocolVersion.java    |  23 +-
 apm-protocol/apm-network/src/main/proto            |   2 +-
 .../apm/network/trace/proto/GRPCNoServerTest.java  |  10 +-
 .../skywalking/apm/agent/core/conf/Config.java     |  24 +-
 .../apm/agent/core/context/ContextCarrier.java     |  58 +----
 .../apm/agent/core/context/SW3CarrierItem.java     |  38 ---
 .../core/context/ContextCarrierV2HeaderTest.java   | 109 ++------
 .../apm/agent/core/context/ContextManagerTest.java |  25 +-
 .../activemq/ActiveMQConsumerInterceptorTest.java  |   8 -
 .../apm/plugin/dubbo/DubboInterceptorTest.java     |  11 +-
 .../apm/plugin/dubbo/DubboInterceptorTest.java     |  11 +-
 .../jetty/v9/server/HandleInterceptorTest.java     |  12 +-
 .../plugin/kafka/KafkaConsumerInterceptorTest.java |  11 +-
 .../plugin/motan/MotanProviderInterceptorTest.java |  12 +-
 .../pulsar/PulsarConsumerInterceptorTest.java      |  13 +-
 .../rabbitmq/RabbitMQConsumerInterceptorTest.java  |   3 +-
 .../SynchronousDispatcherInterceptorTest.java      |  24 --
 .../sofarpc/SofaRpcProviderInterceptorTest.java    |  13 +-
 .../apm/plugin/struts2/Struts2InterceptorTest.java |  12 +-
 .../tomcat78x/TomcatInvokeInterceptorTest.java     |  13 +-
 .../undertow/v2x/RootHandlerInterceptorTest.java   |   8 -
 .../plugin/undertow/v2x/TracingHandlerTest.java    |   7 +-
 .../opentracing/SkywalkingSpanActivationTest.java  |  24 +-
 docs/en/protocols/README.md                        |  14 +-
 ...ross-Process-Propagation-Headers-Protocol-v1.md |  62 -----
 ...ross-Process-Propagation-Headers-Protocol-v2.md |   7 +-
 docs/en/protocols/Trace-Data-Protocol-v1.md        | 213 ----------------
 .../en/setup/service-agent/java-agent/Namespace.md |   4 +-
 docs/en/setup/service-agent/java-agent/README.md   |   2 -
 .../oap/server/core/query/TraceQueryService.java   | 138 +---------
 .../oap/server/library/buffer/BufferData.java      |   5 +-
 .../library/buffer/BufferStreamTestCase.java       |  69 -----
 .../receiver/jvm/provider/JVMModuleProvider.java   |   1 -
 .../provider/handler/JVMMetricsServiceHandler.java |  57 -----
 .../handler/JVMMetricsServiceHandlerMainTest.java  | 143 -----------
 .../register/provider/RegisterModuleProvider.java  |  24 +-
 .../v5/grpc/ApplicationRegisterHandler.java        |  59 -----
 .../v5/grpc/InstanceDiscoveryServiceHandler.java   |  98 -------
 .../grpc/NetworkAddressRegisterServiceHandler.java |  63 -----
 .../v5/grpc/ServiceNameDiscoveryHandler.java       |  65 -----
 .../v5/rest/ApplicationRegisterServletHandler.java |  71 ------
 .../v5/rest/InstanceDiscoveryServletHandler.java   | 102 --------
 .../v5/rest/InstanceHeartBeatServletHandler.java   |  82 ------
 .../rest/NetworkAddressRegisterServletHandler.java |  76 ------
 .../rest/ServiceNameDiscoveryServiceHandler.java   |  86 -------
 .../v5/ApplicationRegisterHandlerTestCase.java     |  48 ----
 .../InstanceDiscoveryServiceHandlerTestCase.java   |  53 ----
 .../handler/v5/InstanceHeartBeatTestCase.java      |  42 ---
 ...tworkAddressRegisterServiceHandlerTestCase.java |  46 ----
 .../v5/ServiceNameDiscoveryHandlerTestCase.java    |  49 ----
 .../trace/provider/TraceModuleProvider.java        |  14 +-
 .../provider/handler/v5/grpc/SegmentCounter.java   |  34 ---
 .../v5/grpc/TraceSegmentServiceHandler.java        |  70 -----
 .../v5/rest/TraceSegmentServletHandler.java        |  78 ------
 .../rest/reader/KeyWithStringValueJsonReader.java  |  54 ----
 .../handler/v5/rest/reader/LogJsonReader.java      |  60 -----
 .../v5/rest/reader/ReferenceJsonReader.java        |  92 -------
 .../handler/v5/rest/reader/SegmentJsonReader.java  |  77 ------
 .../handler/v5/rest/reader/SpanJsonReader.java     | 126 ---------
 .../handler/v5/rest/reader/TraceSegment.java       |  45 ----
 .../v5/rest/reader/TraceSegmentJsonReader.java     |  64 -----
 .../handler/v5/rest/reader/UniqueIdJsonReader.java |  40 ---
 .../trace/provider/parser/SegmentParse.java        | 284 ---------------------
 .../trace/provider/parser/SegmentParseV2.java      |  55 ++--
 .../parser/SegmentParserListenerManager.java       |   2 +-
 .../parser/decorator/ReferenceDecorator.java       | 129 ++--------
 .../provider/parser/decorator/SegmentCoreInfo.java |   3 +-
 .../parser/decorator/SegmentDecorator.java         |  45 +---
 .../provider/parser/decorator/SpanDecorator.java   | 168 ++++--------
 .../listener/endpoint/MultiScopesSpanListener.java |  21 +-
 .../listener/segment/SegmentSpanListener.java      |  23 +-
 .../SegmentStandardizationWorker.java              |   4 +-
 .../server/receiver/trace/mock/AgentDataMock.java  | 102 --------
 .../server/receiver/trace/mock/RegisterMock.java   |  80 ------
 .../server/receiver/trace/mock/ServiceAMock.java   | 116 ---------
 .../server/receiver/trace/mock/ServiceBMock.java   | 150 -----------
 .../server/receiver/trace/mock/ServiceCMock.java   | 103 --------
 .../receiver/trace/mock/UniqueIdBuilder.java       |  39 ---
 .../skywalking/plugin/test/mockcollector/Main.java |   5 -
 .../service/MockApplicationRegisterService.java    |  60 -----
 .../service/MockJVMMetricsService.java             |  33 ---
 .../service/MockJVMMetricsV1Service.java           |  34 ---
 .../service/MockServiceNameDiscoveryService.java   |  39 ---
 .../service/MockTraceSegmentV1Service.java         |  81 ------
 84 files changed, 253 insertions(+), 4227 deletions(-)

diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/StreamJsonReader.java b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/ProtocolVersion.java
similarity index 71%
rename from oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/StreamJsonReader.java
rename to apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/ProtocolVersion.java
index cc144c6..899c281 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/StreamJsonReader.java
+++ b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/ProtocolVersion.java
@@ -16,14 +16,23 @@
  *
  */
 
-package org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
+package org.apache.skywalking.apm.network;
 
 /**
- * @author peng-yongsheng
+ * The version of the protocol between agent and backend.
+ *
+ * @author kezhenxu94
  */
-public interface StreamJsonReader<T> {
-    T read(JsonReader reader) throws IOException;
+public enum ProtocolVersion {
+    V2(2);
+
+    private final int number;
+
+    ProtocolVersion(final int number) {
+        this.number = number;
+    }
+
+    public int number() {
+        return number;
+    }
 }
diff --git a/apm-protocol/apm-network/src/main/proto b/apm-protocol/apm-network/src/main/proto
index 7ccf1cf..eebd016 160000
--- a/apm-protocol/apm-network/src/main/proto
+++ b/apm-protocol/apm-network/src/main/proto
@@ -1 +1 @@
-Subproject commit 7ccf1cf6eb8001f61a76e2c8d200629a4807fc53
+Subproject commit eebd016e32b0808416923acf04dcd31d9eb86c09
diff --git a/apm-protocol/apm-network/src/test/java/org/apache/skywalking/apm/network/trace/proto/GRPCNoServerTest.java b/apm-protocol/apm-network/src/test/java/org/apache/skywalking/apm/network/trace/proto/GRPCNoServerTest.java
index 45e32ee..d27914b 100644
--- a/apm-protocol/apm-network/src/test/java/org/apache/skywalking/apm/network/trace/proto/GRPCNoServerTest.java
+++ b/apm-protocol/apm-network/src/test/java/org/apache/skywalking/apm/network/trace/proto/GRPCNoServerTest.java
@@ -26,9 +26,9 @@ import io.grpc.StatusRuntimeException;
 import io.grpc.internal.DnsNameResolverProvider;
 import io.grpc.netty.NettyChannelBuilder;
 import io.grpc.stub.StreamObserver;
+import org.apache.skywalking.apm.network.common.Commands;
+import org.apache.skywalking.apm.network.language.agent.v2.TraceSegmentReportServiceGrpc;
 import org.junit.Assert;
-import org.apache.skywalking.apm.network.language.agent.Downstream;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentServiceGrpc;
 import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
 
 /**
@@ -42,10 +42,10 @@ public class GRPCNoServerTest {
                 .maxInboundMessageSize(1024 * 1024 * 50)
                 .usePlaintext();
         ManagedChannel channel = channelBuilder.build();
-        TraceSegmentServiceGrpc.TraceSegmentServiceStub serviceStub = TraceSegmentServiceGrpc.newStub(channel);
+        TraceSegmentReportServiceGrpc.TraceSegmentReportServiceStub serviceStub = TraceSegmentReportServiceGrpc.newStub(channel);
         final Status[] status = {null};
-        StreamObserver<UpstreamSegment> streamObserver = serviceStub.collect(new StreamObserver<Downstream>() {
-            @Override public void onNext(Downstream value) {
+        StreamObserver<UpstreamSegment> streamObserver = serviceStub.collect(new StreamObserver<Commands>() {
+            @Override public void onNext(Commands value) {
 
             }
 
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
index ff12bdb..084e819 100755
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/conf/Config.java
@@ -53,7 +53,7 @@ public class Config {
         public static String AUTHENTICATION = "";
 
         /**
-         * Negative or zero means off, by default. {@link #SAMPLE_N_PER_3_SECS} means sampling N {@link TraceSegment} in
+         * Negative or zero means off, by default. {@code #SAMPLE_N_PER_3_SECS} means sampling N {@link TraceSegment} in
          * 3 seconds tops.
          */
         public static int SAMPLE_N_PER_3_SECS = -1;
@@ -64,29 +64,19 @@ public class Config {
         public static String IGNORE_SUFFIX = ".jpg,.jpeg,.js,.css,.png,.bmp,.gif,.ico,.mp3,.mp4,.html,.svg";
 
         /**
-         * The max number of spans in a single segment. Through this config item, skywalking keep your application
+         * The max number of spans in a single segment. Through this config item, SkyWalking keep your application
          * memory cost estimated.
          */
         public static int SPAN_LIMIT_PER_SEGMENT = 300;
 
         /**
-         * If true, skywalking agent will save all instrumented classes files in `/debugging` folder. Skywalking team
+         * If true, SkyWalking agent will save all instrumented classes files in `/debugging` folder. SkyWalking team
          * may ask for these files in order to resolve compatible problem.
          */
         public static boolean IS_OPEN_DEBUGGING_CLASS = false;
 
         /**
-         * Active V2 header in default
-         */
-        public static boolean ACTIVE_V2_HEADER = true;
-
-        /**
-         * Deactive V1 header in default
-         */
-        public static boolean ACTIVE_V1_HEADER = false;
-
-        /**
-         * The identify of the instance
+         * The identifier of the instance
          */
         public static String INSTANCE_UUID = "";
 
@@ -95,7 +85,7 @@ public class Config {
          * e.g.
          *   agent.instance_properties[org]=apache
          */
-        public static Map<String, String> INSTANCE_PROPERTIES = new HashMap<String, String>();
+        public static Map<String, String> INSTANCE_PROPERTIES = new HashMap<>();
 
         /**
          * How depth the agent goes, when log cause exceptions.
@@ -260,7 +250,7 @@ public class Config {
              * Some information after custom enhancements, this configuration is used by the custom enhancement plugin.
              * And using Map CONTEXT for avoiding classloader isolation issue.
              */
-            public static Map<String, Object> CONTEXT = new HashMap<String, Object>();
+            public static Map<String, Object> CONTEXT = new HashMap<>();
         }
 
         public static class Tomcat {
@@ -341,7 +331,7 @@ public class Config {
          * Operation name group rules
          */
         public static class OPGroup {
-            /**
+            /*
              * Since 6.6.0, exit span is not requesting endpoint register,
              * this group rule is not required.
              *
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextCarrier.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextCarrier.java
index 91d728e..33d4aed 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextCarrier.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/ContextCarrier.java
@@ -21,7 +21,6 @@ package org.apache.skywalking.apm.agent.core.context;
 import java.io.Serializable;
 import java.util.List;
 import org.apache.skywalking.apm.agent.core.base64.Base64;
-import org.apache.skywalking.apm.agent.core.conf.Config;
 import org.apache.skywalking.apm.agent.core.context.ids.DistributedTraceId;
 import org.apache.skywalking.apm.agent.core.context.ids.ID;
 import org.apache.skywalking.apm.agent.core.context.ids.PropagatedTraceId;
@@ -77,21 +76,8 @@ public class ContextCarrier implements Serializable {
     private DistributedTraceId primaryDistributedTraceId;
 
     public CarrierItem items() {
-        CarrierItemHead head;
-        if (Config.Agent.ACTIVE_V2_HEADER && Config.Agent.ACTIVE_V1_HEADER) {
-            SW3CarrierItem  carrierItem = new SW3CarrierItem(this, null);
-            SW6CarrierItem sw6CarrierItem = new SW6CarrierItem(this, carrierItem);
-            head = new CarrierItemHead(sw6CarrierItem);
-        } else if (Config.Agent.ACTIVE_V2_HEADER) {
-            SW6CarrierItem sw6CarrierItem = new SW6CarrierItem(this, null);
-            head = new CarrierItemHead(sw6CarrierItem);
-        } else if (Config.Agent.ACTIVE_V1_HEADER) {
-            SW3CarrierItem carrierItem = new SW3CarrierItem(this, null);
-            head = new CarrierItemHead(carrierItem);
-        } else {
-            throw new IllegalArgumentException("At least active v1 or v2 header.");
-        }
-        return head;
+        SW6CarrierItem sw6CarrierItem = new SW6CarrierItem(this, null);
+        return new CarrierItemHead(sw6CarrierItem);
     }
 
     /**
@@ -101,36 +87,16 @@ public class ContextCarrier implements Serializable {
      */
     String serialize(HeaderVersion version) {
         if (this.isValid(version)) {
-            if (HeaderVersion.v1.equals(version)) {
-                if (Config.Agent.ACTIVE_V1_HEADER) {
-                    return StringUtil.join('|',
-                        this.getTraceSegmentId().encode(),
-                        this.getSpanId() + "",
-                        this.getParentServiceInstanceId() + "",
-                        this.getEntryServiceInstanceId() + "",
-                        this.getPeerHost(),
-                        this.getEntryEndpointName(),
-                        this.getParentEndpointName(),
-                        this.getPrimaryDistributedTraceId().encode());
-                } else {
-                    return "";
-                }
-            } else {
-                if (Config.Agent.ACTIVE_V2_HEADER) {
-                    return StringUtil.join('-',
-                        "1",
-                        Base64.encode(this.getPrimaryDistributedTraceId().encode()),
-                        Base64.encode(this.getTraceSegmentId().encode()),
-                        this.getSpanId() + "",
-                        this.getParentServiceInstanceId() + "",
-                        this.getEntryServiceInstanceId() + "",
-                        Base64.encode(this.getPeerHost()),
-                        Base64.encode(this.getEntryEndpointName()),
-                        Base64.encode(this.getParentEndpointName()));
-                } else {
-                    return "";
-                }
-            }
+            return StringUtil.join('-',
+                "1",
+                Base64.encode(this.getPrimaryDistributedTraceId().encode()),
+                Base64.encode(this.getTraceSegmentId().encode()),
+                this.getSpanId() + "",
+                this.getParentServiceInstanceId() + "",
+                this.getEntryServiceInstanceId() + "",
+                Base64.encode(this.getPeerHost()),
+                Base64.encode(this.getEntryEndpointName()),
+                Base64.encode(this.getParentEndpointName()));
         } else {
             return "";
         }
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/SW3CarrierItem.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/SW3CarrierItem.java
deleted file mode 100644
index 5d05778..0000000
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/context/SW3CarrierItem.java
+++ /dev/null
@@ -1,38 +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.agent.core.context;
-
-/**
- * @author wusheng
- */
-public class SW3CarrierItem extends CarrierItem {
-    public static final String HEADER_NAME = "sw3";
-    private ContextCarrier carrier;
-
-    public SW3CarrierItem(ContextCarrier carrier, CarrierItem next) {
-        super(HEADER_NAME, carrier.serialize(ContextCarrier.HeaderVersion.v1), next);
-        this.carrier = carrier;
-    }
-
-    @Override
-    public void setHeadValue(String headValue) {
-        carrier.deserialize(headValue, ContextCarrier.HeaderVersion.v1);
-    }
-}
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextCarrierV2HeaderTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextCarrierV2HeaderTest.java
index a2821d7..9ad3b77 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextCarrierV2HeaderTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextCarrierV2HeaderTest.java
@@ -20,7 +20,6 @@ package org.apache.skywalking.apm.agent.core.context;
 
 import java.util.ArrayList;
 import java.util.List;
-import org.apache.skywalking.apm.agent.core.conf.Config;
 import org.apache.skywalking.apm.agent.core.context.ids.DistributedTraceId;
 import org.apache.skywalking.apm.agent.core.context.ids.ID;
 import org.apache.skywalking.apm.agent.core.context.ids.PropagatedTraceId;
@@ -28,30 +27,6 @@ import org.junit.Assert;
 import org.junit.Test;
 
 public class ContextCarrierV2HeaderTest {
-    @Test
-    public void testCompatibleHeaderKeys() {
-        Config.Agent.ACTIVE_V1_HEADER = true;
-        ContextCarrier contextCarrier = new ContextCarrier();
-        CarrierItem next = contextCarrier.items();
-        boolean hasSW3 = false;
-        boolean hasSW6 = false;
-        try {
-            while (next.hasNext()) {
-                next = next.next();
-                if (next.getHeadKey().equals("sw3")) {
-                    hasSW3 = true;
-                } else if (next.getHeadKey().equals("sw6")) {
-                    hasSW6 = true;
-                } else {
-                    Assert.fail("unexpected key");
-                }
-            }
-        } finally {
-            Config.Agent.ACTIVE_V1_HEADER = false;
-        }
-        Assert.assertTrue(hasSW3);
-        Assert.assertTrue(hasSW6);
-    }
 
     @Test
     public void testDeserializeV2Header() {
@@ -59,31 +34,7 @@ public class ContextCarrierV2HeaderTest {
         CarrierItem next = contextCarrier.items();
         while (next.hasNext()) {
             next = next.next();
-            if (next.getHeadKey().equals("sw3")) {
-            } else if (next.getHeadKey().equals("sw6")) {
-                next.setHeadValue("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw--");
-            } else {
-                Assert.fail("unexpected key");
-            }
-        }
-
-        Assert.assertTrue(contextCarrier.isValid());
-
-        Config.Agent.ACTIVE_V1_HEADER = true;
-        try {
-            contextCarrier = new ContextCarrier();
-            next = contextCarrier.items();
-            while (next.hasNext()) {
-                next = next.next();
-                if (next.getHeadKey().equals("sw3")) {
-                    next.setHeadValue("1.2343.234234234|1|1|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|1.2343.234234234");
-                } else if (next.getHeadKey().equals("sw6")) {
-                } else {
-                    Assert.fail("unexpected key");
-                }
-            }
-        } finally {
-            Config.Agent.ACTIVE_V1_HEADER = false;
+            next.setHeadValue("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw--");
         }
 
         Assert.assertTrue(contextCarrier.isValid());
@@ -91,7 +42,7 @@ public class ContextCarrierV2HeaderTest {
 
     @Test
     public void testSerializeV2Header() {
-        List<DistributedTraceId> distributedTraceIds = new ArrayList<DistributedTraceId>();
+        List<DistributedTraceId> distributedTraceIds = new ArrayList<>();
         distributedTraceIds.add(new PropagatedTraceId("3.4.5"));
 
         ContextCarrier contextCarrier = new ContextCarrier();
@@ -107,37 +58,18 @@ public class ContextCarrierV2HeaderTest {
         CarrierItem next = contextCarrier.items();
         while (next.hasNext()) {
             next = next.next();
-            if (next.getHeadKey().equals("sw3")) {
-                Assert.assertEquals("", next.getHeadValue());
-            } else if (next.getHeadKey().equals("sw6")) {
-                /**
-                 * sampleFlag-traceId-segmentId-spanId-parentAppInstId-entryAppInstId-peerHost-entryEndpoint-parentEndpoint
-                 *
-                 * "1-3.4.5-1.2.3-4-1-1-#127.0.0.1:8080-#/portal-123"
-                 */
-                Assert.assertEquals("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWw=-MTIz", next.getHeadValue());
-            } else {
-                Assert.fail("unexpected key");
-            }
+            /*
+             * sampleFlag-traceId-segmentId-spanId-parentAppInstId-entryAppInstId-peerHost-entryEndpoint-parentEndpoint
+             *
+             * "1-3.4.5-1.2.3-4-1-1-#127.0.0.1:8080-#/portal-123"
+             */
+            Assert.assertEquals("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWw=-MTIz", next.getHeadValue());
         }
 
-        Config.Agent.ACTIVE_V1_HEADER = true;
-        try {
-            next = contextCarrier.items();
-            while (next.hasNext()) {
-                next = next.next();
-                if (next.getHeadKey().equals("sw3")) {
-                    Assert.assertEquals("1.2.3|4|1|1|#127.0.0.1:8080|#/portal|123|3.4.5", next.getHeadValue());
-                } else if (next.getHeadKey().equals("sw6")) {
-                    //TODO, no BASE64
-                    Assert.assertEquals("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWw=-MTIz", next.getHeadValue());
-                } else {
-                    Assert.fail("unexpected key");
-                }
-            }
-
-        } finally {
-            Config.Agent.ACTIVE_V1_HEADER = false;
+        next = contextCarrier.items();
+        while (next.hasNext()) {
+            next = next.next();
+            Assert.assertEquals("1-My40LjU=-MS4yLjM=-4-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWw=-MTIz", next.getHeadValue());
         }
 
         Assert.assertTrue(contextCarrier.isValid());
@@ -145,7 +77,7 @@ public class ContextCarrierV2HeaderTest {
 
     @Test
     public void testV2HeaderAccurate() {
-        List<DistributedTraceId> distributedTraceIds = new ArrayList<DistributedTraceId>();
+        List<DistributedTraceId> distributedTraceIds = new ArrayList<>();
         distributedTraceIds.add(new PropagatedTraceId("3.4.5"));
 
         ContextCarrier contextCarrier = new ContextCarrier();
@@ -162,25 +94,14 @@ public class ContextCarrierV2HeaderTest {
         String headerValue = null;
         while (next.hasNext()) {
             next = next.next();
-            if (next.getHeadKey().equals("sw3")) {
-                Assert.assertEquals("", next.getHeadValue());
-            } else if (next.getHeadKey().equals("sw6")) {
-                headerValue = next.getHeadValue();
-            } else {
-                Assert.fail("unexpected key");
-            }
+            headerValue = next.getHeadValue();
         }
 
         ContextCarrier contextCarrier2 = new ContextCarrier();
         next = contextCarrier2.items();
         while (next.hasNext()) {
             next = next.next();
-            if (next.getHeadKey().equals("sw3")) {
-            } else if (next.getHeadKey().equals("sw6")) {
-                next.setHeadValue(headerValue);
-            } else {
-                Assert.fail("unexpected key");
-            }
+            next.setHeadValue(headerValue);
         }
 
         Assert.assertTrue(contextCarrier2.isValid());
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextManagerTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextManagerTest.java
index 4c56c7c..66b435e 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextManagerTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/ContextManagerTest.java
@@ -30,6 +30,11 @@ import org.apache.skywalking.apm.agent.core.context.util.SegmentHelper;
 import org.apache.skywalking.apm.agent.core.context.util.TraceSegmentRefHelper;
 import org.apache.skywalking.apm.agent.core.test.tools.AgentServiceRule;
 import org.apache.skywalking.apm.agent.core.test.tools.TracingSegmentRunner;
+import org.apache.skywalking.apm.network.common.KeyStringValuePair;
+import org.apache.skywalking.apm.network.language.agent.v2.Log;
+import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
+import org.apache.skywalking.apm.network.language.agent.v2.SegmentReference;
+import org.apache.skywalking.apm.network.language.agent.v2.SpanObjectV2;
 import org.hamcrest.MatcherAssert;
 import org.junit.*;
 import org.junit.runner.RunWith;
@@ -43,12 +48,7 @@ import org.apache.skywalking.apm.agent.core.context.util.SpanHelper;
 import org.apache.skywalking.apm.agent.core.dictionary.DictionaryUtil;
 import org.apache.skywalking.apm.agent.core.test.tools.SegmentStorage;
 import org.apache.skywalking.apm.agent.core.test.tools.SegmentStoragePoint;
-import org.apache.skywalking.apm.network.language.agent.KeyWithStringValue;
-import org.apache.skywalking.apm.network.language.agent.LogMessage;
-import org.apache.skywalking.apm.network.language.agent.SpanObject;
 import org.apache.skywalking.apm.network.language.agent.SpanType;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentReference;
 import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
 import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
 
@@ -256,19 +256,18 @@ public class ContextManagerTest {
 
         UpstreamSegment upstreamSegment = actualSegment.transform();
         assertThat(upstreamSegment.getGlobalTraceIdsCount(), is(1));
-        TraceSegmentObject traceSegmentObject = TraceSegmentObject.parseFrom(upstreamSegment.getSegment());
-        TraceSegmentReference reference = traceSegmentObject.getSpans(1).getRefs(0);
+        SegmentObject traceSegmentObject = SegmentObject.parseFrom(upstreamSegment.getSegment());
+        SegmentReference reference = traceSegmentObject.getSpans(1).getRefs(0);
 
-        assertThat(reference.getEntryServiceName(), is("/portal/"));
         assertThat(reference.getNetworkAddress(), is("127.0.0.1:8080"));
         assertThat(reference.getParentSpanId(), is(3));
 
-        assertThat(traceSegmentObject.getApplicationId(), is(1));
+        assertThat(traceSegmentObject.getServiceId(), is(1));
         assertThat(traceSegmentObject.getSpans(1).getRefsCount(), is(1));
 
         assertThat(traceSegmentObject.getSpansCount(), is(2));
 
-        SpanObject actualSpan = traceSegmentObject.getSpans(1);
+        SpanObjectV2 actualSpan = traceSegmentObject.getSpans(1);
         assertThat(actualSpan.getComponentId(), is(3));
         assertThat(actualSpan.getComponent(), is(""));
 
@@ -277,7 +276,7 @@ public class ContextManagerTest {
         assertThat(actualSpan.getSpanId(), is(0));
         assertThat(actualSpan.getSpanType(), is(SpanType.Entry));
 
-        SpanObject exitSpanObject = traceSegmentObject.getSpans(0);
+        SpanObjectV2 exitSpanObject = traceSegmentObject.getSpans(0);
         assertThat(exitSpanObject.getComponentId(), is(2));
         assertThat(exitSpanObject.getComponent(), is(""));
         assertThat(exitSpanObject.getSpanType(), is(SpanType.Exit));
@@ -287,9 +286,9 @@ public class ContextManagerTest {
         assertThat(exitSpanObject.getSpanId(), is(1));
 
         assertThat(exitSpanObject.getLogsCount(), is(1));
-        LogMessage logMessage = exitSpanObject.getLogs(0);
+        Log logMessage = exitSpanObject.getLogs(0);
         assertThat(logMessage.getDataCount(), is(4));
-        List<KeyWithStringValue> values = logMessage.getDataList();
+        List<KeyStringValuePair> values = logMessage.getDataList();
 
         assertThat(values.get(0).getValue(), is("error"));
         assertThat(values.get(1).getValue(), is(RuntimeException.class.getName()));
diff --git a/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/activemq/ActiveMQConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/activemq/ActiveMQConsumerInterceptorTest.java
index 38e7dec..66d2a62 100644
--- a/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/activemq/ActiveMQConsumerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/activemq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/activemq/ActiveMQConsumerInterceptorTest.java
@@ -23,7 +23,6 @@ import org.apache.activemq.command.Message;
 import org.apache.activemq.command.MessageDispatch;
 import org.apache.activemq.command.Response;
 import org.apache.activemq.state.CommandVisitor;
-import org.apache.skywalking.apm.agent.core.conf.Config;
 import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
 import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
 import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
@@ -126,7 +125,6 @@ public class ActiveMQConsumerInterceptorTest {
 
     @Before
     public void setUp() throws IOException {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         activeMQConsumerInterceptor = new ActiveMQConsumerInterceptor();
         messageDispatch = new MessageDispatch();
 
@@ -134,17 +132,11 @@ public class ActiveMQConsumerInterceptorTest {
         des.setPhysicalName("test");
         messageDispatch.setDestination(des);
         Message msg = new Msg();
-        msg.setProperty("sw3", "");
         messageDispatch.setMessage(msg);
         arguments = new Object[] {messageDispatch};
         argumentType = null;
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testConsumerWithoutMessage() throws Throwable {
         activeMQConsumerInterceptor.beforeMethod(enhancedInstance, null, arguments, null, null);
diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
index f31ed73..8161d92 100644
--- a/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/dubbo-2.7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
@@ -27,7 +27,7 @@ import java.util.List;
 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.context.ContextManagerExtendService;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 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;
@@ -45,7 +45,6 @@ import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
 import org.apache.skywalking.apm.agent.test.tools.TracingSegmentRunner;
 import org.apache.skywalking.apm.plugin.asf.dubbo.DubboInterceptor;
 import org.hamcrest.CoreMatchers;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -95,7 +94,6 @@ public class DubboInterceptorTest {
 
     @Before
     public void setUp() throws Exception {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         dubboInterceptor = new DubboInterceptor();
 
         PowerMockito.mockStatic(RpcContext.class);
@@ -111,11 +109,6 @@ public class DubboInterceptorTest {
         Config.Agent.SERVICE_NAME = "DubboTestCases-APP";
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testServiceFromPlugin() {
         PluginBootService service = ServiceManager.INSTANCE.findService(PluginBootService.class);
@@ -167,7 +160,7 @@ public class DubboInterceptorTest {
     @Test
     public void testProviderWithAttachment() throws Throwable {
         when(rpcContext.isConsumerSide()).thenReturn(false);
-        when(rpcContext.getAttachment(SW3CarrierItem.HEADER_NAME)).thenReturn("1.323.4433|3|1|1|#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+        when(rpcContext.getAttachment(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4zMjMuNDQzMw==-3-1-1-IzE5Mi4xNjguMS44IDoxODAwMg==-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
 
         dubboInterceptor.beforeMethod(enhancedInstance, null, allArguments, argumentTypes, methodInterceptResult);
         dubboInterceptor.afterMethod(enhancedInstance, null, allArguments, argumentTypes, result);
diff --git a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
index c9e644b..5159c83 100644
--- a/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/dubbo-plugin/src/test/java/org/apache/skywalking/apm/plugin/dubbo/DubboInterceptorTest.java
@@ -27,7 +27,7 @@ import java.util.List;
 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.context.ContextManagerExtendService;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 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;
@@ -44,7 +44,6 @@ 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.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -94,7 +93,6 @@ public class DubboInterceptorTest {
 
     @Before
     public void setUp() throws Exception {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         dubboInterceptor = new DubboInterceptor();
 
         PowerMockito.mockStatic(RpcContext.class);
@@ -110,11 +108,6 @@ public class DubboInterceptorTest {
         Config.Agent.SERVICE_NAME = "DubboTestCases-APP";
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testServiceFromPlugin() {
         PluginBootService service = ServiceManager.INSTANCE.findService(PluginBootService.class);
@@ -166,7 +159,7 @@ public class DubboInterceptorTest {
     @Test
     public void testProviderWithAttachment() throws Throwable {
         when(rpcContext.isConsumerSide()).thenReturn(false);
-        when(rpcContext.getAttachment(SW3CarrierItem.HEADER_NAME)).thenReturn("1.323.4433|3|1|1|#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+        when(rpcContext.getAttachment(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4zMjMuNDQzMw==-3-1-1-IzE5Mi4xNjguMS44IDoxODAwMg==-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
 
         dubboInterceptor.beforeMethod(enhancedInstance, null, allArguments, argumentTypes, methodInterceptResult);
         dubboInterceptor.afterMethod(enhancedInstance, null, allArguments, argumentTypes, result);
diff --git a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jetty/v9/server/HandleInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jetty/v9/server/HandleInterceptorTest.java
index f956ef9..b69d65f 100644
--- a/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jetty/v9/server/HandleInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/jetty-plugin/jetty-server-9.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/jetty/v9/server/HandleInterceptorTest.java
@@ -19,8 +19,7 @@
 package org.apache.skywalking.apm.plugin.jetty.v9.server;
 
 import java.util.List;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 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;
@@ -45,7 +44,6 @@ import org.eclipse.jetty.server.HttpInput;
 import org.eclipse.jetty.server.HttpTransport;
 import org.eclipse.jetty.server.Request;
 import org.eclipse.jetty.server.Response;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -86,7 +84,6 @@ public class HandleInterceptorTest {
 
     @Before
     public void setUp() throws Exception {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         jettyInvokeInterceptor = new HandleInterceptor();
         when(request.getRequestURI()).thenReturn("/test/testRequestURL");
         when(request.getRequestURL()).thenReturn(new StringBuffer("http://localhost:8080/test/testRequestURL"));
@@ -98,11 +95,6 @@ public class HandleInterceptorTest {
 
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testWithoutSerializedContextData() throws Throwable {
         jettyInvokeInterceptor.beforeMethod(service, null, arguments, argumentType, methodInterceptResult);
@@ -116,7 +108,7 @@ public class HandleInterceptorTest {
 
     @Test
     public void testWithSerializedContextData() throws Throwable {
-        when(request.getHeader(SW3CarrierItem.HEADER_NAME)).thenReturn("1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+        when(request.getHeader(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
 
         jettyInvokeInterceptor.beforeMethod(service, null, arguments, argumentType, methodInterceptResult);
         jettyInvokeInterceptor.afterMethod(service, null, arguments, argumentType, null);
diff --git a/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/test/java/org/apache/skywalking/apm/plugin/kafka/KafkaConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/test/java/org/apache/skywalking/apm/plugin/kafka/KafkaConsumerInterceptorTest.java
index aa3543b..3051165 100644
--- a/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/test/java/org/apache/skywalking/apm/plugin/kafka/KafkaConsumerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/kafka-plugin/src/test/java/org/apache/skywalking/apm/plugin/kafka/KafkaConsumerInterceptorTest.java
@@ -20,7 +20,7 @@ package org.apache.skywalking.apm.plugin.kafka;
 
 import org.apache.kafka.clients.consumer.ConsumerRecord;
 import org.apache.kafka.common.TopicPartition;
-import org.apache.skywalking.apm.agent.core.conf.Config;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
 import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
 import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -30,7 +30,6 @@ 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.tools.*;
 import org.hamcrest.MatcherAssert;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -75,7 +74,6 @@ public class KafkaConsumerInterceptorTest {
 
     @Before
     public void setUp() {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         consumerInterceptor = new KafkaConsumerInterceptor();
         consumerEnhanceRequiredInfo = new ConsumerEnhanceRequiredInfo();
 
@@ -93,16 +91,11 @@ public class KafkaConsumerInterceptorTest {
         TopicPartition topicPartition = new TopicPartition("test", 1);
         List<ConsumerRecord> records = new ArrayList<ConsumerRecord>();
         ConsumerRecord consumerRecord = new ConsumerRecord("test", 1, 0, "1", "1");
-        consumerRecord.headers().add("sw3", "1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#testEntrySpan|#AQA*#AQA*Et0We0tQNQA*".getBytes());
+        consumerRecord.headers().add(SW6CarrierItem.HEADER_NAME, "1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-I3Rlc3RFbnRyeVNwYW4=".getBytes());
         records.add(consumerRecord);
         messages.put(topicPartition, records);
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testConsumerWithoutMessage() throws Throwable {
         consumerInterceptor.beforeMethod(consumerInstance, null, new Object[0], new Class[0], null);
diff --git a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/apache/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/apache/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java
index 3ddae1d..2397851 100644
--- a/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/apache/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/motan-plugin/src/test/java/org/apache/skywalking/apm/plugin/motan/MotanProviderInterceptorTest.java
@@ -24,8 +24,7 @@ import com.weibo.api.motan.rpc.Response;
 import com.weibo.api.motan.rpc.URL;
 import java.util.HashMap;
 import java.util.List;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
 import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
 import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -38,7 +37,6 @@ import org.apache.skywalking.apm.agent.test.tools.SegmentStoragePoint;
 import org.apache.skywalking.apm.agent.test.tools.SpanAssert;
 import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
 import org.hamcrest.MatcherAssert;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -83,7 +81,6 @@ public class MotanProviderInterceptorTest {
 
     @Before
     public void setUp() {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         invokeInterceptor = new MotanProviderInterceptor();
         url = URL.valueOf("motan://127.0.0.1:34000/org.apache.skywalking.apm.test.TestService");
 
@@ -96,11 +93,6 @@ public class MotanProviderInterceptorTest {
     }
 
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testInvokerWithoutRefSegment() throws Throwable {
         invokeInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, null);
@@ -117,7 +109,7 @@ public class MotanProviderInterceptorTest {
     @Test
     public void testInvokerWithRefSegment() throws Throwable {
         HashMap attachments = new HashMap();
-        attachments.put(SW3CarrierItem.HEADER_NAME, "1.123.456|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+        attachments.put(SW6CarrierItem.HEADER_NAME, "1-MC4wLjA=-MS4xMjMuNDU2-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
         when(request.getAttachments()).thenReturn(attachments);
 
         invokeInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, null);
diff --git a/apm-sniffer/apm-sdk-plugin/pulsar-plugin/src/test/java/org/apache/skywalking/apm/plugin/pulsar/PulsarConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/pulsar-plugin/src/test/java/org/apache/skywalking/apm/plugin/pulsar/PulsarConsumerInterceptorTest.java
index 7629f5c..f2ed510 100644
--- a/apm-sniffer/apm-sdk-plugin/pulsar-plugin/src/test/java/org/apache/skywalking/apm/plugin/pulsar/PulsarConsumerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/pulsar-plugin/src/test/java/org/apache/skywalking/apm/plugin/pulsar/PulsarConsumerInterceptorTest.java
@@ -19,7 +19,7 @@
 package org.apache.skywalking.apm.plugin.pulsar;
 
 import org.apache.pulsar.common.api.proto.PulsarApi;
-import org.apache.skywalking.apm.agent.core.conf.Config;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
 import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
 import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -33,7 +33,6 @@ 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.hamcrest.MatcherAssert;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -75,7 +74,6 @@ public class PulsarConsumerInterceptorTest {
 
     @Before
     public void setUp() {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         consumerInterceptor = new PulsarConsumerInterceptor();
         consumerEnhanceRequiredInfo = new ConsumerEnhanceRequiredInfo();
 
@@ -84,13 +82,8 @@ public class PulsarConsumerInterceptorTest {
         consumerEnhanceRequiredInfo.setSubscriptionName("my-sub");
         msg = new MockMessage();
         msg.getMessageBuilder().addProperties(PulsarApi.KeyValue.newBuilder()
-                .setKey("sw3")
-                .setValue("1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#testEntrySpan|#AQA*#AQA*Et0We0tQNQA*"));
-    }
-
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
+                .setKey(SW6CarrierItem.HEADER_NAME)
+                .setValue("1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-I3Rlc3RFbnRyeVNwYW4="));
     }
 
     @Test
diff --git a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java
index 4a54d2d..ee86be9 100644
--- a/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/rabbitmq-5.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/rabbitmq/RabbitMQConsumerInterceptorTest.java
@@ -20,6 +20,7 @@ package org.apache.skywalking.apm.plugin.rabbitmq;
 
 import com.rabbitmq.client.AMQP;
 import com.rabbitmq.client.Envelope;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
 import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
 import org.apache.skywalking.apm.agent.test.tools.AgentServiceRule;
@@ -72,7 +73,7 @@ public class RabbitMQConsumerInterceptorTest {
     public void TestRabbitMQConsumerInterceptor() throws Throwable {
         Envelope envelope = new Envelope(1111,false,"","rabbitmq-test");
         Map<String, Object> headers = new HashMap<String, Object>();
-        headers.put("sw6","1-MS4xLjE1NDM5NzU1OTEwMTQwMDAx-MS4xLjE1NDM5NzU1OTA5OTcwMDAw-0-1-1-IzEyNy4wLjAuMTo1Mjcy-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=");
+        headers.put(SW6CarrierItem.HEADER_NAME,"1-MS4xLjE1NDM5NzU1OTEwMTQwMDAx-MS4xLjE1NDM5NzU1OTA5OTcwMDAw-0-1-1-IzEyNy4wLjAuMTo1Mjcy-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=-I1JhYmJpdE1RL1RvcGljL1F1ZXVlL3JhYmJpdG1xLXRlc3QvUHJvZHVjZXI=");
         AMQP.BasicProperties.Builder propsBuilder = new AMQP.BasicProperties.Builder();
         Object[] arguments = new Object[]  {0,envelope,propsBuilder.headers(headers).build()};
 
diff --git a/apm-sniffer/apm-sdk-plugin/resteasy-plugin/resteasy-server-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/resteasy/v3/server/SynchronousDispatcherInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/resteasy-plugin/resteasy-server-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/resteasy/v3/server/SynchronousDispatcherInterceptorTest.java
index e583e0f..79a6532 100644
--- a/apm-sniffer/apm-sdk-plugin/resteasy-plugin/resteasy-server-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/resteasy/v3/server/SynchronousDispatcherInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/resteasy-plugin/resteasy-server-3.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/resteasy/v3/server/SynchronousDispatcherInterceptorTest.java
@@ -18,8 +18,6 @@
 
 package org.apache.skywalking.apm.plugin.resteasy.v3.server;
 
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
 import org.apache.skywalking.apm.agent.core.context.trace.LogDataEntity;
@@ -137,28 +135,6 @@ public class SynchronousDispatcherInterceptorTest {
     }
 
     @Test
-    public void testWithSW3SerializedContextData() throws Throwable {
-        Config.Agent.ACTIVE_V1_HEADER = true;
-        Config.Agent.ACTIVE_V2_HEADER = false;
-        MultivaluedMapImpl<String, String> multivaluedMap = new MultivaluedMapImpl<String, String>();
-        multivaluedMap.putSingle(SW3CarrierItem.HEADER_NAME, "1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
-        when(request.getHttpHeaders()).thenReturn(new ResteasyHttpHeaders(multivaluedMap));
-
-        synchronousDispatcherInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
-        synchronousDispatcherInterceptor.afterMethod(enhancedInstance, null, arguments, argumentType, null);
-
-        Config.Agent.ACTIVE_V1_HEADER = false;
-        Config.Agent.ACTIVE_V2_HEADER = true;
-
-        assertThat(segmentStorage.getTraceSegments().size(), is(1));
-        TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
-        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(traceSegment);
-
-        AssertTools.assertHttpSpan(spans.get(0));
-        AssertTools.assertTraceSegmentRef(traceSegment.getRefs().get(0));
-    }
-
-    @Test
     public void testWithOccurException() throws Throwable {
         synchronousDispatcherInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
         synchronousDispatcherInterceptor.handleMethodException(enhancedInstance, null, arguments, argumentType, new RuntimeException());
diff --git a/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/src/test/java/org/apache/skywalking/apm/plugin/sofarpc/SofaRpcProviderInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/src/test/java/org/apache/skywalking/apm/plugin/sofarpc/SofaRpcProviderInterceptorTest.java
index 064c175..40fec03 100644
--- a/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/src/test/java/org/apache/skywalking/apm/plugin/sofarpc/SofaRpcProviderInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/sofarpc-plugin/src/test/java/org/apache/skywalking/apm/plugin/sofarpc/SofaRpcProviderInterceptorTest.java
@@ -25,7 +25,7 @@ import com.alipay.sofa.rpc.core.response.SofaResponse;
 import com.alipay.sofa.rpc.filter.ProviderInvoker;
 import java.util.List;
 import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
 import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
 import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -41,7 +41,6 @@ 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.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -92,7 +91,6 @@ public class SofaRpcProviderInterceptorTest {
 
     @Before
     public void setUp() throws Exception {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         sofaRpcProviderInterceptor = new SofaRpcProviderInterceptor();
 
         PowerMockito.mockStatic(RpcInternalContext.class);
@@ -112,16 +110,11 @@ public class SofaRpcProviderInterceptorTest {
         Config.Agent.SERVICE_NAME = "SOFARPC-TestCases-APP";
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testProviderWithAttachment() throws Throwable {
         when(rpcContext.isConsumerSide()).thenReturn(false);
-        when(sofaRequest.getRequestProp(SKYWALKING_PREFIX + SW3CarrierItem.HEADER_NAME)).thenReturn(
-            "1.323.4433|3|1|1|#192.168.1.8 :18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+        when(sofaRequest.getRequestProp(SKYWALKING_PREFIX + SW6CarrierItem.HEADER_NAME)).thenReturn(
+            "1-MC4wLjA=-MS4zMjMuNDQzMw==-3-1-1-IzE5Mi4xNjguMS44IDoxODAwMg==-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
 
         sofaRpcProviderInterceptor.beforeMethod(enhancedInstance, null, allArguments, argumentTypes, methodInterceptResult);
         sofaRpcProviderInterceptor.afterMethod(enhancedInstance, null, allArguments, argumentTypes, sofaResponse);
diff --git a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/struts2/Struts2InterceptorTest.java b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/struts2/Struts2InterceptorTest.java
index 6a07a19..ce5b5a1 100644
--- a/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/struts2/Struts2InterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/struts2-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/struts2/Struts2InterceptorTest.java
@@ -23,9 +23,8 @@ import com.opensymphony.xwork2.ActionContext;
 import java.util.List;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import org.apache.skywalking.apm.agent.core.conf.Config;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.struts2.StrutsStatics;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -34,7 +33,6 @@ import org.mockito.Mock;
 import org.powermock.core.classloader.annotations.PrepareForTest;
 import org.powermock.modules.junit4.PowerMockRunner;
 import org.powermock.modules.junit4.PowerMockRunnerDelegate;
-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;
@@ -94,7 +92,6 @@ public class Struts2InterceptorTest {
 
     @Before
     public void setUp() throws Exception {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         struts2Interceptor = new Struts2Interceptor();
         when(request.getRequestURI()).thenReturn("/test/testRequestURL");
         when(request.getRequestURL()).thenReturn(new StringBuffer("http://localhost:8080/test/testRequestURL"));
@@ -113,11 +110,6 @@ public class Struts2InterceptorTest {
         exceptionArgumentType = new Class[] {request.getClass(), response.getClass(), new RuntimeException().getClass()};
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testWithoutSerializedContextData() throws Throwable {
         struts2Interceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
@@ -131,7 +123,7 @@ public class Struts2InterceptorTest {
 
     @Test
     public void testWithSerializedContextData() throws Throwable {
-        when(request.getHeader(SW3CarrierItem.HEADER_NAME)).thenReturn("1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+        when(request.getHeader(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
 
         struts2Interceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
         struts2Interceptor.afterMethod(enhancedInstance, null, arguments, argumentType, null);
diff --git a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/tomcat78x/TomcatInvokeInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/tomcat78x/TomcatInvokeInterceptorTest.java
index 3ca9321..7847f71 100644
--- a/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/tomcat78x/TomcatInvokeInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/tomcat-7.x-8.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/tomcat78x/TomcatInvokeInterceptorTest.java
@@ -22,8 +22,7 @@ import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.catalina.connector.Request;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
 import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
 import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
@@ -32,7 +31,6 @@ import org.apache.skywalking.apm.agent.test.helper.SpanHelper;
 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.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -84,8 +82,6 @@ public class TomcatInvokeInterceptorTest {
 
     @Before
     public void setUp() throws Exception {
-        Config.Agent.ACTIVE_V1_HEADER = true;
-
         tomcatInvokeInterceptor = new TomcatInvokeInterceptor();
         tomcatExceptionInterceptor = new TomcatExceptionInterceptor();
         when(request.getRequestURI()).thenReturn("/test/testRequestURL");
@@ -98,11 +94,6 @@ public class TomcatInvokeInterceptorTest {
         exceptionArgumentType = new Class[] {request.getClass(), response.getClass(), new RuntimeException().getClass()};
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testWithoutSerializedContextData() throws Throwable {
         tomcatInvokeInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
@@ -116,7 +107,7 @@ public class TomcatInvokeInterceptorTest {
 
     @Test
     public void testWithSerializedContextData() throws Throwable {
-        when(request.getHeader(SW3CarrierItem.HEADER_NAME)).thenReturn("1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+        when(request.getHeader(SW6CarrierItem.HEADER_NAME)).thenReturn("1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
 
         tomcatInvokeInterceptor.beforeMethod(enhancedInstance, null, arguments, argumentType, methodInterceptResult);
         tomcatInvokeInterceptor.afterMethod(enhancedInstance, null, arguments, argumentType, null);
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/RootHandlerInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/RootHandlerInterceptorTest.java
index 6ce11db..e319083 100644
--- a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/RootHandlerInterceptorTest.java
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/RootHandlerInterceptorTest.java
@@ -22,7 +22,6 @@ import io.undertow.Undertow;
 import io.undertow.server.HttpHandler;
 import io.undertow.server.RoutingHandler;
 import io.undertow.util.Methods;
-import org.apache.skywalking.apm.agent.core.conf.Config;
 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.tools.AgentServiceRule;
@@ -30,7 +29,6 @@ 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.apache.skywalking.apm.plugin.undertow.v2x.handler.TracingHandler;
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
@@ -71,15 +69,9 @@ public class RootHandlerInterceptorTest {
 
     @Before
     public void setUp() throws Exception {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         rootHandlerInterceptor = new RootHandlerInterceptor();
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testBindTracingHandler() throws Throwable {
         Object[] arguments = new Object[]{httpHandler};
diff --git a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/TracingHandlerTest.java b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/TracingHandlerTest.java
index 6189156..9314eb7 100644
--- a/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/TracingHandlerTest.java
+++ b/apm-sniffer/apm-sdk-plugin/undertow-plugins/undertow-2.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/undertow/v2x/TracingHandlerTest.java
@@ -24,8 +24,7 @@ import io.undertow.util.HeaderMap;
 import io.undertow.util.HttpString;
 import io.undertow.util.Methods;
 import io.undertow.util.StatusCodes;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
 import org.apache.skywalking.apm.agent.core.context.trace.SpanLayer;
 import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -102,10 +101,9 @@ public class TracingHandlerTest {
 
     @Test
     public void testWithSerializedContextData() throws Throwable {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         TracingHandler handler = new TracingHandler(httpHandler);
         HttpServerExchange exchange = buildExchange();
-        exchange.getRequestHeaders().put(HttpString.tryFromString(SW3CarrierItem.HEADER_NAME), "1.234.111|3|1|1|#192.168.1.8:18002|#/portal/|#/testEntrySpan|#AQA*#AQA*Et0We0tQNQA*");
+        exchange.getRequestHeaders().put(HttpString.tryFromString(SW6CarrierItem.HEADER_NAME), "1-MC4wLjA=-MS4yMzQuMTEx-3-1-1-IzE5Mi4xNjguMS44OjE4MDAy-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
         handler.handleRequest(exchange);
         exchange.endExchange();
 
@@ -115,7 +113,6 @@ public class TracingHandlerTest {
 
         assertHttpSpan(spans.get(0));
         assertTraceSegmentRef(traceSegment.getRefs().get(0));
-        Config.Agent.ACTIVE_V1_HEADER = false;
     }
 
     private HttpServerExchange buildExchange() {
diff --git a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java
index fb9d454..37b1551 100644
--- a/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java
+++ b/apm-sniffer/apm-toolkit-activation/apm-toolkit-opentracing-activation/src/test/java/org/apache/skywalking/apm/toolkit/activation/opentracing/SkywalkingSpanActivationTest.java
@@ -26,9 +26,10 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import org.apache.skywalking.apm.agent.core.conf.Config;
+
+import org.apache.skywalking.apm.agent.core.base64.Base64;
 import org.apache.skywalking.apm.agent.core.context.ContextSnapshot;
-import org.apache.skywalking.apm.agent.core.context.SW3CarrierItem;
+import org.apache.skywalking.apm.agent.core.context.SW6CarrierItem;
 import org.apache.skywalking.apm.agent.core.context.ids.ID;
 import org.apache.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
 import org.apache.skywalking.apm.agent.core.context.trace.TraceSegment;
@@ -53,7 +54,6 @@ import org.apache.skywalking.apm.toolkit.opentracing.SkywalkingContinuation;
 import org.apache.skywalking.apm.toolkit.opentracing.SkywalkingSpan;
 import org.apache.skywalking.apm.toolkit.opentracing.SkywalkingSpanBuilder;
 import org.apache.skywalking.apm.toolkit.opentracing.TextMapContext;
-import org.junit.After;
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Rule;
@@ -105,7 +105,6 @@ public class SkywalkingSpanActivationTest {
 
     @Before
     public void setUp() {
-        Config.Agent.ACTIVE_V1_HEADER = true;
         spanBuilder = new SkywalkingSpanBuilder("test").withTag(Tags.COMPONENT.getKey(), "test");
         constructorWithSpanBuilderInterceptor = new ConstructorWithSpanBuilderInterceptor();
         spanLogInterceptor = new SpanLogInterceptor();
@@ -125,11 +124,6 @@ public class SkywalkingSpanActivationTest {
         activateInterceptor = new ActivateInterceptor();
     }
 
-    @After
-    public void clear() {
-        Config.Agent.ACTIVE_V1_HEADER = false;
-    }
-
     @Test
     public void testCreateLocalSpan() throws Throwable {
         startSpan();
@@ -214,10 +208,10 @@ public class SkywalkingSpanActivationTest {
         injectInterceptor.afterMethod(enhancedInstance, null,
             new Object[] {new TextMapContext(), Format.Builtin.TEXT_MAP, carrier}, null, null);
 
-        String[] parts = values.get(SW3CarrierItem.HEADER_NAME).split("\\|", 8);
-        Assert.assertEquals("0", parts[1]);
-        Assert.assertEquals("#127.0.0.1:8080", parts[4]);
-        Assert.assertTrue(new ID(parts[7]).isValid());
+        String[] parts = values.get(SW6CarrierItem.HEADER_NAME).split("-", 9);
+        Assert.assertEquals("0", parts[3]);
+        Assert.assertEquals(Base64.encode("#127.0.0.1:8080"), parts[6]);
+        Assert.assertTrue(new ID(Base64.decode2UTFString(parts[1])).isValid());
         stopSpan();
     }
 
@@ -240,7 +234,7 @@ public class SkywalkingSpanActivationTest {
 
         };
 
-        values.put(SW3CarrierItem.HEADER_NAME, "1.343.222|3|1|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|434.12.12123");
+        values.put(SW6CarrierItem.HEADER_NAME, "1-NDM0LjEyLjEyMTIz-MS4zNDMuMjIy-3-1-1-IzEyNy4wLjAuMTo4MDgw-Iy9wb3J0YWwv-Iy90ZXN0RW50cnlTcGFu");
 
         extractInterceptor.afterMethod(enhancedInstance, null,
             new Object[] {Format.Builtin.TEXT_MAP, carrier}, new Class[] {}, null);
@@ -278,7 +272,7 @@ public class SkywalkingSpanActivationTest {
 
         };
 
-        values.put(SW3CarrierItem.HEADER_NAME, "aaaaaaaa|3|#192.168.1.8:18002|#/portal/|#/testEntrySpan|1.234.444");
+        values.put(SW6CarrierItem.HEADER_NAME, "aaaaaaaa|3|#192.168.1.8:18002|#/portal/|#/testEntrySpan|1.234.444");
 
         extractInterceptor.afterMethod(enhancedInstance, null,
             new Object[] {Format.Builtin.TEXT_MAP, carrier}, new Class[] {}, null);
diff --git a/docs/en/protocols/README.md b/docs/en/protocols/README.md
index b9bc32a..dda0c8e 100644
--- a/docs/en/protocols/README.md
+++ b/docs/en/protocols/README.md
@@ -28,15 +28,11 @@ with this specific request.
 1. **Trace Data Protocol** is out of wire data, agent/SDK uses this to send traces and metrics to skywalking or other
 compatible backend. 
 
-Header protocol have two formats for compatible. Using v2 in default.
-* [Cross Process Propagation Headers Protocol v2](Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md) is the new protocol for 
-in-wire context propagation, started in 6.0.0-beta release. It will replace the old **SW3** protocol in the future, now both of them are supported.
-* [Cross Process Propagation Headers Protocol v1](Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md) is for in-wire propagation.
-By following this protocol, the trace segments in different processes could be linked.
-
-Since SkyWalking v6.0.0-beta, SkyWalking agent and backend are using Trace Data Protocol v2, and v1 is still supported in backend.
-* [SkyWalking Trace Data Protocol v2](Trace-Data-Protocol-v2.md) define the communication way and format between agent and backend
-* [SkyWalking Trace Data Protocol v1](Trace-Data-Protocol-v1.md). This protocol is used in old version. Still supported.
+[Cross Process Propagation Headers Protocol v2](Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md) is the new protocol for 
+in-wire context propagation, started in 6.0.0-beta release, older protocol is no longer supported.
+
+Since SkyWalking v6.0.0-beta, SkyWalking agent and backend are using Trace Data Protocol v2.
+[SkyWalking Trace Data Protocol v2](Trace-Data-Protocol-v2.md) define the communication way and format between agent and backend.
 
 
 ### Service Mesh probe protocol
diff --git a/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md b/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md
deleted file mode 100644
index 6388f89..0000000
--- a/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# Skywalking Cross Process Propagation Headers Protocol
-* Version 1.0
-
-SkyWalking is more likely an APM system, rather than common distributed tracing system. 
-The Headers is much more complex than them in order to improving analysis performance of collector. 
-You can find many similar mechanism in other commercial APM system.(Some even much more complex than us)
-
-# Header Item
-* Header Name: `sw3`
-* Header Value: Split by `|`, the parts are following.
-
-_The header protocol came from SkyWalking 3, back to 2017. So sw3 header name keeps now._ 
-
-## Values
-* Trace Segment Id
-
-The trace segment id is the unique id for the part of the distributed trace. Each id is only used in a single thread. The id includes three parts(Long), e.g. `"1.2343.234234234`
-  1) The first one represents application instance id, which assigned by collector. (most likely just an integer value, would be helpful in protobuf)
-  2) The second one represents thread id. (In Java most likely just an integer value, would be helpful in protobuf)
-  3) The third one also has two parts
-     1) A timestamp, measured in milliseconds
-     2) A seq, in current thread, between 0(included) and 9999(included)
-
-If you are using other language, you can generate your own id, but make sure it is unique and combined by three longs.
-
-* Span Id
-
-An integer, unique in a trace segment. Start with 0;
-
-* Parent Application Instance
-
-The instance id of the parent node, e.g. for a server of RPC, this id is from the client application instance id.
-
-* Entry Application Instance
-
-The instance id of the entry application. e.g. A distributed trace `A->B->C`, the id is from `A`.
-
-* Peer Host
-
-The peer-host/peer-id from client side. e.g. client uses `182.14.39.1:9080` to access server, this ip:port is the peer host.
-
-_This value can use exchange/compress collector service to get the id(integer) to represent the string. If you use the string, it must start with `#`, others use integer directly._
-
-* Entry Span Operation Name of First Trace Segment
-
-The operation name/id of entry span propagates from `Entry Application Instance`.
-
-_This value can use exchange/compress collector service to get the id(integer) to represent the string. If you use the string, it must start with `#`, others use integer directly._
-
-* Entry Span Operation Name of Parent Trace Segment
-
-The operation name/id of entry span propagates from `Parent Application Instance`.
-
-_This value can use exchange/compress collector service to get the id(integer) to represent the string. If you use the string, it must start with `#`, others use integer directly._
-
-* Distributed Trace Id
-
-The distributed trace id of the whole trace, if in a batch process, it comes from the trace of first batch producer. The rule is as same as `Trace Segment Id` with three Longs.
-
-### Sample value
-1. `1.2343.234234234|1|1|1|#127.0.0.1:8080|#/portal/|#/testEntrySpan|1.2343.234234234`
-1. `1.2343.234234234|1|1|1|#127.0.0.1:8080|#/portal/|1038|1.2343.234234234`
\ No newline at end of file
diff --git a/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md b/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md
index fa4b4a7..de40c4c 100644
--- a/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md
+++ b/docs/en/protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md
@@ -1,9 +1,12 @@
 # SkyWalking Cross Process Propagation Headers Protocol
 * Version 2.0
 
+SkyWalking is more likely an APM system, rather than common distributed tracing system. 
+The Headers is much more complex than them in order to improving analysis performance of collector. 
+You can find many similar mechanism in other commercial APM system. (Some are even much more complex than our's)
+
 ## Abstract
-SkyWalking Cross Process Propagation Headers Protocol v2 is also named as sw6 protocol. This protocol keeps the same purposes 
-of [v1(a.k.a. sw3)](Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md), which is keep context propagation works.
+SkyWalking Cross Process Propagation Headers Protocol v2 is also named as sw6 protocol, which is for context propagation.
 
 ## Differences from v1 
 The major differences of v2 and v1, comes from SkyWalking's evolution, including
diff --git a/docs/en/protocols/Trace-Data-Protocol-v1.md b/docs/en/protocols/Trace-Data-Protocol-v1.md
deleted file mode 100644
index e687512..0000000
--- a/docs/en/protocols/Trace-Data-Protocol-v1.md
+++ /dev/null
@@ -1,213 +0,0 @@
-# Trace Data Protocol 
-Trace Data Protocol describes the data format between SkyWalking agent/sniffer and backend. 
-
-## Abstract
-This protocol includes the downstream and upstream data format. Other languages agents/SDKs can use this protocol to 
-uplink data to the SkyWalking backend.
-
-- Other services, includes Register, Trace, etc., provided by HTTP/JSON and gRPC both. 
-
-### Version
-v1
-
-#### gRPC proto files
-[gRPC proto files](https://github.com/apache/skywalking-data-collect-protocol/tree/v2.0)
-
-
-## Trace Segment Service
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/TraceSegmentService.proto)
-
-- UniqueId represents segmentId and globalTraceId. It have 3 parts(Longs), 1) applicationInstanceId, 2) ThreadId, 3) Timestamp + 10000 + seq(seq is in [0, 100000) )
-- Span data please refs to [Plugin Development Guide](../guides/Java-Plugin-Development-Guide.md)
-- Id and name both exist, please use id if possible.
-  - operationNameId/endpointName 
-  - networkAddress/networkAddressId
-  - entryServiceName/entryServiceId
-  - parentServiceName/parentServiceId
-  - peerId/peer
-- componentIds are defined in backend, [here](../../../apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java)
-
-HTTP format:
-
-Input:
-```
-[
-  {
-    "gt": [[230150, 185809, 24040000]], 
-    "sg": { //TraceSegmentObject 
-      "ts": [137150, 185809, 48780000], 
-      "ai": 2, //serviceId
-      "ii": 3, //applicationInstanceId
-      "ss": [ //SpanObject
-        {
-          "si": 0, //spanId
-          "tv": 0, //SpanType
-          "lv": 2, //SpanLayer
-          "ps": -1, //parentSpanId
-          "st": 1501858094726, //startTime
-          "et": 1501858096804, //endTime
-          "ci": 3, //componentId
-          "cn": "", //component
-          "oi": 0, //operationNameId
-          "on": "org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()", //endpointName
-          "pi": 0, //peerId
-          "pn": "", //peer
-          "ie": false, //isError
-          "rs": [ //TraceSegmentReference
-            {
-              "pts": [230150, 185809, 24040000], //parentTraceSegmentId
-              "pii": 2, //parentServiceInstanceId
-              "psp": 1, //parentSpanId
-              "psi": 0, //parentServiceId
-              "psn": "/dubbox-case/case/dubbox-rest", //parentServiceName
-              "ni": 0,  //networkAddressId
-              "nn": "172.25.0.4:20880", //networkAddress
-              "eii": 2, //entryServiceInstanceId
-              "esi": 0, //entryServiceId
-              "esn": "/dubbox-case/case/dubbox-rest", //entryServiceName
-              "rv": 0 //RefTypeValue
-            }
-          ],
-          "to": [ //KeyWithStringValue
-            {
-              "k": "url", //key
-              "v": "rest://172.25.0.4:20880/org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()" //value
-            },
-            {
-              "k": "http.method",
-              "v": "GET"
-            }
-          ],
-          "lo": [{
-                "ti": 1501858094726,
-                "ld": [{ 
-                        "k": "NullPointException",
-                        "v": "Error Stack"
-                    }]
-           }]
-        },
-        {
-          "si": 1,
-          "tv": 1,
-          "lv": 1,
-          "ps": 0,
-          "st": 1501858094726,
-          "et": 1501858095804,
-          "ci": 9,
-          "cn": "",
-          "oi": 0,
-          "on": "mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]",
-          "pi": 0,
-          "pn": "localhost:27017",
-          "ie": false,
-          "to": [],
-          "lo": []
-        }
-      ]
-    }
-  }
-]
-```
-
-
-## Deprecated services
-**Deprecated service**(s) are the gRPC services SkyWalking used before. In SkyWalking v6, in order to match the common 
-concepts in CloudNative world, these services are deprecated. 
-Although there services are still supported at this moment, but it will keep in supported at least before the end of 2019.
-
-## ~~Application Register Service~~
-**Deprecated service** 
-
-### Abstract
-Register Application Code to the backend, and receive an integer represents the application.
-
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/ApplicationRegisterService.proto)
-
-- applicationCode is the config in your `agent.config`.
-- The return id is **ApplicationId** as the value in `KeyWithIntegerValue`, which will be used in further data uplink.
-
-## ~~Discovery Services~~
-**Deprecated services** 
-
-### ~~Register Instance Service~~
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/DiscoveryService.proto#L29)
-
-- agentUUID generated by agent, should be unique. Stay same before reboot, at least.
-- **ApplicationInstanceId** will be used in further data uplink.
-
-HTTP format http://ip:port/instance/register(default: localhost:12800) 
-
-Input:
-```
-{
-    ai: x, #serviceId
-    au: "", #agentUUID
-    rt: x, #registerTime
-    oi: "", #osinfo
-}
-```
-
-Output:
-```
-{
-    ai: x, #serviceId
-    ii: x, #applicationInstanceId
-}
-```
-
-### ~~Heart beat service~~
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/DiscoveryService.proto#L32)
-
-- Recommend to report heart beat every 20-60 seconds.
-- Java agent don't use this, because JVM metrics upstream replace the capabilities of this. 
-
-HTTP format http://ip:port/instance/heartbeat(default: localhost:12800) 
-
-Input:
-```
-{
-    "ii": x, #applicationInstanceId
-    "ht": x #heartbeatTime, java timestamp format
-}
-```
-
-## ~~Service Name Discovery Service~~
-**Deprecated services**
-### Abstract
-Replace the literal String service(operation) name by an id(integer)
-
-[gRPC service define](.https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/DiscoveryService.proto#L70)
-
-- Optional service, reduce the network cost but use more memory as a buffer mapping.
-
-HTTP format http://ip:port/servicename/discovery(default: localhost:12800) 
-
-Input:
-```
-{
-    ai: x, #serviceId
-    sn: "", #serviceName
-    st: x, #srcSpanType
-}
-```
-
-Output:
-```
-{
-    si: x, #osinfo
-    el: { #element
-        ai: x, #serviceId
-        sn: "", #serviceName
-        st: x, #srcSpanType
-    }
-}
-```
-
-## ~~Network Address Register Service~~
-### Abstract
-Network Address includes all remove service address, includes ip, port, hostname, etc., which used in RPC framework, MQ, DB, etc.
-
-[gRPC service define](https://github.com/apache/skywalking-data-collect-protocol/blob/v2.0/NetworkAddressRegisterService.proto)
-
-- Optional service, reduce the network cost but use more memory as a buffer mapping.
-
diff --git a/docs/en/setup/service-agent/java-agent/Namespace.md b/docs/en/setup/service-agent/java-agent/Namespace.md
index a2732dd..ad1859b 100644
--- a/docs/en/setup/service-agent/java-agent/Namespace.md
+++ b/docs/en/setup/service-agent/java-agent/Namespace.md
@@ -18,7 +18,7 @@ Namespace is the proposal from this.It is used for tracing and monitoring isolat
 The default value of `agent.namespace` is empty. 
 
 **Influence**
-The default header key of SkyWalking is `sw3`, more in this [document](../../../protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v1.md).
-After `agent.namespace` set, the key changes to `namespace-sw3`.
+The default header key of SkyWalking is `sw6`, more in this [document](../../../protocols/Skywalking-Cross-Process-Propagation-Headers-Protocol-v2.md).
+After `agent.namespace` is set, the key changes to `namespace-sw6`.
 
 The across process propagation chain breaks, when the two sides are using different namespace.
diff --git a/docs/en/setup/service-agent/java-agent/README.md b/docs/en/setup/service-agent/java-agent/README.md
index ae3a34a..f38d67f 100755
--- a/docs/en/setup/service-agent/java-agent/README.md
+++ b/docs/en/setup/service-agent/java-agent/README.md
@@ -78,11 +78,9 @@ property key | Description | Default |
 `agent.span_limit_per_segment`|The max number of spans in a single segment. Through this config item, SkyWalking keep your application memory cost estimated.|300 |
 `agent.ignore_suffix`|If the operation name of the first span is included in this set, this segment should be ignored.|Not set|
 `agent.is_open_debugging_class`|If true, skywalking agent will save all instrumented classes files in `/debugging` folder. SkyWalking team may ask for these files in order to resolve compatible problem.|Not set|
-`agent.active_v2_header`|Active V2 header in default.|`true`|
 `agent.instance_uuid` |Instance uuid is the identity of an instance, SkyWalking treat same instance uuid as one instance.if empty, SkyWalking agent will generate an 32-bit uuid. Using `NAME:` as UUID prefix could set the customized instance name. Such as, set it as `NAME:SVR-INSTANCE-A`,  `SVR-INSTANCE-A` is the instance name. Otherwise, use `ServiceName`-pid:`id`@`hostname` as the instance name. |`""`|
 `agent.instance_properties[key]=value` | Add service instance custom properties. | Not set|
 `agent.cause_exception_depth`|How depth the agent goes, when log all cause exceptions.|`5`|
-`agent.active_v1_header `|Deactivate V1 header in default.|`false`|
 `agent.cool_down_threshold `|How long should the agent wait (in minute) before re-registering to the OAP server after receiving reset command.|`10`|
 `agent.force_reconnection_period `|Force reconnection period of grpc, based on grpc_channel_check_interval.|`1`|
 `agent.operation_name_threshold `|The operationName max length, setting this value > 500 is not recommended.|`500`|
diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java
index 696ce84..ca11770 100644
--- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java
+++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java
@@ -23,8 +23,7 @@ import java.util.ArrayList;
 import java.util.Comparator;
 import java.util.LinkedList;
 import java.util.List;
-import org.apache.skywalking.apm.network.language.agent.SpanObject;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
+import java.util.stream.Collectors;
 import org.apache.skywalking.apm.network.language.agent.UniqueId;
 import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
 import org.apache.skywalking.apm.network.language.agent.v2.SpanObjectV2;
@@ -125,13 +124,8 @@ public class TraceQueryService implements Service {
         } else {
             for (SegmentRecord segment : segmentRecords) {
                 if (nonNull(segment)) {
-                    if (segment.getVersion() == 2) {
-                        SegmentObject segmentObject = SegmentObject.parseFrom(segment.getDataBinary());
-                        trace.getSpans().addAll(buildSpanV2List(traceId, segment.getSegmentId(), segment.getServiceId(), segmentObject.getSpansList()));
-                    } else {
-                        TraceSegmentObject segmentObject = TraceSegmentObject.parseFrom(segment.getDataBinary());
-                        trace.getSpans().addAll(buildSpanList(traceId, segment.getSegmentId(), segment.getServiceId(), segmentObject.getSpansList()));
-                    }
+                    SegmentObject segmentObject = SegmentObject.parseFrom(segment.getDataBinary());
+                    trace.getSpans().addAll(buildSpanV2List(traceId, segment.getSegmentId(), segment.getServiceId(), segmentObject.getSpansList()));
                 }
             }
         }
@@ -221,125 +215,9 @@ public class TraceQueryService implements Service {
                 }
                 ref.setParentSpanId(reference.getParentSpanId());
 
-                UniqueId uniqueId = reference.getParentTraceSegmentId();
-                StringBuilder segmentIdBuilder = new StringBuilder();
-                for (int i = 0; i < uniqueId.getIdPartsList().size(); i++) {
-                    if (i == 0) {
-                        segmentIdBuilder.append(uniqueId.getIdPartsList().get(i));
-                    } else {
-                        segmentIdBuilder.append(".").append(uniqueId.getIdPartsList().get(i));
-                    }
-                }
-                ref.setParentSegmentId(segmentIdBuilder.toString());
-
-                span.setSegmentParentSpanId(ref.getParentSegmentId() + Const.SEGMENT_SPAN_SPLIT + ref.getParentSpanId());
-
-                span.getRefs().add(ref);
-            });
-
-            spanObject.getTagsList().forEach(tag -> {
-                KeyValue keyValue = new KeyValue();
-                keyValue.setKey(tag.getKey());
-                keyValue.setValue(tag.getValue());
-                span.getTags().add(keyValue);
-            });
-
-            spanObject.getLogsList().forEach(log -> {
-                LogEntity logEntity = new LogEntity();
-                logEntity.setTime(log.getTime());
-
-                log.getDataList().forEach(data -> {
-                    KeyValue keyValue = new KeyValue();
-                    keyValue.setKey(data.getKey());
-                    keyValue.setValue(data.getValue());
-                    logEntity.getData().add(keyValue);
-                });
-
-                span.getLogs().add(logEntity);
-            });
-
-            spans.add(span);
-        });
-
-        return spans;
-    }
-
-    private List<Span> buildSpanList(String traceId, String segmentId, int serviceId,
-        List<SpanObject> spanObjects) {
-        List<Span> spans = new ArrayList<>();
-
-        spanObjects.forEach(spanObject -> {
-            Span span = new Span();
-            span.setTraceId(traceId);
-            span.setSegmentId(segmentId);
-            span.setSpanId(spanObject.getSpanId());
-            span.setParentSpanId(spanObject.getParentSpanId());
-            span.setStartTime(spanObject.getStartTime());
-            span.setEndTime(spanObject.getEndTime());
-            span.setError(spanObject.getIsError());
-            span.setLayer(spanObject.getSpanLayer().name());
-            span.setType(spanObject.getSpanType().name());
-
-            String segmentSpanId = segmentId + Const.SEGMENT_SPAN_SPLIT + spanObject.getSpanId();
-            span.setSegmentSpanId(segmentSpanId);
-
-            String segmentParentSpanId = segmentId + Const.SEGMENT_SPAN_SPLIT + spanObject.getParentSpanId();
-            span.setSegmentParentSpanId(segmentParentSpanId);
-
-            if (spanObject.getPeerId() == 0) {
-                span.setPeer(spanObject.getPeer());
-            } else {
-                span.setPeer(getNetworkAddressInventoryCache().get(spanObject.getPeerId()).getName());
-            }
-
-            String endpointName = spanObject.getOperationName();
-            if (spanObject.getOperationNameId() != 0) {
-                EndpointInventory endpointInventory = getEndpointInventoryCache().get(spanObject.getOperationNameId());
-                if (nonNull(endpointInventory)) {
-                    endpointName = endpointInventory.getName();
-                } else {
-                    endpointName = Const.EMPTY_STRING;
-                }
-            }
-            span.setEndpointName(endpointName);
-
-            final ServiceInventory serviceInventory = getServiceInventoryCache().get(serviceId);
-            if (serviceInventory != null) {
-                span.setServiceCode(serviceInventory.getName());
-            } else {
-                span.setServiceCode("unknown");
-            }
-
-            if (spanObject.getComponentId() == 0) {
-                span.setComponent(spanObject.getComponent());
-            } else {
-                span.setComponent(getComponentLibraryCatalogService().getComponentName(spanObject.getComponentId()));
-            }
-
-            spanObject.getRefsList().forEach(reference -> {
-                Ref ref = new Ref();
-                ref.setTraceId(traceId);
-
-                switch (reference.getRefType()) {
-                    case CrossThread:
-                        ref.setType(RefType.CROSS_THREAD);
-                        break;
-                    case CrossProcess:
-                        ref.setType(RefType.CROSS_PROCESS);
-                        break;
-                }
-                ref.setParentSpanId(reference.getParentSpanId());
-
-                UniqueId uniqueId = reference.getParentTraceSegmentId();
-                StringBuilder segmentIdBuilder = new StringBuilder();
-                for (int i = 0; i < uniqueId.getIdPartsList().size(); i++) {
-                    if (i == 0) {
-                        segmentIdBuilder.append(uniqueId.getIdPartsList().get(i));
-                    } else {
-                        segmentIdBuilder.append(".").append(uniqueId.getIdPartsList().get(i));
-                    }
-                }
-                ref.setParentSegmentId(segmentIdBuilder.toString());
+                final UniqueId uniqueId = reference.getParentTraceSegmentId();
+                final String parentSegmentId = uniqueId.getIdPartsList().stream().map(String::valueOf).collect(Collectors.joining("."));
+                ref.setParentSegmentId(parentSegmentId);
 
                 span.setSegmentParentSpanId(ref.getParentSegmentId() + Const.SEGMENT_SPAN_SPLIT + ref.getParentSpanId());
 
@@ -392,14 +270,14 @@ public class TraceQueryService implements Service {
                 rootSpans.add(span);
             }
         });
-        /**
+        /*
          * In some cases, there are segment fragments, which could not be linked by Ref,
          * because of two kinds of reasons.
          * 1. Multiple leaf segments have no particular order in the storage.
          * 2. Lost in sampling, agent fail safe, segment lost, even bug.
          * Sorting the segments makes the trace view more readable.
          */
-        rootSpans.sort(Comparator.comparing(span -> span.getStartTime()));
+        rootSpans.sort(Comparator.comparing(Span::getStartTime));
         return rootSpans;
     }
 
diff --git a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/BufferData.java b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/BufferData.java
index 4ef90c5..6feef6b 100644
--- a/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/BufferData.java
+++ b/oap-server/server-library/library-buffer/src/main/java/org/apache/skywalking/oap/server/library/buffer/BufferData.java
@@ -19,8 +19,8 @@
 package org.apache.skywalking.oap.server.library.buffer;
 
 import com.google.protobuf.GeneratedMessageV3;
-import lombok.*;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
+import lombok.Getter;
+import lombok.Setter;
 import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
 
 /**
@@ -29,7 +29,6 @@ import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
 @Getter
 public class BufferData<MESSAGE_TYPE extends GeneratedMessageV3> {
     private MESSAGE_TYPE messageType;
-    @Setter private TraceSegmentObject v1Segment;
     @Setter private SegmentObject v2Segment;
 
     public BufferData(MESSAGE_TYPE messageType) {
diff --git a/oap-server/server-library/library-buffer/src/test/java/org/apache/skywalking/oap/server/library/buffer/BufferStreamTestCase.java b/oap-server/server-library/library-buffer/src/test/java/org/apache/skywalking/oap/server/library/buffer/BufferStreamTestCase.java
deleted file mode 100644
index 4b7e7d6..0000000
--- a/oap-server/server-library/library-buffer/src/test/java/org/apache/skywalking/oap/server/library/buffer/BufferStreamTestCase.java
+++ /dev/null
@@ -1,69 +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.oap.server.library.buffer;
-
-import java.io.IOException;
-import java.util.concurrent.TimeUnit;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class BufferStreamTestCase {
-
-    private static final Logger logger = LoggerFactory.getLogger(BufferStreamTestCase.class);
-
-    public static void main(String[] args) throws IOException, InterruptedException {
-        String directory = "/Users/pengys5/code/sky-walking/buffer-test";
-        BufferStream.Builder<TraceSegmentObject> builder = new BufferStream.Builder<>(directory);
-//        builder.cleanWhenRestart(true);
-        builder.dataFileMaxSize(50);
-        builder.offsetFileMaxSize(10);
-        builder.parser(TraceSegmentObject.parser());
-        builder.callBack(bufferData -> {
-            logger.info("segment parse: {}", bufferData.getMessageType().getSpans(0).getSpanId());
-            return false;
-        });
-
-        BufferStream<TraceSegmentObject> stream = builder.build();
-        stream.initialize();
-
-        TimeUnit.SECONDS.sleep(5);
-
-        StringBuilder str = new StringBuilder("2018-08-27 11:59:45,261 main DEBUG Registering MBean org.apache.logging.log4j2:type=6d6f6e28");
-        for (int i = 0; i < 1000; i++) {
-            str.append("main DEBUG Registering MBean org.apache.logging.log4j2:type=6d6f6e28 main DEBUG Registering MBean org.apache.logging.log4j2:type=6d6f6e28 main DEBUG Registering MBean org.apache.logging.log4j2:type=6d6f6e28");
-        }
-
-        for (int i = 0; i < 20000; i++) {
-            TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
-            SpanObject.Builder span = SpanObject.newBuilder();
-
-            span.setSpanId(i);
-            span.setOperationName(str.toString());
-            segment.addSpans(span);
-            stream.write(segment.build());
-
-            if (i % 1000 == 0) {
-                TimeUnit.MILLISECONDS.sleep(50);
-            }
-        }
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
index 535144b..b9bde06 100644
--- a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/JVMModuleProvider.java
@@ -47,7 +47,6 @@ public class JVMModuleProvider extends ModuleProvider {
 
     @Override public void start() {
         GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(GRPCHandlerRegister.class);
-        grpcHandlerRegister.addHandler(new JVMMetricsServiceHandler(getManager()));
         grpcHandlerRegister.addHandler(new JVMMetricReportServiceHandler(getManager()));
     }
 
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandler.java
deleted file mode 100644
index 0f13a28..0000000
--- a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandler.java
+++ /dev/null
@@ -1,57 +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.oap.server.receiver.jvm.provider.handler;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class JVMMetricsServiceHandler extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase implements GRPCHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(JVMMetricsServiceHandler.class);
-
-    private final JVMSourceDispatcher jvmSourceDispatcher;
-
-    public JVMMetricsServiceHandler(ModuleManager moduleManager) {
-        this.jvmSourceDispatcher = new JVMSourceDispatcher(moduleManager);
-    }
-
-    @Override public void collect(JVMMetrics request, StreamObserver<Downstream> responseObserver) {
-        int serviceInstanceId = request.getApplicationInstanceId();
-
-        if (logger.isDebugEnabled()) {
-            logger.debug("receive the jvm metrics from service instance, id: {}", serviceInstanceId);
-        }
-
-        request.getMetricsList().forEach(metrics -> {
-            long minuteTimeBucket = TimeBucket.getMinuteTimeBucket(metrics.getTime());
-            jvmSourceDispatcher.sendMetric(serviceInstanceId, minuteTimeBucket, metrics);
-        });
-
-        responseObserver.onNext(Downstream.newBuilder().build());
-        responseObserver.onCompleted();
-    }
-
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandlerMainTest.java b/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandlerMainTest.java
deleted file mode 100644
index 5a09022..0000000
--- a/oap-server/server-receiver-plugin/skywalking-jvm-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/jvm/provider/handler/JVMMetricsServiceHandlerMainTest.java
+++ /dev/null
@@ -1,143 +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.oap.server.receiver.jvm.provider.handler;
-
-import io.grpc.*;
-import java.util.concurrent.*;
-import org.apache.skywalking.apm.network.common.CPU;
-import org.apache.skywalking.apm.network.language.agent.*;
-
-/**
- * @author peng-yongsheng
- */
-public class JVMMetricsServiceHandlerMainTest {
-
-    public static void main(String[] args) {
-        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
-        JVMMetricsServiceGrpc.JVMMetricsServiceBlockingStub stub = JVMMetricsServiceGrpc.newBlockingStub(channel);
-
-        Executors.newSingleThreadScheduledExecutor().schedule(() -> send(stub), 1, TimeUnit.SECONDS);
-    }
-
-    private static void send(JVMMetricsServiceGrpc.JVMMetricsServiceBlockingStub stub) {
-        JVMMetrics.Builder jvmMetrics = JVMMetrics.newBuilder();
-        jvmMetrics.setApplicationInstanceId(2);
-
-        JVMMetric.Builder jvmMetricBuilder = JVMMetric.newBuilder();
-        jvmMetricBuilder.setTime(System.currentTimeMillis());
-
-        buildCPUMetric(jvmMetricBuilder);
-        buildGCMetric(jvmMetricBuilder);
-        buildMemoryMetric(jvmMetricBuilder);
-        buildMemoryPoolMetric(jvmMetricBuilder);
-
-        jvmMetrics.addMetrics(jvmMetricBuilder);
-
-        stub.collect(jvmMetrics.build());
-    }
-
-    private static void buildMemoryPoolMetric(JVMMetric.Builder metricBuilder) {
-        MemoryPool.Builder codeCache = MemoryPool.newBuilder();
-        codeCache.setInit(10);
-        codeCache.setMax(100);
-        codeCache.setCommited(10);
-        codeCache.setUsed(50);
-        codeCache.setType(PoolType.CODE_CACHE_USAGE);
-        metricBuilder.addMemoryPool(codeCache);
-
-        MemoryPool.Builder newGen = MemoryPool.newBuilder();
-        newGen.setInit(10);
-        newGen.setMax(100);
-        newGen.setCommited(10);
-        newGen.setUsed(50);
-        newGen.setType(PoolType.NEWGEN_USAGE);
-        metricBuilder.addMemoryPool(newGen);
-
-        MemoryPool.Builder oldGen = MemoryPool.newBuilder();
-        oldGen.setInit(10);
-        oldGen.setMax(100);
-        oldGen.setCommited(10);
-        oldGen.setUsed(50);
-        oldGen.setType(PoolType.OLDGEN_USAGE);
-        metricBuilder.addMemoryPool(oldGen);
-
-        MemoryPool.Builder survivor = MemoryPool.newBuilder();
-        survivor.setInit(10);
-        survivor.setMax(100);
-        survivor.setCommited(10);
-        survivor.setUsed(50);
-        survivor.setType(PoolType.SURVIVOR_USAGE);
-        metricBuilder.addMemoryPool(survivor);
-
-        MemoryPool.Builder permGen = MemoryPool.newBuilder();
-        permGen.setInit(10);
-        permGen.setMax(100);
-        permGen.setCommited(10);
-        permGen.setUsed(50);
-        permGen.setType(PoolType.PERMGEN_USAGE);
-        metricBuilder.addMemoryPool(permGen);
-
-        MemoryPool.Builder metaSpace = MemoryPool.newBuilder();
-        metaSpace.setInit(10);
-        metaSpace.setMax(100);
-        metaSpace.setCommited(10);
-        metaSpace.setUsed(50);
-        metaSpace.setType(PoolType.METASPACE_USAGE);
-        metricBuilder.addMemoryPool(metaSpace);
-    }
-
-    private static void buildMemoryMetric(JVMMetric.Builder metricBuilder) {
-        Memory.Builder isHeap = Memory.newBuilder();
-        isHeap.setInit(20);
-        isHeap.setMax(100);
-        isHeap.setCommitted(20);
-        isHeap.setUsed(60);
-        isHeap.setIsHeap(true);
-        metricBuilder.addMemory(isHeap);
-
-        Memory.Builder nonHeap = Memory.newBuilder();
-        nonHeap.setInit(20);
-        nonHeap.setMax(100);
-        nonHeap.setCommitted(20);
-        nonHeap.setUsed(60);
-        nonHeap.setIsHeap(false);
-        metricBuilder.addMemory(nonHeap);
-    }
-
-    private static void buildGCMetric(JVMMetric.Builder metricBuilder) {
-        GC.Builder newGC = GC.newBuilder();
-        newGC.setPhrase(GCPhrase.NEW);
-        newGC.setCount(2);
-        newGC.setTime(1000);
-        metricBuilder.addGc(newGC);
-
-        GC.Builder oldGC = GC.newBuilder();
-        oldGC.setPhrase(GCPhrase.OLD);
-        oldGC.setCount(4);
-        oldGC.setTime(49);
-        metricBuilder.addGc(oldGC);
-    }
-
-    private static void buildCPUMetric(JVMMetric.Builder metricBuilder) {
-        CPU.Builder cpu = CPU.newBuilder();
-        cpu.setUsagePercent(20);
-        metricBuilder.setCpu(cpu.build());
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
index ffdba90..85ffe55 100644
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/RegisterModuleProvider.java
@@ -19,12 +19,13 @@
 package org.apache.skywalking.oap.server.receiver.register.provider;
 
 import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.server.*;
-import org.apache.skywalking.oap.server.library.module.*;
+import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
+import org.apache.skywalking.oap.server.library.module.ModuleConfig;
+import org.apache.skywalking.oap.server.library.module.ModuleDefine;
+import org.apache.skywalking.oap.server.library.module.ModuleProvider;
 import org.apache.skywalking.oap.server.receiver.register.module.RegisterModule;
-import org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.grpc.*;
-import org.apache.skywalking.oap.server.receiver.register.provider.handler.v5.rest.*;
-import org.apache.skywalking.oap.server.receiver.register.provider.handler.v6.grpc.*;
+import org.apache.skywalking.oap.server.receiver.register.provider.handler.v6.grpc.RegisterServiceHandler;
+import org.apache.skywalking.oap.server.receiver.register.provider.handler.v6.grpc.ServiceInstancePingServiceHandler;
 import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
 
 /**
@@ -49,21 +50,8 @@ public class RegisterModuleProvider extends ModuleProvider {
 
     @Override public void start() {
         GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(GRPCHandlerRegister.class);
-        grpcHandlerRegister.addHandler(new ApplicationRegisterHandler(getManager()));
-        grpcHandlerRegister.addHandler(new InstanceDiscoveryServiceHandler(getManager()));
-        grpcHandlerRegister.addHandler(new ServiceNameDiscoveryHandler(getManager()));
-        grpcHandlerRegister.addHandler(new NetworkAddressRegisterServiceHandler(getManager()));
-
-        // v2
         grpcHandlerRegister.addHandler(new RegisterServiceHandler(getManager()));
         grpcHandlerRegister.addHandler(new ServiceInstancePingServiceHandler(getManager()));
-
-        JettyHandlerRegister jettyHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(JettyHandlerRegister.class);
-        jettyHandlerRegister.addHandler(new ApplicationRegisterServletHandler(getManager()));
-        jettyHandlerRegister.addHandler(new InstanceDiscoveryServletHandler(getManager()));
-        jettyHandlerRegister.addHandler(new InstanceHeartBeatServletHandler(getManager()));
-        jettyHandlerRegister.addHandler(new NetworkAddressRegisterServletHandler(getManager()));
-        jettyHandlerRegister.addHandler(new ServiceNameDiscoveryServiceHandler(getManager()));
     }
 
     @Override public void notifyAfterCompleted() {
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ApplicationRegisterHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ApplicationRegisterHandler.java
deleted file mode 100644
index f0e2b5e..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ApplicationRegisterHandler.java
+++ /dev/null
@@ -1,59 +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.oap.server.receiver.register.provider.handler.v5.grpc;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.core.*;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ApplicationRegisterHandler extends ApplicationRegisterServiceGrpc.ApplicationRegisterServiceImplBase implements GRPCHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(ApplicationRegisterHandler.class);
-
-    private final IServiceInventoryRegister serviceInventoryRegister;
-
-    public ApplicationRegisterHandler(ModuleManager moduleManager) {
-        serviceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInventoryRegister.class);
-    }
-
-    @Override
-    public void applicationCodeRegister(Application request, StreamObserver<ApplicationMapping> responseObserver) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("Register application, application code: {}", request.getApplicationCode());
-        }
-
-        ApplicationMapping.Builder builder = ApplicationMapping.newBuilder();
-        String serviceName = request.getApplicationCode();
-        int serviceId = serviceInventoryRegister.getOrCreate(serviceName, null);
-
-        if (serviceId != Const.NONE) {
-            KeyWithIntegerValue value = KeyWithIntegerValue.newBuilder().setKey(serviceName).setValue(serviceId).build();
-            builder.setApplication(value);
-        }
-        responseObserver.onNext(builder.build());
-        responseObserver.onCompleted();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/InstanceDiscoveryServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/InstanceDiscoveryServiceHandler.java
deleted file mode 100644
index 4bb5479..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/InstanceDiscoveryServiceHandler.java
+++ /dev/null
@@ -1,98 +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.oap.server.receiver.register.provider.handler.v5.grpc;
-
-import com.google.common.base.Strings;
-import com.google.gson.JsonObject;
-import io.grpc.stub.StreamObserver;
-import java.util.Objects;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.cache.*;
-import org.apache.skywalking.oap.server.core.register.*;
-import org.apache.skywalking.oap.server.core.register.ServiceInstanceInventory.PropertyUtil;
-import org.apache.skywalking.oap.server.core.register.service.*;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceDiscoveryServiceHandler extends InstanceDiscoveryServiceGrpc.InstanceDiscoveryServiceImplBase implements GRPCHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(InstanceDiscoveryServiceHandler.class);
-
-    private final ServiceInventoryCache serviceInventoryCache;
-    private final ServiceInstanceInventoryCache serviceInstanceInventoryCache;
-    private final IServiceInventoryRegister serviceInventoryRegister;
-    private final IServiceInstanceInventoryRegister serviceInstanceInventoryRegister;
-
-    public InstanceDiscoveryServiceHandler(ModuleManager moduleManager) {
-        this.serviceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInventoryCache.class);
-        this.serviceInstanceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInstanceInventoryCache.class);
-        this.serviceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInventoryRegister.class);
-        this.serviceInstanceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInstanceInventoryRegister.class);
-    }
-
-    @Override
-    public void registerInstance(ApplicationInstance request,
-        StreamObserver<ApplicationInstanceMapping> responseObserver) {
-        OSInfo osinfo = request.getOsinfo();
-
-        JsonObject instanceProperties = new JsonObject();
-        instanceProperties.addProperty(PropertyUtil.HOST_NAME, osinfo.getHostname());
-        instanceProperties.addProperty(PropertyUtil.OS_NAME, osinfo.getOsName());
-        instanceProperties.addProperty(PropertyUtil.PROCESS_NO, osinfo.getProcessNo() + "");
-        instanceProperties.addProperty(PropertyUtil.IPV4S, PropertyUtil.ipv4sSerialize(osinfo.getIpv4SList()));
-
-        ServiceInventory serviceInventory = serviceInventoryCache.get(request.getApplicationId());
-
-        String instanceName = serviceInventory.getName();
-        if (osinfo.getProcessNo() != 0) {
-            instanceName += "-pid:" + osinfo.getProcessNo();
-        }
-        if (!Strings.isNullOrEmpty(osinfo.getHostname())) {
-            instanceName += "@" + osinfo.getHostname();
-        }
-
-        int serviceInstanceId = serviceInstanceInventoryRegister.getOrCreate(request.getApplicationId(), instanceName, request.getAgentUUID(), request.getRegisterTime(), instanceProperties);
-        ApplicationInstanceMapping.Builder builder = ApplicationInstanceMapping.newBuilder();
-        builder.setApplicationId(request.getApplicationId());
-        builder.setApplicationInstanceId(serviceInstanceId);
-        responseObserver.onNext(builder.build());
-        responseObserver.onCompleted();
-    }
-
-    @Override public void heartbeat(ApplicationInstanceHeartbeat request, StreamObserver<Downstream> responseObserver) {
-        int serviceInstanceId = request.getApplicationInstanceId();
-        long heartBeatTime = request.getHeartbeatTime();
-        serviceInstanceInventoryRegister.heartbeat(serviceInstanceId, heartBeatTime);
-
-        ServiceInstanceInventory serviceInstanceInventory = serviceInstanceInventoryCache.get(serviceInstanceId);
-        if (Objects.nonNull(serviceInstanceInventory)) {
-            serviceInventoryRegister.heartbeat(serviceInstanceInventory.getServiceId(), heartBeatTime);
-        } else {
-            logger.warn("Can't found service by service instance id from cache, service instance id is: {}", serviceInstanceId);
-        }
-
-        responseObserver.onNext(Downstream.getDefaultInstance());
-        responseObserver.onCompleted();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/NetworkAddressRegisterServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/NetworkAddressRegisterServiceHandler.java
deleted file mode 100644
index a1adb9e..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/NetworkAddressRegisterServiceHandler.java
+++ /dev/null
@@ -1,63 +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.oap.server.receiver.register.provider.handler.v5.grpc;
-
-import com.google.protobuf.ProtocolStringList;
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.core.*;
-import org.apache.skywalking.oap.server.core.register.service.INetworkAddressInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class NetworkAddressRegisterServiceHandler extends NetworkAddressRegisterServiceGrpc.NetworkAddressRegisterServiceImplBase implements GRPCHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(NetworkAddressRegisterServiceHandler.class);
-
-    private final INetworkAddressInventoryRegister networkAddressInventoryRegister;
-
-    public NetworkAddressRegisterServiceHandler(ModuleManager moduleManager) {
-        this.networkAddressInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(INetworkAddressInventoryRegister.class);
-    }
-
-    @Override
-    public void batchRegister(NetworkAddresses request, StreamObserver<NetworkAddressMappings> responseObserver) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("register application");
-        }
-
-        ProtocolStringList addressesList = request.getAddressesList();
-
-        NetworkAddressMappings.Builder builder = NetworkAddressMappings.newBuilder();
-        for (String networkAddress : addressesList) {
-            int addressId = networkAddressInventoryRegister.getOrCreate(networkAddress, null);
-
-            if (addressId != Const.NONE) {
-                KeyWithIntegerValue value = KeyWithIntegerValue.newBuilder().setKey(networkAddress).setValue(addressId).build();
-                builder.addAddressIds(value);
-            }
-        }
-        responseObserver.onNext(builder.build());
-        responseObserver.onCompleted();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ServiceNameDiscoveryHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ServiceNameDiscoveryHandler.java
deleted file mode 100644
index f628c88..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/grpc/ServiceNameDiscoveryHandler.java
+++ /dev/null
@@ -1,65 +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.oap.server.receiver.register.provider.handler.v5.grpc;
-
-import io.grpc.stub.StreamObserver;
-import java.util.List;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.core.*;
-import org.apache.skywalking.oap.server.core.register.service.IEndpointInventoryRegister;
-import org.apache.skywalking.oap.server.core.source.DetectPoint;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ServiceNameDiscoveryHandler extends ServiceNameDiscoveryServiceGrpc.ServiceNameDiscoveryServiceImplBase implements GRPCHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(ServiceNameDiscoveryHandler.class);
-
-    private final IEndpointInventoryRegister inventoryService;
-
-    public ServiceNameDiscoveryHandler(ModuleManager moduleManager) {
-        this.inventoryService = moduleManager.find(CoreModule.NAME).provider().getService(IEndpointInventoryRegister.class);
-    }
-
-    @Override public void discovery(ServiceNameCollection request,
-        StreamObserver<ServiceNameMappingCollection> responseObserver) {
-        List<ServiceNameElement> serviceNameElementList = request.getElementsList();
-
-        ServiceNameMappingCollection.Builder builder = ServiceNameMappingCollection.newBuilder();
-        for (ServiceNameElement serviceNameElement : serviceNameElementList) {
-            int serviceId = serviceNameElement.getApplicationId();
-            String endpointName = serviceNameElement.getServiceName();
-            int endpointId = inventoryService.getOrCreate(serviceId, endpointName, DetectPoint.fromSpanType(serviceNameElement.getSrcSpanType()));
-
-            if (endpointId != Const.NONE) {
-                ServiceNameMappingElement.Builder mappingElement = ServiceNameMappingElement.newBuilder();
-                mappingElement.setServiceId(endpointId);
-                mappingElement.setElement(serviceNameElement);
-                builder.addElements(mappingElement);
-            }
-        }
-
-        responseObserver.onNext(builder.build());
-        responseObserver.onCompleted();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ApplicationRegisterServletHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ApplicationRegisterServletHandler.java
deleted file mode 100644
index b08512b..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ApplicationRegisterServletHandler.java
+++ /dev/null
@@ -1,71 +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.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ApplicationRegisterServletHandler extends JettyJsonHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(ApplicationRegisterServletHandler.class);
-
-    private final IServiceInventoryRegister serviceInventoryRegister;
-    private Gson gson = new Gson();
-    private static final String APPLICATION_CODE = "c";
-    private static final String APPLICATION_ID = "i";
-
-    public ApplicationRegisterServletHandler(ModuleManager moduleManager) {
-        serviceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInventoryRegister.class);
-    }
-
-    @Override public String pathSpec() {
-        return "/application/register";
-    }
-
-    @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException {
-        JsonArray responseArray = new JsonArray();
-        try {
-            JsonArray applicationCodes = gson.fromJson(req.getReader(), JsonArray.class);
-            for (int i = 0; i < applicationCodes.size(); i++) {
-                String applicationCode = applicationCodes.get(i).getAsString();
-                int applicationId = serviceInventoryRegister.getOrCreate(applicationCode, null);
-                JsonObject mapping = new JsonObject();
-                mapping.addProperty(APPLICATION_CODE, applicationCode);
-                mapping.addProperty(APPLICATION_ID, applicationId);
-                responseArray.add(mapping);
-            }
-        } catch (IOException e) {
-            logger.error(e.getMessage(), e);
-        }
-        return responseArray;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceDiscoveryServletHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceDiscoveryServletHandler.java
deleted file mode 100644
index d1ba180..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceDiscoveryServletHandler.java
+++ /dev/null
@@ -1,102 +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.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import java.util.*;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.cache.ServiceInventoryCache;
-import org.apache.skywalking.oap.server.core.register.*;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInstanceInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.*;
-import org.slf4j.*;
-
-import static org.apache.skywalking.oap.server.core.register.ServiceInstanceInventory.PropertyUtil.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceDiscoveryServletHandler extends JettyJsonHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(InstanceDiscoveryServletHandler.class);
-
-    private final IServiceInstanceInventoryRegister serviceInstanceInventoryRegister;
-    private final ServiceInventoryCache serviceInventoryCache;
-    private final Gson gson = new Gson();
-
-    private static final String APPLICATION_ID = "ai";
-    private static final String AGENT_UUID = "au";
-    private static final String REGISTER_TIME = "rt";
-    private static final String INSTANCE_ID = "ii";
-    private static final String OS_INFO = "oi";
-
-    public InstanceDiscoveryServletHandler(ModuleManager moduleManager) {
-        this.serviceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInventoryCache.class);
-        this.serviceInstanceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInstanceInventoryRegister.class);
-    }
-
-    @Override public String pathSpec() {
-        return "/instance/register";
-    }
-
-    @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException {
-        JsonObject responseJson = new JsonObject();
-        try {
-            JsonObject instance = gson.fromJson(req.getReader(), JsonObject.class);
-            int applicationId = instance.get(APPLICATION_ID).getAsInt();
-            String agentUUID = instance.get(AGENT_UUID).getAsString();
-            long registerTime = instance.get(REGISTER_TIME).getAsLong();
-            JsonObject osInfoJson = instance.get(OS_INFO).getAsJsonObject();
-
-            List<String> ipv4sList = new ArrayList<>();
-            JsonArray ipv4s = osInfoJson.get("ipv4s").getAsJsonArray();
-            ipv4s.forEach(ipv4 -> ipv4sList.add(ipv4.getAsString()));
-
-            ServiceInventory serviceInventory = serviceInventoryCache.get(applicationId);
-
-            JsonObject instanceProperties = new JsonObject();
-            instanceProperties.addProperty(ServiceInstanceInventory.PropertyUtil.HOST_NAME, osInfoJson.get("hostName").getAsString());
-            instanceProperties.addProperty(ServiceInstanceInventory.PropertyUtil.OS_NAME, osInfoJson.get("osName").getAsString());
-            instanceProperties.addProperty(ServiceInstanceInventory.PropertyUtil.PROCESS_NO, osInfoJson.get("processId").getAsInt() + "");
-            instanceProperties.addProperty(ServiceInstanceInventory.PropertyUtil.IPV4S, ServiceInstanceInventory.PropertyUtil.ipv4sSerialize(ipv4sList));
-
-            String instanceName = serviceInventory.getName();
-            if (instanceProperties.has(PROCESS_NO)) {
-                instanceName += "-pid:" + instanceProperties.get(PROCESS_NO).getAsString();
-            }
-            if (instanceProperties.has(HOST_NAME)) {
-                instanceName += "@" + instanceProperties.get(HOST_NAME).getAsString();
-            }
-
-            int instanceId = serviceInstanceInventoryRegister.getOrCreate(applicationId, instanceName, agentUUID, registerTime, instanceProperties);
-            responseJson.addProperty(APPLICATION_ID, applicationId);
-            responseJson.addProperty(INSTANCE_ID, instanceId);
-        } catch (IOException e) {
-            logger.error(e.getMessage(), e);
-        }
-        return responseJson;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceHeartBeatServletHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceHeartBeatServletHandler.java
deleted file mode 100644
index 34c3971..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/InstanceHeartBeatServletHandler.java
+++ /dev/null
@@ -1,82 +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.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import java.util.Objects;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.cache.ServiceInstanceInventoryCache;
-import org.apache.skywalking.oap.server.core.register.ServiceInstanceInventory;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInstanceInventoryRegister;
-import org.apache.skywalking.oap.server.core.register.service.IServiceInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceHeartBeatServletHandler extends JettyJsonHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(InstanceHeartBeatServletHandler.class);
-
-    private final IServiceInstanceInventoryRegister serviceInstanceInventoryRegister;
-    private final ServiceInstanceInventoryCache serviceInstanceInventoryCache;
-    private final IServiceInventoryRegister serviceInventoryRegister;
-    private final Gson gson = new Gson();
-
-    private static final String INSTANCE_ID = "ii";
-    private static final String HEARTBEAT_TIME = "ht";
-
-    public InstanceHeartBeatServletHandler(ModuleManager moduleManager) {
-        this.serviceInstanceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInstanceInventoryRegister.class);
-        this.serviceInstanceInventoryCache = moduleManager.find(CoreModule.NAME).provider().getService(ServiceInstanceInventoryCache.class);
-        this.serviceInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(IServiceInventoryRegister.class);
-    }
-
-    @Override public String pathSpec() {
-        return "/instance/heartbeat";
-    }
-
-    @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException, IOException {
-        JsonObject responseJson = new JsonObject();
-        try {
-            JsonObject heartBeat = gson.fromJson(req.getReader(), JsonObject.class);
-            int instanceId = heartBeat.get(INSTANCE_ID).getAsInt();
-            long heartBeatTime = heartBeat.get(HEARTBEAT_TIME).getAsLong();
-
-            serviceInstanceInventoryRegister.heartbeat(instanceId, heartBeatTime);
-            ServiceInstanceInventory serviceInstanceInventory = serviceInstanceInventoryCache.get(instanceId);
-            if (Objects.nonNull(serviceInstanceInventory)) {
-                serviceInventoryRegister.heartbeat(serviceInstanceInventory.getServiceId(), heartBeatTime);
-            } else {
-                logger.warn("Can't found service by service instance id from cache, service instance id is: {}", instanceId);
-            }
-        } catch (IOException e) {
-            logger.error(e.getMessage(), e);
-        }
-        return responseJson;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/NetworkAddressRegisterServletHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/NetworkAddressRegisterServletHandler.java
deleted file mode 100644
index b873d08..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/NetworkAddressRegisterServletHandler.java
+++ /dev/null
@@ -1,76 +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.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.register.service.INetworkAddressInventoryRegister;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.JettyJsonHandler;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class NetworkAddressRegisterServletHandler extends JettyJsonHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(NetworkAddressRegisterServletHandler.class);
-
-    private final INetworkAddressInventoryRegister networkAddressInventoryRegister;
-    private Gson gson = new Gson();
-    private static final String NETWORK_ADDRESS = "n";
-    private static final String ADDRESS_ID = "i";
-
-    public NetworkAddressRegisterServletHandler(ModuleManager moduleManager) {
-        this.networkAddressInventoryRegister = moduleManager.find(CoreModule.NAME).provider().getService(INetworkAddressInventoryRegister.class);
-    }
-
-    @Override public String pathSpec() {
-        return "/networkAddress/register";
-    }
-
-    @Override protected JsonElement doGet(HttpServletRequest req) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override protected JsonElement doPost(HttpServletRequest req) {
-        JsonArray responseArray = new JsonArray();
-        try {
-            JsonArray networkAddresses = gson.fromJson(req.getReader(), JsonArray.class);
-            for (int i = 0; i < networkAddresses.size(); i++) {
-                String networkAddress = networkAddresses.get(i).getAsString();
-
-                if (logger.isDebugEnabled()) {
-                    logger.debug("network getAddress register, network getAddress: {}", networkAddress);
-                }
-
-                int addressId = networkAddressInventoryRegister.getOrCreate(networkAddress, null);
-                JsonObject mapping = new JsonObject();
-                mapping.addProperty(ADDRESS_ID, addressId);
-                mapping.addProperty(NETWORK_ADDRESS, networkAddress);
-                responseArray.add(mapping);
-            }
-        } catch (IOException e) {
-            logger.error(e.getMessage(), e);
-        }
-        return responseArray;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ServiceNameDiscoveryServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ServiceNameDiscoveryServiceHandler.java
deleted file mode 100644
index c9b09d4..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/rest/ServiceNameDiscoveryServiceHandler.java
+++ /dev/null
@@ -1,86 +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.oap.server.receiver.register.provider.handler.v5.rest;
-
-import com.google.gson.*;
-import java.io.IOException;
-import java.util.Objects;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.apm.network.language.agent.SpanType;
-import org.apache.skywalking.oap.server.core.CoreModule;
-import org.apache.skywalking.oap.server.core.register.service.IEndpointInventoryRegister;
-import org.apache.skywalking.oap.server.core.source.DetectPoint;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.library.server.jetty.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ServiceNameDiscoveryServiceHandler extends JettyJsonHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(ServiceNameDiscoveryServiceHandler.class);
-
-    private final IEndpointInventoryRegister inventoryService;
-    private final Gson gson = new Gson();
-
-    private static final String APPLICATION_ID = "ai";
-    private static final String SERVICE_NAME = "sn";
-    private static final String SRC_SPAN_TYPE = "st";
-    private static final String SERVICE_ID = "si";
-    private static final String ELEMENT = "el";
-
-    public ServiceNameDiscoveryServiceHandler(ModuleManager moduleManager) {
-        this.inventoryService = moduleManager.find(CoreModule.NAME).provider().getService(IEndpointInventoryRegister.class);
-    }
-
-    @Override public String pathSpec() {
-        return "/servicename/discovery";
-    }
-
-    @Override protected JsonElement doGet(HttpServletRequest req) throws ArgumentsParseException {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override protected JsonElement doPost(HttpServletRequest req) throws ArgumentsParseException {
-        JsonArray responseArray = new JsonArray();
-        try {
-            JsonArray services = gson.fromJson(req.getReader(), JsonArray.class);
-            for (JsonElement service : services) {
-                int applicationId = service.getAsJsonObject().get(APPLICATION_ID).getAsInt();
-                String serviceName = service.getAsJsonObject().get(SERVICE_NAME).getAsString();
-                int srcSpanType = service.getAsJsonObject().get(SRC_SPAN_TYPE).getAsInt();
-
-                SpanType spanType = SpanType.forNumber(srcSpanType);
-                if (Objects.nonNull(spanType)) {
-                    int serviceId = inventoryService.getOrCreate(applicationId, serviceName, DetectPoint.fromSpanType(spanType));
-                    if (serviceId != 0) {
-                        JsonObject responseJson = new JsonObject();
-                        responseJson.addProperty(SERVICE_ID, serviceId);
-                        responseJson.add(ELEMENT, service);
-                        responseArray.add(responseJson);
-                    }
-                }
-            }
-        } catch (IOException e) {
-            logger.error(e.getMessage(), e);
-        }
-        return responseArray;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ApplicationRegisterHandlerTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ApplicationRegisterHandlerTestCase.java
deleted file mode 100644
index f2763bd..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ApplicationRegisterHandlerTestCase.java
+++ /dev/null
@@ -1,48 +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.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import io.grpc.stub.MetadataUtils;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ApplicationRegisterHandlerTestCase {
-
-    private static final Logger logger = LoggerFactory.getLogger(ApplicationRegisterHandlerTestCase.class);
-
-    public static void main(String[] args) {
-        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
-        ApplicationRegisterServiceGrpc.ApplicationRegisterServiceBlockingStub stub = ApplicationRegisterServiceGrpc.newBlockingStub(channel);
-
-        Metadata authHeader = new Metadata();
-        authHeader.put(Metadata.Key.of("Authentication", Metadata.ASCII_STRING_MARSHALLER), "c4a4baabf931f2379bdfe53a450ecb89");
-        stub = MetadataUtils.attachHeaders(stub, authHeader);
-
-        Application.Builder application = Application.newBuilder();
-        application.setApplicationCode("dubbox-consumer");
-
-        ApplicationMapping applicationMapping = stub.applicationCodeRegister(application.build());
-        logger.info("application id: {}", applicationMapping.getApplication().getValue());
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceDiscoveryServiceHandlerTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceDiscoveryServiceHandlerTestCase.java
deleted file mode 100644
index a4bbd22..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceDiscoveryServiceHandlerTestCase.java
+++ /dev/null
@@ -1,53 +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.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceDiscoveryServiceHandlerTestCase {
-
-    private static final Logger logger = LoggerFactory.getLogger(InstanceDiscoveryServiceHandlerTestCase.class);
-
-    public static void main(String[] args) {
-        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
-        InstanceDiscoveryServiceGrpc.InstanceDiscoveryServiceBlockingStub stub = InstanceDiscoveryServiceGrpc.newBlockingStub(channel);
-
-        ApplicationInstance.Builder applicationInstance = ApplicationInstance.newBuilder();
-        applicationInstance.setApplicationId(1);
-        applicationInstance.setAgentUUID("Test");
-        applicationInstance.setRegisterTime(System.currentTimeMillis());
-
-        OSInfo.Builder osInfo = OSInfo.newBuilder();
-        osInfo.setOsName("mac os");
-        osInfo.setHostname("pengys");
-        osInfo.setProcessNo(1);
-        osInfo.addIpv4S("10.0.0.1");
-        osInfo.addIpv4S("10.0.0.2");
-        applicationInstance.setOsinfo(osInfo);
-
-        ApplicationInstanceMapping instanceMapping = stub.registerInstance(applicationInstance.build());
-        logger.info("application id: {}, application instance id: {}", instanceMapping.getApplicationId(), instanceMapping.getApplicationInstanceId());
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceHeartBeatTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceHeartBeatTestCase.java
deleted file mode 100644
index 96d79f2..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/InstanceHeartBeatTestCase.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import org.apache.skywalking.apm.network.language.agent.*;
-
-/**
- * @author peng-yongsheng
- */
-public class InstanceHeartBeatTestCase {
-
-    public static void main(String[] args) {
-        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
-        InstanceDiscoveryServiceGrpc.InstanceDiscoveryServiceBlockingStub stub = InstanceDiscoveryServiceGrpc.newBlockingStub(channel);
-
-        ApplicationInstanceHeartbeat.Builder builder = ApplicationInstanceHeartbeat.newBuilder();
-        builder.setApplicationInstanceId(2);
-        builder.setHeartbeatTime(System.currentTimeMillis() + 5 * 1000 * 60);
-        Downstream heartbeat = stub.heartbeat(builder.build());
-
-        builder.setApplicationInstanceId(3);
-        heartbeat = stub.heartbeat(builder.build());
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/NetworkAddressRegisterServiceHandlerTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/NetworkAddressRegisterServiceHandlerTestCase.java
deleted file mode 100644
index 65add44..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/NetworkAddressRegisterServiceHandlerTestCase.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-package org.apache.skywalking.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class NetworkAddressRegisterServiceHandlerTestCase {
-
-    private static final Logger logger = LoggerFactory.getLogger(NetworkAddressRegisterServiceHandlerTestCase.class);
-
-    public static void main(String[] args) {
-        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
-        NetworkAddressRegisterServiceGrpc.NetworkAddressRegisterServiceBlockingStub stub = NetworkAddressRegisterServiceGrpc.newBlockingStub(channel);
-
-        NetworkAddresses.Builder networkAddresses = NetworkAddresses.newBuilder();
-        networkAddresses.addAddresses("127.0.0.1:8080");
-
-        NetworkAddressMappings addressMappings = stub.batchRegister(networkAddresses.build());
-
-        for (KeyWithIntegerValue value : addressMappings.getAddressIdsList()) {
-            logger.info("key: {}, value: {}", value.getKey(), value.getValue());
-        }
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandlerTestCase.java b/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandlerTestCase.java
deleted file mode 100644
index e74bb33..0000000
--- a/oap-server/server-receiver-plugin/skywalking-register-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/register/provider/handler/v5/ServiceNameDiscoveryHandlerTestCase.java
+++ /dev/null
@@ -1,49 +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.oap.server.receiver.register.provider.handler.v5;
-
-import io.grpc.*;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class ServiceNameDiscoveryHandlerTestCase {
-
-    private static final Logger logger = LoggerFactory.getLogger(ServiceNameDiscoveryHandlerTestCase.class);
-
-    public static void main(String[] args) {
-        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-        ServiceNameDiscoveryServiceGrpc.ServiceNameDiscoveryServiceBlockingStub stub = ServiceNameDiscoveryServiceGrpc.newBlockingStub(channel);
-
-        ServiceNameCollection.Builder serviceNameCollection = ServiceNameCollection.newBuilder();
-        ServiceNameElement.Builder serviceNameElement = ServiceNameElement.newBuilder();
-        serviceNameElement.setApplicationId(1);
-        serviceNameElement.setServiceName("org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()");
-        serviceNameElement.setSrcSpanType(SpanType.Entry);
-        serviceNameCollection.addElements(serviceNameElement);
-
-        ServiceNameMappingCollection collection = stub.discovery(serviceNameCollection.build());
-
-        for (ServiceNameMappingElement element : collection.getElementsList()) {
-            logger.info("service id: {}", element.getServiceId());
-        }
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
index 5df7956..7b1ab2c 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/TraceModuleProvider.java
@@ -22,7 +22,6 @@ import org.apache.skywalking.oap.server.configuration.api.ConfigurationModule;
 import org.apache.skywalking.oap.server.configuration.api.DynamicConfigurationService;
 import org.apache.skywalking.oap.server.core.CoreModule;
 import org.apache.skywalking.oap.server.core.server.GRPCHandlerRegister;
-import org.apache.skywalking.oap.server.core.server.JettyHandlerRegister;
 import org.apache.skywalking.oap.server.library.module.ModuleConfig;
 import org.apache.skywalking.oap.server.library.module.ModuleDefine;
 import org.apache.skywalking.oap.server.library.module.ModuleProvider;
@@ -30,11 +29,8 @@ import org.apache.skywalking.oap.server.library.module.ModuleStartException;
 import org.apache.skywalking.oap.server.library.module.ServiceNotProvidedException;
 import org.apache.skywalking.oap.server.receiver.sharing.server.SharingServerModule;
 import org.apache.skywalking.oap.server.receiver.trace.module.TraceModule;
-import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.grpc.TraceSegmentServiceHandler;
-import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.TraceSegmentServletHandler;
 import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v6.grpc.TraceSegmentReportServiceHandler;
 import org.apache.skywalking.oap.server.receiver.trace.provider.parser.ISegmentParserService;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParse;
 import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParseV2;
 import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParserListenerManager;
 import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParserServiceImpl;
@@ -53,7 +49,6 @@ import java.io.IOException;
 public class TraceModuleProvider extends ModuleProvider {
 
     private final TraceServiceModuleConfig moduleConfig;
-    private SegmentParse.Producer segmentProducer;
     private SegmentParseV2.Producer segmentProducerV2;
     private DBLatencyThresholdsAndWatcher thresholds;
     private UninstrumentedGatewaysConfig uninstrumentedGatewaysConfig;
@@ -82,7 +77,6 @@ public class TraceModuleProvider extends ModuleProvider {
         moduleConfig.setDbLatencyThresholdsAndWatcher(thresholds);
         moduleConfig.setUninstrumentedGatewaysConfig(uninstrumentedGatewaysConfig);
 
-        segmentProducer = new SegmentParse.Producer(getManager(), listenerManager(), moduleConfig);
         segmentProducerV2 = new SegmentParseV2.Producer(getManager(), listenerManager(), moduleConfig);
 
         this.registerServiceImplementation(ISegmentParserService.class, new SegmentParserServiceImpl(segmentProducerV2));
@@ -103,19 +97,13 @@ public class TraceModuleProvider extends ModuleProvider {
     @Override public void start() throws ModuleStartException {
         DynamicConfigurationService dynamicConfigurationService = getManager().find(ConfigurationModule.NAME).provider().getService(DynamicConfigurationService.class);
         GRPCHandlerRegister grpcHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(GRPCHandlerRegister.class);
-        JettyHandlerRegister jettyHandlerRegister = getManager().find(SharingServerModule.NAME).provider().getService(JettyHandlerRegister.class);
         try {
             dynamicConfigurationService.registerConfigChangeWatcher(thresholds);
             dynamicConfigurationService.registerConfigChangeWatcher(uninstrumentedGatewaysConfig);
 
-            grpcHandlerRegister.addHandler(new TraceSegmentServiceHandler(segmentProducer));
             grpcHandlerRegister.addHandler(new TraceSegmentReportServiceHandler(segmentProducerV2, getManager()));
-            jettyHandlerRegister.addHandler(new TraceSegmentServletHandler(segmentProducer));
 
-            SegmentStandardizationWorker standardizationWorker = new SegmentStandardizationWorker(getManager(), segmentProducer, moduleConfig.getBufferPath() + "v5", moduleConfig.getBufferOffsetMaxFileSize(), moduleConfig.getBufferDataMaxFileSize(), moduleConfig.isBufferFileCleanWhenRestart(), false);
-            segmentProducer.setStandardizationWorker(standardizationWorker);
-
-            SegmentStandardizationWorker standardizationWorkerV2 = new SegmentStandardizationWorker(getManager(), segmentProducerV2, moduleConfig.getBufferPath(), moduleConfig.getBufferOffsetMaxFileSize(), moduleConfig.getBufferDataMaxFileSize(), moduleConfig.isBufferFileCleanWhenRestart(), true);
+            SegmentStandardizationWorker standardizationWorkerV2 = new SegmentStandardizationWorker(getManager(), segmentProducerV2, moduleConfig.getBufferPath(), moduleConfig.getBufferOffsetMaxFileSize(), moduleConfig.getBufferDataMaxFileSize(), moduleConfig.isBufferFileCleanWhenRestart());
             segmentProducerV2.setStandardizationWorker(standardizationWorkerV2);
         } catch (IOException e) {
             throw new ModuleStartException(e.getMessage(), e);
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/SegmentCounter.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/SegmentCounter.java
deleted file mode 100644
index e65030a..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/SegmentCounter.java
+++ /dev/null
@@ -1,34 +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.oap.server.receiver.trace.provider.handler.v5.grpc;
-
-import java.util.concurrent.atomic.AtomicLong;
-
-/**
- * @author peng-yongsheng
- */
-public enum SegmentCounter {
-    INSTANCE;
-
-    private final AtomicLong counter = new AtomicLong(0);
-
-    public long incrementAndGet() {
-        return counter.incrementAndGet();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/TraceSegmentServiceHandler.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/TraceSegmentServiceHandler.java
deleted file mode 100644
index cd4baa0..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/grpc/TraceSegmentServiceHandler.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.oap.server.receiver.trace.provider.handler.v5.grpc;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.library.server.grpc.GRPCHandler;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParse;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class TraceSegmentServiceHandler extends TraceSegmentServiceGrpc.TraceSegmentServiceImplBase implements GRPCHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(TraceSegmentServiceHandler.class);
-
-    private final Boolean debug;
-    private final SegmentParse.Producer segmentProducer;
-
-    public TraceSegmentServiceHandler(SegmentParse.Producer segmentProducer) {
-        this.debug = System.getProperty("debug") != null;
-        this.segmentProducer = segmentProducer;
-    }
-
-    @Override public StreamObserver<UpstreamSegment> collect(StreamObserver<Downstream> responseObserver) {
-        return new StreamObserver<UpstreamSegment>() {
-            @Override public void onNext(UpstreamSegment segment) {
-                if (logger.isDebugEnabled()) {
-                    logger.debug("receive segment");
-                }
-
-                segmentProducer.send(segment, SegmentParse.Source.Agent);
-
-                if (debug) {
-                    long count = SegmentCounter.INSTANCE.incrementAndGet();
-                    if (count % 100000 == 0) {
-                        logger.info("received segment count: {}", count);
-                    }
-                }
-            }
-
-            @Override public void onError(Throwable throwable) {
-                logger.error(throwable.getMessage(), throwable);
-                responseObserver.onCompleted();
-            }
-
-            @Override public void onCompleted() {
-                responseObserver.onNext(Downstream.newBuilder().build());
-                responseObserver.onCompleted();
-            }
-        };
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/TraceSegmentServletHandler.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/TraceSegmentServletHandler.java
deleted file mode 100644
index 6a3ecb9..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/TraceSegmentServletHandler.java
+++ /dev/null
@@ -1,78 +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.oap.server.receiver.trace.provider.handler.v5.rest;
-
-import com.google.gson.JsonElement;
-import com.google.gson.stream.JsonReader;
-import java.io.*;
-import javax.servlet.http.HttpServletRequest;
-import org.apache.skywalking.oap.server.library.server.jetty.JettyJsonHandler;
-import org.apache.skywalking.oap.server.receiver.trace.provider.handler.v5.rest.reader.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.SegmentParse;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class TraceSegmentServletHandler extends JettyJsonHandler {
-
-    private static final Logger logger = LoggerFactory.getLogger(TraceSegmentServletHandler.class);
-
-    private final SegmentParse.Producer segmentProducer;
-
-    public TraceSegmentServletHandler(SegmentParse.Producer segmentProducer) {
-        this.segmentProducer = segmentProducer;
-    }
-
-    @Override public String pathSpec() {
-        return "/segments";
-    }
-
-    @Override protected JsonElement doGet(HttpServletRequest req) {
-        throw new UnsupportedOperationException();
-    }
-
-    @Override protected JsonElement doPost(HttpServletRequest req) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("receive stream segment");
-        }
-
-        try {
-            BufferedReader bufferedReader = req.getReader();
-            read(bufferedReader);
-        } catch (IOException e) {
-            logger.error(e.getMessage(), e);
-        }
-
-        return null;
-    }
-
-    private TraceSegmentJsonReader jsonReader = new TraceSegmentJsonReader();
-
-    private void read(BufferedReader bufferedReader) throws IOException {
-        JsonReader reader = new JsonReader(bufferedReader);
-
-        reader.beginArray();
-        while (reader.hasNext()) {
-            TraceSegment traceSegment = jsonReader.read(reader);
-            segmentProducer.send(traceSegment.getUpstreamSegment(), SegmentParse.Source.Agent);
-        }
-        reader.endArray();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/KeyWithStringValueJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/KeyWithStringValueJsonReader.java
deleted file mode 100644
index 95739b4..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/KeyWithStringValueJsonReader.java
+++ /dev/null
@@ -1,54 +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.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.KeyWithStringValue;
-
-/**
- * @author peng-yongsheng
- */
-public class KeyWithStringValueJsonReader implements StreamJsonReader<KeyWithStringValue> {
-
-    private static final String KEY = "k";
-    private static final String VALUE = "v";
-
-    @Override public KeyWithStringValue read(JsonReader reader) throws IOException {
-        KeyWithStringValue.Builder builder = KeyWithStringValue.newBuilder();
-
-        reader.beginObject();
-        while (reader.hasNext()) {
-            switch (reader.nextName()) {
-                case KEY:
-                    builder.setKey(reader.nextString());
-                    break;
-                case VALUE:
-                    builder.setValue(reader.nextString());
-                    break;
-                default:
-                    reader.skipValue();
-                    break;
-            }
-        }
-        reader.endObject();
-
-        return builder.build();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/LogJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/LogJsonReader.java
deleted file mode 100644
index ddacc91..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/LogJsonReader.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.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.LogMessage;
-
-/**
- * @author peng-yongsheng
- */
-public class LogJsonReader implements StreamJsonReader<LogMessage> {
-
-    private KeyWithStringValueJsonReader keyWithStringValueJsonReader = new KeyWithStringValueJsonReader();
-
-    private static final String TIME = "ti";
-    private static final String LOG_DATA = "ld";
-
-    @Override public LogMessage read(JsonReader reader) throws IOException {
-        LogMessage.Builder builder = LogMessage.newBuilder();
-
-        reader.beginObject();
-        while (reader.hasNext()) {
-            switch (reader.nextName()) {
-                case TIME:
-                    builder.setTime(reader.nextLong());
-                    break;
-                case LOG_DATA:
-                    reader.beginArray();
-                    while (reader.hasNext()) {
-                        builder.addData(keyWithStringValueJsonReader.read(reader));
-                    }
-                    reader.endArray();
-                    break;
-                default:
-                    reader.skipValue();
-                    break;
-            }
-        }
-        reader.endObject();
-
-        return builder.build();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/ReferenceJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/ReferenceJsonReader.java
deleted file mode 100644
index 65c6b7a..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/ReferenceJsonReader.java
+++ /dev/null
@@ -1,92 +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.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentReference;
-
-/**
- * @author peng-yongsheng
- */
-public class ReferenceJsonReader implements StreamJsonReader<TraceSegmentReference> {
-
-    private UniqueIdJsonReader uniqueIdJsonReader = new UniqueIdJsonReader();
-
-    private static final String PARENT_TRACE_SEGMENT_ID = "pts";
-    private static final String PARENT_APPLICATION_INSTANCE_ID = "pii";
-    private static final String PARENT_SPAN_ID = "psp";
-    private static final String PARENT_SERVICE_ID = "psi";
-    private static final String PARENT_SERVICE_NAME = "psn";
-    private static final String NETWORK_ADDRESS_ID = "ni";
-    private static final String NETWORK_ADDRESS = "nn";
-    private static final String ENTRY_APPLICATION_INSTANCE_ID = "eii";
-    private static final String ENTRY_SERVICE_ID = "esi";
-    private static final String ENTRY_SERVICE_NAME = "esn";
-    private static final String REF_TYPE_VALUE = "rv";
-
-    @Override public TraceSegmentReference read(JsonReader reader) throws IOException {
-        TraceSegmentReference.Builder builder = TraceSegmentReference.newBuilder();
-
-        reader.beginObject();
-        while (reader.hasNext()) {
-            switch (reader.nextName()) {
-                case PARENT_TRACE_SEGMENT_ID:
-                    builder.setParentTraceSegmentId(uniqueIdJsonReader.read(reader));
-                    break;
-                case PARENT_APPLICATION_INSTANCE_ID:
-                    builder.setParentApplicationInstanceId(reader.nextInt());
-                    break;
-                case PARENT_SPAN_ID:
-                    builder.setParentSpanId(reader.nextInt());
-                    break;
-                case PARENT_SERVICE_ID:
-                    builder.setParentServiceId(reader.nextInt());
-                    break;
-                case PARENT_SERVICE_NAME:
-                    builder.setParentServiceName(reader.nextString());
-                    break;
-                case NETWORK_ADDRESS_ID:
-                    builder.setNetworkAddressId(reader.nextInt());
-                    break;
-                case NETWORK_ADDRESS:
-                    builder.setNetworkAddress(reader.nextString());
-                    break;
-                case ENTRY_APPLICATION_INSTANCE_ID:
-                    builder.setEntryApplicationInstanceId(reader.nextInt());
-                    break;
-                case ENTRY_SERVICE_ID:
-                    builder.setEntryServiceId(reader.nextInt());
-                    break;
-                case ENTRY_SERVICE_NAME:
-                    builder.setEntryServiceName(reader.nextString());
-                    break;
-                case REF_TYPE_VALUE:
-                    builder.setRefTypeValue(reader.nextInt());
-                    break;
-                default:
-                    reader.skipValue();
-                    break;
-            }
-        }
-        reader.endObject();
-
-        return builder.build();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SegmentJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SegmentJsonReader.java
deleted file mode 100644
index eab2406..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SegmentJsonReader.java
+++ /dev/null
@@ -1,77 +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.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class SegmentJsonReader implements StreamJsonReader<TraceSegmentObject.Builder> {
-
-    private static final Logger logger = LoggerFactory.getLogger(SegmentJsonReader.class);
-
-    private UniqueIdJsonReader uniqueIdJsonReader = new UniqueIdJsonReader();
-    private SpanJsonReader spanJsonReader = new SpanJsonReader();
-
-    private static final String TRACE_SEGMENT_ID = "ts";
-    private static final String APPLICATION_ID = "ai";
-    private static final String APPLICATION_INSTANCE_ID = "ii";
-    private static final String SPANS = "ss";
-
-    @Override public TraceSegmentObject.Builder read(JsonReader reader) throws IOException {
-        TraceSegmentObject.Builder builder = TraceSegmentObject.newBuilder();
-
-        reader.beginObject();
-        while (reader.hasNext()) {
-            switch (reader.nextName()) {
-                case TRACE_SEGMENT_ID:
-                    builder.setTraceSegmentId(uniqueIdJsonReader.read(reader));
-                    if (logger.isDebugEnabled()) {
-                        StringBuilder segmentId = new StringBuilder();
-                        builder.getTraceSegmentId().getIdPartsList().forEach(idPart -> segmentId.append(idPart));
-                        logger.debug("segment id: {}", segmentId);
-                    }
-                    break;
-                case APPLICATION_ID:
-                    builder.setApplicationId(reader.nextInt());
-                    break;
-                case APPLICATION_INSTANCE_ID:
-                    builder.setApplicationInstanceId(reader.nextInt());
-                    break;
-                case SPANS:
-                    reader.beginArray();
-                    while (reader.hasNext()) {
-                        builder.addSpans(spanJsonReader.read(reader));
-                    }
-                    reader.endArray();
-                    break;
-                default:
-                    reader.skipValue();
-                    break;
-            }
-        }
-        reader.endObject();
-
-        return builder;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SpanJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SpanJsonReader.java
deleted file mode 100644
index ef9471f..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/SpanJsonReader.java
+++ /dev/null
@@ -1,126 +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.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.SpanObject;
-
-/**
- * @author peng-yongsheng
- */
-public class SpanJsonReader implements StreamJsonReader<SpanObject> {
-
-    private KeyWithStringValueJsonReader keyWithStringValueJsonReader = new KeyWithStringValueJsonReader();
-    private LogJsonReader logJsonReader = new LogJsonReader();
-    private ReferenceJsonReader referenceJsonReader = new ReferenceJsonReader();
-
-    private static final String SPAN_ID = "si";
-    private static final String SPAN_TYPE_VALUE = "tv";
-    private static final String SPAN_LAYER_VALUE = "lv";
-    private static final String PARENT_SPAN_ID = "ps";
-    private static final String START_TIME = "st";
-    private static final String END_TIME = "et";
-    private static final String COMPONENT_ID = "ci";
-    private static final String COMPONENT_NAME = "cn";
-    private static final String OPERATION_NAME_ID = "oi";
-    private static final String OPERATION_NAME = "on";
-    private static final String PEER_ID = "pi";
-    private static final String PEER = "pn";
-    private static final String IS_ERROR = "ie";
-    private static final String TRACE_SEGMENT_REFERENCE = "rs";
-    private static final String TAGS = "to";
-    private static final String LOGS = "lo";
-
-    @Override public SpanObject read(JsonReader reader) throws IOException {
-        SpanObject.Builder builder = SpanObject.newBuilder();
-
-        reader.beginObject();
-        while (reader.hasNext()) {
-            switch (reader.nextName()) {
-                case SPAN_ID:
-                    builder.setSpanId(reader.nextInt());
-                    break;
-                case SPAN_TYPE_VALUE:
-                    builder.setSpanTypeValue(reader.nextInt());
-                    break;
-                case SPAN_LAYER_VALUE:
-                    builder.setSpanLayerValue(reader.nextInt());
-                    break;
-                case PARENT_SPAN_ID:
-                    builder.setParentSpanId(reader.nextInt());
-                    break;
-                case START_TIME:
-                    builder.setStartTime(reader.nextLong());
-                    break;
-                case END_TIME:
-                    builder.setEndTime(reader.nextLong());
-                    break;
-                case COMPONENT_ID:
-                    builder.setComponentId(reader.nextInt());
-                    break;
-                case COMPONENT_NAME:
-                    builder.setComponent(reader.nextString());
-                    break;
-                case OPERATION_NAME_ID:
-                    builder.setOperationNameId(reader.nextInt());
-                    break;
-                case OPERATION_NAME:
-                    builder.setOperationName(reader.nextString());
-                    break;
-                case PEER_ID:
-                    builder.setPeerId(reader.nextInt());
-                    break;
-                case PEER:
-                    builder.setPeer(reader.nextString());
-                    break;
-                case IS_ERROR:
-                    builder.setIsError(reader.nextBoolean());
-                    break;
-                case TRACE_SEGMENT_REFERENCE:
-                    reader.beginArray();
-                    while (reader.hasNext()) {
-                        builder.addRefs(referenceJsonReader.read(reader));
-                    }
-                    reader.endArray();
-                    break;
-                case TAGS:
-                    reader.beginArray();
-                    while (reader.hasNext()) {
-                        builder.addTags(keyWithStringValueJsonReader.read(reader));
-                    }
-                    reader.endArray();
-                    break;
-                case LOGS:
-                    reader.beginArray();
-                    while (reader.hasNext()) {
-                        builder.addLogs(logJsonReader.read(reader));
-                    }
-                    reader.endArray();
-                    break;
-                default:
-                    reader.skipValue();
-                    break;
-            }
-        }
-        reader.endObject();
-
-        return builder.build();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegment.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegment.java
deleted file mode 100644
index 4ca230b..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegment.java
+++ /dev/null
@@ -1,45 +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.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import org.apache.skywalking.apm.network.language.agent.*;
-
-/**
- * @author peng-yongsheng
- */
-public class TraceSegment {
-
-    private UpstreamSegment.Builder builder;
-
-    public TraceSegment() {
-        builder = UpstreamSegment.newBuilder();
-    }
-
-    public void addGlobalTraceId(UniqueId.Builder globalTraceId) {
-        builder.addGlobalTraceIds(globalTraceId);
-    }
-
-    public void setTraceSegmentBuilder(TraceSegmentObject.Builder traceSegmentBuilder) {
-        builder.setSegment(traceSegmentBuilder.build().toByteString());
-    }
-
-    public UpstreamSegment getUpstreamSegment() {
-        return builder.build();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegmentJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegmentJsonReader.java
deleted file mode 100644
index 26e2358..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/TraceSegmentJsonReader.java
+++ /dev/null
@@ -1,64 +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.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class TraceSegmentJsonReader implements StreamJsonReader<TraceSegment> {
-
-    private static final Logger logger = LoggerFactory.getLogger(TraceSegmentJsonReader.class);
-
-    private UniqueIdJsonReader uniqueIdJsonReader = new UniqueIdJsonReader();
-    private SegmentJsonReader segmentJsonReader = new SegmentJsonReader();
-
-    private static final String GLOBAL_TRACE_IDS = "gt";
-    private static final String SEGMENT = "sg";
-
-    @Override public TraceSegment read(JsonReader reader) throws IOException {
-        TraceSegment traceSegment = new TraceSegment();
-
-        reader.beginObject();
-        while (reader.hasNext()) {
-            switch (reader.nextName()) {
-                case GLOBAL_TRACE_IDS:
-                    reader.beginArray();
-                    while (reader.hasNext()) {
-                        traceSegment.addGlobalTraceId(uniqueIdJsonReader.read(reader));
-                    }
-                    reader.endArray();
-
-                    break;
-                case SEGMENT:
-                    traceSegment.setTraceSegmentBuilder(segmentJsonReader.read(reader));
-                    break;
-                default:
-                    reader.skipValue();
-                    break;
-            }
-        }
-        reader.endObject();
-
-        return traceSegment;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/UniqueIdJsonReader.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/UniqueIdJsonReader.java
deleted file mode 100644
index 43465eb..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/handler/v5/rest/reader/UniqueIdJsonReader.java
+++ /dev/null
@@ -1,40 +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.oap.server.receiver.trace.provider.handler.v5.rest.reader;
-
-import com.google.gson.stream.JsonReader;
-import java.io.IOException;
-import org.apache.skywalking.apm.network.language.agent.UniqueId;
-
-/**
- * @author peng-yongsheng
- */
-public class UniqueIdJsonReader implements StreamJsonReader<UniqueId.Builder> {
-
-    @Override public UniqueId.Builder read(JsonReader reader) throws IOException {
-        UniqueId.Builder builder = UniqueId.newBuilder();
-
-        reader.beginArray();
-        while (reader.hasNext()) {
-            builder.addIdParts(reader.nextLong());
-        }
-        reader.endArray();
-        return builder;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParse.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParse.java
deleted file mode 100644
index 1b527bc..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParse.java
+++ /dev/null
@@ -1,284 +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.oap.server.receiver.trace.provider.parser;
-
-import com.google.protobuf.InvalidProtocolBufferException;
-import java.util.*;
-import lombok.Setter;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.oap.server.library.buffer.*;
-import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
-import org.apache.skywalking.oap.server.receiver.trace.provider.TraceServiceModuleConfig;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.*;
-import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
-import org.apache.skywalking.oap.server.telemetry.api.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-public class SegmentParse {
-
-    private static final Logger logger = LoggerFactory.getLogger(SegmentParse.class);
-
-    private final ModuleManager moduleManager;
-    private final List<SpanListener> spanListeners;
-    private final SegmentParserListenerManager listenerManager;
-    private final SegmentCoreInfo segmentCoreInfo;
-    private final TraceServiceModuleConfig config;
-    @Setter private SegmentStandardizationWorker standardizationWorker;
-    private volatile static CounterMetrics TRACE_BUFFER_FILE_RETRY;
-    private volatile static CounterMetrics TRACE_BUFFER_FILE_OUT;
-    private volatile static CounterMetrics TRACE_PARSE_ERROR;
-
-    private SegmentParse(ModuleManager moduleManager, SegmentParserListenerManager listenerManager,
-        TraceServiceModuleConfig config) {
-        this.moduleManager = moduleManager;
-        this.listenerManager = listenerManager;
-        this.spanListeners = new LinkedList<>();
-        this.segmentCoreInfo = new SegmentCoreInfo();
-        this.segmentCoreInfo.setStartTime(Long.MAX_VALUE);
-        this.segmentCoreInfo.setEndTime(Long.MIN_VALUE);
-        this.segmentCoreInfo.setV2(false);
-        this.config = config;
-
-        MetricsCreator metricsCreator = moduleManager.find(TelemetryModule.NAME).provider().getService(MetricsCreator.class);
-        TRACE_BUFFER_FILE_RETRY = metricsCreator.createCounter("v5_trace_buffer_file_retry", "The number of retry trace segment from the buffer file, but haven't registered successfully.",
-            MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE);
-        TRACE_BUFFER_FILE_OUT = metricsCreator.createCounter("v5_trace_buffer_file_out", "The number of trace segment out of the buffer file",
-            MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE);
-        TRACE_PARSE_ERROR = metricsCreator.createCounter("v5_trace_parse_error", "The number of trace segment out of the buffer file",
-            MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE);
-    }
-
-    public boolean parse(BufferData<UpstreamSegment> bufferData, Source source) {
-        createSpanListeners();
-
-        try {
-            UpstreamSegment upstreamSegment = bufferData.getMessageType();
-            List<UniqueId> traceIds = upstreamSegment.getGlobalTraceIdsList();
-
-            if (bufferData.getV1Segment() == null) {
-                bufferData.setV1Segment(parseBinarySegment(upstreamSegment));
-            }
-            TraceSegmentObject segmentObject = bufferData.getV1Segment();
-
-            SegmentDecorator segmentDecorator = new SegmentDecorator(segmentObject);
-
-            if (!preBuild(traceIds, segmentDecorator)) {
-                if (logger.isDebugEnabled()) {
-                    logger.debug("This segment id exchange not success, write to buffer file, id: {}", segmentCoreInfo.getSegmentId());
-                }
-
-                if (source.equals(Source.Agent)) {
-                    writeToBufferFile(segmentCoreInfo.getSegmentId(), upstreamSegment);
-                } else {
-                    // from SegmentSource.Buffer
-                    TRACE_BUFFER_FILE_RETRY.inc();
-                }
-                return false;
-            } else {
-                if (logger.isDebugEnabled()) {
-                    logger.debug("This segment id exchange success, id: {}", segmentCoreInfo.getSegmentId());
-                }
-                TRACE_BUFFER_FILE_OUT.inc();
-                notifyListenerToBuild();
-                return true;
-            }
-        } catch (Throwable e) {
-            TRACE_PARSE_ERROR.inc();
-            logger.error(e.getMessage(), e);
-            return true;
-        }
-    }
-
-    private TraceSegmentObject parseBinarySegment(UpstreamSegment segment) throws InvalidProtocolBufferException {
-        return TraceSegmentObject.parseFrom(segment.getSegment());
-    }
-
-    private boolean preBuild(List<UniqueId> traceIds, SegmentDecorator segmentDecorator) {
-        StringBuilder segmentIdBuilder = new StringBuilder();
-
-        for (int i = 0; i < segmentDecorator.getTraceSegmentId().getIdPartsList().size(); i++) {
-            if (i == 0) {
-                segmentIdBuilder.append(segmentDecorator.getTraceSegmentId().getIdPartsList().get(i));
-            } else {
-                segmentIdBuilder.append(".").append(segmentDecorator.getTraceSegmentId().getIdPartsList().get(i));
-            }
-        }
-
-        for (UniqueId uniqueId : traceIds) {
-            notifyGlobalsListener(uniqueId);
-        }
-
-        segmentCoreInfo.setSegmentId(segmentIdBuilder.toString());
-        segmentCoreInfo.setServiceId(segmentDecorator.getServiceId());
-        segmentCoreInfo.setServiceInstanceId(segmentDecorator.getServiceInstanceId());
-        segmentCoreInfo.setDataBinary(segmentDecorator.toByteArray());
-        segmentCoreInfo.setV2(false);
-
-        boolean exchanged = true;
-
-        for (int i = 0; i < segmentDecorator.getSpansCount(); i++) {
-            SpanDecorator spanDecorator = segmentDecorator.getSpans(i);
-
-            if (!SpanExchanger.getInstance(moduleManager).exchange(spanDecorator, segmentCoreInfo.getServiceId())) {
-                exchanged = false;
-            } else {
-                for (int j = 0; j < spanDecorator.getRefsCount(); j++) {
-                    ReferenceDecorator referenceDecorator = spanDecorator.getRefs(j);
-                    if (!ReferenceIdExchanger.getInstance(moduleManager).exchange(referenceDecorator, segmentCoreInfo.getServiceId())) {
-                        exchanged = false;
-                    }
-                }
-            }
-
-            if (segmentCoreInfo.getStartTime() > spanDecorator.getStartTime()) {
-                segmentCoreInfo.setStartTime(spanDecorator.getStartTime());
-            }
-            if (segmentCoreInfo.getEndTime() < spanDecorator.getEndTime()) {
-                segmentCoreInfo.setEndTime(spanDecorator.getEndTime());
-            }
-            segmentCoreInfo.setError(spanDecorator.getIsError() || segmentCoreInfo.isError());
-        }
-
-        if (exchanged) {
-            long minuteTimeBucket = TimeBucket.getMinuteTimeBucket(segmentCoreInfo.getStartTime());
-            segmentCoreInfo.setMinuteTimeBucket(minuteTimeBucket);
-
-            for (int i = 0; i < segmentDecorator.getSpansCount(); i++) {
-                SpanDecorator spanDecorator = segmentDecorator.getSpans(i);
-
-                if (spanDecorator.getSpanId() == 0) {
-                    notifyFirstListener(spanDecorator);
-                }
-
-                if (SpanType.Exit.equals(spanDecorator.getSpanType())) {
-                    notifyExitListener(spanDecorator);
-                } else if (SpanType.Entry.equals(spanDecorator.getSpanType())) {
-                    notifyEntryListener(spanDecorator);
-                } else if (SpanType.Local.equals(spanDecorator.getSpanType())) {
-                    notifyLocalListener(spanDecorator);
-                } else {
-                    logger.error("span type value was unexpected, span type name: {}", spanDecorator.getSpanType().name());
-                }
-            }
-        }
-
-        return exchanged;
-    }
-
-    private void writeToBufferFile(String id, UpstreamSegment upstreamSegment) {
-        if (logger.isDebugEnabled()) {
-            logger.debug("push to segment buffer write worker, id: {}", id);
-        }
-
-        SegmentStandardization standardization = new SegmentStandardization(id);
-        standardization.setUpstreamSegment(upstreamSegment);
-
-        standardizationWorker.in(standardization);
-    }
-
-    private void notifyListenerToBuild() {
-        spanListeners.forEach(SpanListener::build);
-    }
-
-    private void notifyExitListener(SpanDecorator spanDecorator) {
-        spanListeners.forEach(listener -> {
-            if (listener.containsPoint(SpanListener.Point.Exit)) {
-                ((ExitSpanListener)listener).parseExit(spanDecorator, segmentCoreInfo);
-            }
-        });
-    }
-
-    private void notifyEntryListener(SpanDecorator spanDecorator) {
-        spanListeners.forEach(listener -> {
-            if (listener.containsPoint(SpanListener.Point.Entry)) {
-                ((EntrySpanListener)listener).parseEntry(spanDecorator, segmentCoreInfo);
-            }
-        });
-    }
-
-    private void notifyLocalListener(SpanDecorator spanDecorator) {
-        spanListeners.forEach(listener -> {
-            if (listener.containsPoint(SpanListener.Point.Local)) {
-                ((LocalSpanListener)listener).parseLocal(spanDecorator, segmentCoreInfo);
-            }
-        });
-    }
-
-    private void notifyFirstListener(SpanDecorator spanDecorator) {
-        spanListeners.forEach(listener -> {
-            if (listener.containsPoint(SpanListener.Point.First)) {
-                ((FirstSpanListener)listener).parseFirst(spanDecorator, segmentCoreInfo);
-            }
-        });
-    }
-
-    private void notifyGlobalsListener(UniqueId uniqueId) {
-        spanListeners.forEach(listener -> {
-            if (listener.containsPoint(SpanListener.Point.TraceIds)) {
-                ((GlobalTraceIdsListener)listener).parseGlobalTraceId(uniqueId, segmentCoreInfo);
-            }
-        });
-    }
-
-    private void createSpanListeners() {
-        listenerManager.getSpanListenerFactories().forEach(spanListenerFactory -> spanListeners.add(spanListenerFactory.create(moduleManager, config)));
-    }
-
-    public enum Source {
-        Agent, Buffer
-    }
-
-    public static class Producer implements DataStreamReader.CallBack<UpstreamSegment> {
-
-        @Setter private SegmentStandardizationWorker standardizationWorker;
-        private final ModuleManager moduleManager;
-        private final SegmentParserListenerManager listenerManager;
-        private final TraceServiceModuleConfig config;
-
-        public Producer(ModuleManager moduleManager, SegmentParserListenerManager listenerManager,
-            TraceServiceModuleConfig config) {
-            this.moduleManager = moduleManager;
-            this.listenerManager = listenerManager;
-            this.config = config;
-        }
-
-        public void send(UpstreamSegment segment, Source source) {
-            SegmentParse segmentParse = new SegmentParse(moduleManager, listenerManager, config);
-            segmentParse.setStandardizationWorker(standardizationWorker);
-            segmentParse.parse(new BufferData<>(segment), source);
-        }
-
-        @Override public boolean call(BufferData<UpstreamSegment> bufferData) {
-            SegmentParse segmentParse = new SegmentParse(moduleManager, listenerManager, config);
-            segmentParse.setStandardizationWorker(standardizationWorker);
-            boolean parseResult = segmentParse.parse(bufferData, Source.Buffer);
-            if (parseResult) {
-                TRACE_BUFFER_FILE_OUT.inc();
-            }
-
-            return parseResult;
-        }
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java
index 583301b..097efaa 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParseV2.java
@@ -19,22 +19,42 @@
 package org.apache.skywalking.oap.server.receiver.trace.provider.parser;
 
 import com.google.protobuf.InvalidProtocolBufferException;
-import java.util.*;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.stream.Collectors;
 import lombok.Setter;
-import org.apache.skywalking.apm.network.language.agent.*;
+import org.apache.skywalking.apm.network.ProtocolVersion;
+import org.apache.skywalking.apm.network.language.agent.SpanType;
+import org.apache.skywalking.apm.network.language.agent.UniqueId;
+import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
 import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
 import org.apache.skywalking.oap.server.core.CoreModule;
+import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
 import org.apache.skywalking.oap.server.core.cache.ServiceInstanceInventoryCache;
-import org.apache.skywalking.oap.server.library.buffer.*;
+import org.apache.skywalking.oap.server.library.buffer.BufferData;
+import org.apache.skywalking.oap.server.library.buffer.DataStreamReader;
 import org.apache.skywalking.oap.server.library.module.ModuleManager;
-import org.apache.skywalking.oap.server.core.analysis.TimeBucket;
 import org.apache.skywalking.oap.server.receiver.trace.provider.TraceServiceModuleConfig;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.*;
-import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.*;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.ReferenceDecorator;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.SegmentCoreInfo;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.SegmentDecorator;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator.SpanDecorator;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.EntrySpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.ExitSpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.FirstSpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.GlobalTraceIdsListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.LocalSpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.SpanListener;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.ReferenceIdExchanger;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.SegmentStandardization;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.SegmentStandardizationWorker;
+import org.apache.skywalking.oap.server.receiver.trace.provider.parser.standardization.SpanExchanger;
 import org.apache.skywalking.oap.server.telemetry.TelemetryModule;
-import org.apache.skywalking.oap.server.telemetry.api.*;
-import org.slf4j.*;
+import org.apache.skywalking.oap.server.telemetry.api.CounterMetrics;
+import org.apache.skywalking.oap.server.telemetry.api.MetricsCreator;
+import org.apache.skywalking.oap.server.telemetry.api.MetricsTag;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * SegmentParseV2 is a replication of SegmentParse, but be compatible with v2 trace protocol.
@@ -63,7 +83,7 @@ public class SegmentParseV2 {
         this.segmentCoreInfo = new SegmentCoreInfo();
         this.segmentCoreInfo.setStartTime(Long.MAX_VALUE);
         this.segmentCoreInfo.setEndTime(Long.MIN_VALUE);
-        this.segmentCoreInfo.setV2(true);
+        this.segmentCoreInfo.setVersion(ProtocolVersion.V2);
         this.config = config;
 
         if (TRACE_BUFFER_FILE_RETRY == null) {
@@ -133,25 +153,16 @@ public class SegmentParseV2 {
     }
 
     private boolean preBuild(List<UniqueId> traceIds, SegmentDecorator segmentDecorator) {
-        StringBuilder segmentIdBuilder = new StringBuilder();
-
-        for (int i = 0; i < segmentDecorator.getTraceSegmentId().getIdPartsList().size(); i++) {
-            if (i == 0) {
-                segmentIdBuilder.append(segmentDecorator.getTraceSegmentId().getIdPartsList().get(i));
-            } else {
-                segmentIdBuilder.append(".").append(segmentDecorator.getTraceSegmentId().getIdPartsList().get(i));
-            }
-        }
-
         for (UniqueId uniqueId : traceIds) {
             notifyGlobalsListener(uniqueId);
         }
 
-        segmentCoreInfo.setSegmentId(segmentIdBuilder.toString());
+        final String segmentId = segmentDecorator.getTraceSegmentId().getIdPartsList().stream().map(String::valueOf).collect(Collectors.joining("."));
+        segmentCoreInfo.setSegmentId(segmentId);
         segmentCoreInfo.setServiceId(segmentDecorator.getServiceId());
         segmentCoreInfo.setServiceInstanceId(segmentDecorator.getServiceInstanceId());
         segmentCoreInfo.setDataBinary(segmentDecorator.toByteArray());
-        segmentCoreInfo.setV2(true);
+        segmentCoreInfo.setVersion(ProtocolVersion.V2);
 
         boolean exchanged = true;
 
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserListenerManager.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserListenerManager.java
index 36a80a4..24dc6d6 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserListenerManager.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/SegmentParserListenerManager.java
@@ -27,7 +27,7 @@ import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.
  */
 public class SegmentParserListenerManager implements ISegmentParserListenerManager {
 
-    private List<SpanListenerFactory> spanListenerFactories;
+    private final List<SpanListenerFactory> spanListenerFactories;
 
     public SegmentParserListenerManager() {
         this.spanListenerFactories = new LinkedList<>();
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/ReferenceDecorator.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/ReferenceDecorator.java
index 591a570..81ea5d4 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/ReferenceDecorator.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/ReferenceDecorator.java
@@ -18,9 +18,6 @@
 
 package org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator;
 
-import org.apache.skywalking.apm.network.language.agent.RefType;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentReference;
-import org.apache.skywalking.apm.network.language.agent.UniqueId;
 import org.apache.skywalking.apm.network.language.agent.v2.SegmentReference;
 
 /**
@@ -29,60 +26,26 @@ import org.apache.skywalking.apm.network.language.agent.v2.SegmentReference;
 public class ReferenceDecorator implements StandardBuilder {
 
     private boolean isOrigin = true;
-    private StandardBuilder standardBuilder;
-    private TraceSegmentReference referenceObject;
-    private TraceSegmentReference.Builder referenceBuilder;
-    private final boolean isV2;
+    private final StandardBuilder standardBuilder;
     private SegmentReference referenceObjectV2;
     private SegmentReference.Builder referenceBuilderV2;
 
-    public ReferenceDecorator(TraceSegmentReference referenceObject, StandardBuilder standardBuilder) {
-        this.referenceObject = referenceObject;
-        this.standardBuilder = standardBuilder;
-        isV2 = false;
-    }
-
-    public ReferenceDecorator(TraceSegmentReference.Builder referenceBuilder, StandardBuilder standardBuilder) {
-        this.referenceBuilder = referenceBuilder;
-        this.standardBuilder = standardBuilder;
-        this.isOrigin = false;
-        isV2 = false;
-    }
-
     public ReferenceDecorator(SegmentReference referenceObject, StandardBuilder standardBuilder) {
         this.referenceObjectV2 = referenceObject;
         this.standardBuilder = standardBuilder;
-        isV2 = true;
     }
 
     public ReferenceDecorator(SegmentReference.Builder referenceBuilder, StandardBuilder standardBuilder) {
         this.referenceBuilderV2 = referenceBuilder;
         this.standardBuilder = standardBuilder;
         this.isOrigin = false;
-        isV2 = true;
-    }
-
-    public RefType getRefType() {
-        if (isOrigin) {
-            return isV2 ? referenceObjectV2.getRefType() : referenceObject.getRefType();
-        } else {
-            return isV2 ? referenceBuilderV2.getRefType() : referenceBuilder.getRefType();
-        }
-    }
-
-    public int getRefTypeValue() {
-        if (isOrigin) {
-            return isV2 ? referenceObjectV2.getRefTypeValue() : referenceObject.getRefTypeValue();
-        } else {
-            return isV2 ? referenceBuilderV2.getRefTypeValue() : referenceBuilder.getRefTypeValue();
-        }
     }
 
     public int getEntryEndpointId() {
         if (isOrigin) {
-            return isV2 ? referenceObjectV2.getEntryEndpointId() : referenceObject.getEntryServiceId();
+            return referenceObjectV2.getEntryEndpointId();
         } else {
-            return isV2 ? referenceBuilderV2.getEntryEndpointId() : referenceBuilder.getEntryServiceId();
+            return referenceBuilderV2.getEntryEndpointId();
         }
     }
 
@@ -90,18 +53,14 @@ public class ReferenceDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            referenceBuilderV2.setEntryEndpointId(value);
-        } else {
-            referenceBuilder.setEntryServiceId(value);
-        }
+        referenceBuilderV2.setEntryEndpointId(value);
     }
 
     public String getEntryEndpointName() {
         if (isOrigin) {
-            return isV2 ? referenceObjectV2.getEntryEndpoint() : referenceObject.getEntryServiceName();
+            return referenceObjectV2.getEntryEndpoint();
         } else {
-            return isV2 ? referenceBuilderV2.getEntryEndpoint() : referenceBuilder.getEntryServiceName();
+            return referenceBuilderV2.getEntryEndpoint();
         }
     }
 
@@ -109,34 +68,30 @@ public class ReferenceDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            referenceBuilderV2.setEntryEndpoint(value);
-        } else {
-            referenceBuilder.setEntryServiceName(value);
-        }
+        referenceBuilderV2.setEntryEndpoint(value);
     }
 
     public int getEntryServiceInstanceId() {
         if (isOrigin) {
-            return isV2 ? referenceObjectV2.getEntryServiceInstanceId() : referenceObject.getEntryApplicationInstanceId();
+            return referenceObjectV2.getEntryServiceInstanceId();
         } else {
-            return isV2 ? referenceBuilderV2.getEntryServiceInstanceId() : referenceBuilder.getEntryApplicationInstanceId();
+            return referenceBuilderV2.getEntryServiceInstanceId();
         }
     }
 
     public int getParentServiceInstanceId() {
         if (isOrigin) {
-            return isV2 ? referenceObjectV2.getParentServiceInstanceId() : referenceObject.getParentApplicationInstanceId();
+            return referenceObjectV2.getParentServiceInstanceId();
         } else {
-            return isV2 ? referenceBuilderV2.getParentServiceInstanceId() : referenceBuilder.getParentApplicationInstanceId();
+            return referenceBuilderV2.getParentServiceInstanceId();
         }
     }
 
     public int getParentEndpointId() {
         if (isOrigin) {
-            return isV2 ? referenceObjectV2.getParentEndpointId() : referenceObject.getParentServiceId();
+            return referenceObjectV2.getParentEndpointId();
         } else {
-            return isV2 ? referenceBuilderV2.getParentEndpointId() : referenceBuilder.getParentServiceId();
+            return referenceBuilderV2.getParentEndpointId();
         }
     }
 
@@ -144,26 +99,14 @@ public class ReferenceDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            referenceBuilderV2.setParentEndpointId(value);
-        } else {
-            referenceBuilder.setParentServiceId(value);
-        }
-    }
-
-    public int getParentSpanId() {
-        if (isOrigin) {
-            return isV2 ? referenceObjectV2.getParentSpanId() : referenceObject.getParentSpanId();
-        } else {
-            return isV2 ? referenceBuilderV2.getParentSpanId() : referenceBuilder.getParentSpanId();
-        }
+        referenceBuilderV2.setParentEndpointId(value);
     }
 
     public String getParentEndpointName() {
         if (isOrigin) {
-            return isV2 ? referenceObjectV2.getParentEndpoint() : referenceObject.getParentServiceName();
+            return referenceObjectV2.getParentEndpoint();
         } else {
-            return isV2 ? referenceBuilderV2.getParentEndpoint() : referenceBuilder.getParentServiceName();
+            return referenceBuilderV2.getParentEndpoint();
         }
     }
 
@@ -171,26 +114,14 @@ public class ReferenceDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            referenceBuilderV2.setParentEndpoint(value);
-        } else {
-            referenceBuilder.setParentServiceName(value);
-        }
-    }
-
-    public UniqueId getParentTraceSegmentId() {
-        if (isOrigin) {
-            return isV2 ? referenceObjectV2.getParentTraceSegmentId() : referenceObject.getParentTraceSegmentId();
-        } else {
-            return isV2 ? referenceBuilderV2.getParentTraceSegmentId() : referenceBuilder.getParentTraceSegmentId();
-        }
+        referenceBuilderV2.setParentEndpoint(value);
     }
 
     public int getNetworkAddressId() {
         if (isOrigin) {
-            return isV2 ? referenceObjectV2.getNetworkAddressId() : referenceObject.getNetworkAddressId();
+            return referenceObjectV2.getNetworkAddressId();
         } else {
-            return isV2 ? referenceBuilderV2.getNetworkAddressId() : referenceBuilder.getNetworkAddressId();
+            return referenceBuilderV2.getNetworkAddressId();
         }
     }
 
@@ -198,18 +129,14 @@ public class ReferenceDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            referenceBuilderV2.setNetworkAddressId(value);
-        } else {
-            referenceBuilder.setNetworkAddressId(value);
-        }
+        referenceBuilderV2.setNetworkAddressId(value);
     }
 
     public String getNetworkAddress() {
         if (isOrigin) {
-            return isV2 ? referenceObjectV2.getNetworkAddress() : referenceObject.getNetworkAddress();
+            return referenceObjectV2.getNetworkAddress();
         } else {
-            return isV2 ? referenceBuilderV2.getNetworkAddress() : referenceBuilder.getNetworkAddress();
+            return referenceBuilderV2.getNetworkAddress();
         }
     }
 
@@ -217,21 +144,13 @@ public class ReferenceDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            referenceBuilderV2.setNetworkAddress(value);
-        } else {
-            referenceBuilder.setNetworkAddress(value);
-        }
+        referenceBuilderV2.setNetworkAddress(value);
     }
 
     @Override public void toBuilder() {
         if (this.isOrigin) {
             this.isOrigin = false;
-            if (isV2) {
-                referenceBuilderV2 = referenceObjectV2.toBuilder();
-            } else {
-                referenceBuilder = referenceObject.toBuilder();
-            }
+            referenceBuilderV2 = referenceObjectV2.toBuilder();
             standardBuilder.toBuilder();
         }
     }
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentCoreInfo.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentCoreInfo.java
index d78bea8..fcb960f 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentCoreInfo.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentCoreInfo.java
@@ -19,6 +19,7 @@
 package org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator;
 
 import lombok.*;
+import org.apache.skywalking.apm.network.ProtocolVersion;
 
 /**
  * @author peng-yongsheng
@@ -34,5 +35,5 @@ public class SegmentCoreInfo {
     private boolean isError;
     private long minuteTimeBucket;
     private byte[] dataBinary;
-    private boolean isV2;
+    private ProtocolVersion version;
 }
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentDecorator.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentDecorator.java
index 061d5bd..7cd7ea4 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentDecorator.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SegmentDecorator.java
@@ -18,7 +18,6 @@
 
 package org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator;
 
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentObject;
 import org.apache.skywalking.apm.network.language.agent.UniqueId;
 import org.apache.skywalking.apm.network.language.agent.v2.SegmentObject;
 
@@ -29,78 +28,50 @@ import static java.util.Objects.isNull;
  */
 public class SegmentDecorator implements StandardBuilder {
     private boolean isOrigin = true;
-    private final TraceSegmentObject segmentObject;
-    private TraceSegmentObject.Builder segmentBuilder;
-    private final boolean isV2;
     private final SegmentObject segmentObjectV2;
     private SegmentObject.Builder segmentBuilderV2;
     private final SpanDecorator[] spanDecorators;
 
-    public SegmentDecorator(TraceSegmentObject segmentObject) {
-        this.segmentObject = segmentObject;
-        this.segmentObjectV2 = null;
-        this.spanDecorators = new SpanDecorator[segmentObject.getSpansCount()];
-        isV2 = false;
-    }
-
     public SegmentDecorator(SegmentObject segmentObjectV2) {
         this.segmentObjectV2 = segmentObjectV2;
-        this.segmentObject = null;
         this.spanDecorators = new SpanDecorator[segmentObjectV2.getSpansCount()];
-        isV2 = true;
     }
 
     public int getServiceId() {
-        return isV2 ? segmentObjectV2.getServiceId() : segmentObject.getApplicationId();
+        return segmentObjectV2.getServiceId();
     }
 
     public int getServiceInstanceId() {
-        return isV2 ? segmentObjectV2.getServiceInstanceId() : segmentObject.getApplicationInstanceId();
+        return segmentObjectV2.getServiceInstanceId();
     }
 
     public UniqueId getTraceSegmentId() {
-        return isV2 ? segmentObjectV2.getTraceSegmentId() : segmentObject.getTraceSegmentId();
+        return segmentObjectV2.getTraceSegmentId();
     }
 
     public int getSpansCount() {
-        return isV2 ? segmentObjectV2.getSpansCount() : segmentObject.getSpansCount();
+        return segmentObjectV2.getSpansCount();
     }
 
     public SpanDecorator getSpans(int index) {
         if (isNull(spanDecorators[index])) {
             if (isOrigin) {
-                if (isV2) {
-                    spanDecorators[index] = new SpanDecorator(segmentObjectV2.getSpans(index), this);
-                } else {
-                    spanDecorators[index] = new SpanDecorator(segmentObject.getSpans(index), this);
-                }
+                spanDecorators[index] = new SpanDecorator(segmentObjectV2.getSpans(index), this);
             } else {
-                if (isV2) {
-                    spanDecorators[index] = new SpanDecorator(segmentBuilderV2.getSpansBuilder(index), this);
-                } else {
-                    spanDecorators[index] = new SpanDecorator(segmentBuilder.getSpansBuilder(index), this);
-                }
+                spanDecorators[index] = new SpanDecorator(segmentBuilderV2.getSpansBuilder(index), this);
             }
         }
         return spanDecorators[index];
     }
 
     public byte[] toByteArray() {
-        if (isOrigin) {
-            return isV2 ? segmentObjectV2.toByteArray() : segmentObject.toByteArray();
-        } else {
-            return segmentBuilder.build().toByteArray();
-        }
+        return segmentObjectV2.toByteArray();
     }
 
     @Override public void toBuilder() {
         if (isOrigin) {
             this.isOrigin = false;
-            if (isV2) {
-                this.segmentBuilderV2 = segmentObjectV2.toBuilder();
-            } else {
-                this.segmentBuilder = segmentObject.toBuilder();
-            }
+            this.segmentBuilderV2 = segmentObjectV2.toBuilder();
         }
     }
 }
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SpanDecorator.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SpanDecorator.java
index 76fefa6..7c291dd 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SpanDecorator.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/decorator/SpanDecorator.java
@@ -18,9 +18,10 @@
 
 package org.apache.skywalking.oap.server.receiver.trace.provider.parser.decorator;
 
-import java.util.*;
+import java.util.List;
 import org.apache.skywalking.apm.network.common.KeyStringValuePair;
-import org.apache.skywalking.apm.network.language.agent.*;
+import org.apache.skywalking.apm.network.language.agent.SpanLayer;
+import org.apache.skywalking.apm.network.language.agent.SpanType;
 import org.apache.skywalking.apm.network.language.agent.v2.SpanObjectV2;
 
 import static java.util.Objects.isNull;
@@ -29,35 +30,16 @@ import static java.util.Objects.isNull;
  * @author peng-yongsheng
  */
 public class SpanDecorator implements StandardBuilder {
-    private final boolean isV2;
     private boolean isOrigin = true;
-    private StandardBuilder standardBuilder;
-    private SpanObject spanObject;
+    private final StandardBuilder standardBuilder;
     private SpanObjectV2 spanObjectV2;
-    private SpanObject.Builder spanBuilder;
     private SpanObjectV2.Builder spanBuilderV2;
     private final ReferenceDecorator[] referenceDecorators;
 
-    public SpanDecorator(SpanObject spanObject, StandardBuilder standardBuilder) {
-        this.spanObject = spanObject;
-        this.standardBuilder = standardBuilder;
-        this.referenceDecorators = new ReferenceDecorator[spanObject.getRefsCount()];
-        this.isV2 = false;
-    }
-
-    public SpanDecorator(SpanObject.Builder spanBuilder, StandardBuilder standardBuilder) {
-        this.spanBuilder = spanBuilder;
-        this.standardBuilder = standardBuilder;
-        this.isOrigin = false;
-        this.referenceDecorators = new ReferenceDecorator[spanBuilder.getRefsCount()];
-        this.isV2 = false;
-    }
-
     public SpanDecorator(SpanObjectV2 spanObject, StandardBuilder standardBuilder) {
         this.spanObjectV2 = spanObject;
         this.standardBuilder = standardBuilder;
         this.referenceDecorators = new ReferenceDecorator[spanObject.getRefsCount()];
-        this.isV2 = true;
     }
 
     public SpanDecorator(SpanObjectV2.Builder spanBuilder, StandardBuilder standardBuilder) {
@@ -65,78 +47,61 @@ public class SpanDecorator implements StandardBuilder {
         this.standardBuilder = standardBuilder;
         this.isOrigin = false;
         this.referenceDecorators = new ReferenceDecorator[spanBuilder.getRefsCount()];
-        this.isV2 = true;
     }
 
     public int getSpanId() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getSpanId() : spanObject.getSpanId();
+            return spanObjectV2.getSpanId();
         } else {
-            return isV2 ? spanBuilderV2.getSpanId() : spanBuilder.getSpanId();
-        }
-    }
-
-    public int getParentSpanId() {
-        if (isOrigin) {
-            return isV2 ? spanObjectV2.getParentSpanId() : spanObject.getParentSpanId();
-        } else {
-            return isV2 ? spanBuilderV2.getParentSpanId() : spanBuilder.getParentSpanId();
+            return spanBuilderV2.getSpanId();
         }
     }
 
     public SpanType getSpanType() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getSpanType() : spanObject.getSpanType();
+            return spanObjectV2.getSpanType();
         } else {
-            return isV2 ? spanBuilderV2.getSpanType() : spanBuilder.getSpanType();
-        }
-    }
-
-    public int getSpanTypeValue() {
-        if (isOrigin) {
-            return isV2 ? spanObjectV2.getSpanTypeValue() : spanObject.getSpanTypeValue();
-        } else {
-            return isV2 ? spanBuilderV2.getSpanTypeValue() : spanBuilder.getSpanTypeValue();
+            return spanBuilderV2.getSpanType();
         }
     }
 
     public SpanLayer getSpanLayer() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getSpanLayer() : spanObject.getSpanLayer();
+            return spanObjectV2.getSpanLayer();
         } else {
-            return isV2 ? spanBuilderV2.getSpanLayer() : spanBuilder.getSpanLayer();
+            return spanBuilderV2.getSpanLayer();
         }
     }
 
     public int getSpanLayerValue() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getSpanLayerValue() : spanObject.getSpanLayerValue();
+            return spanObjectV2.getSpanLayerValue();
         } else {
-            return isV2 ? spanBuilderV2.getSpanLayerValue() : spanBuilder.getSpanLayerValue();
+            return spanBuilderV2.getSpanLayerValue();
         }
     }
 
     public long getStartTime() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getStartTime() : spanObject.getStartTime();
+            return spanObjectV2.getStartTime();
         } else {
-            return isV2 ? spanBuilderV2.getStartTime() : spanBuilder.getStartTime();
+            return spanBuilderV2.getStartTime();
         }
     }
 
     public long getEndTime() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getEndTime() : spanObject.getEndTime();
+            return spanObjectV2.getEndTime();
         } else {
-            return isV2 ? spanBuilderV2.getEndTime() : spanBuilder.getEndTime();
+            return spanBuilderV2.getEndTime();
         }
     }
 
     public int getComponentId() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getComponentId() : spanObject.getComponentId();
+            return spanObjectV2.getComponentId();
         } else {
-            return isV2 ? spanBuilderV2.getComponentId() : spanBuilder.getComponentId();
+            return spanBuilderV2.getComponentId();
         }
     }
 
@@ -144,18 +109,14 @@ public class SpanDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            spanBuilderV2.setComponentId(value);
-        } else {
-            spanBuilder.setComponentId(value);
-        }
+        spanBuilderV2.setComponentId(value);
     }
 
     public String getComponent() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getComponent() : spanObject.getComponent();
+            return spanObjectV2.getComponent();
         } else {
-            return isV2 ? spanBuilderV2.getComponent() : spanBuilder.getComponent();
+            return spanBuilderV2.getComponent();
         }
     }
 
@@ -163,18 +124,14 @@ public class SpanDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            spanBuilderV2.setComponent(value);
-        } else {
-            spanBuilder.setComponent(value);
-        }
+        spanBuilderV2.setComponent(value);
     }
 
     public int getPeerId() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getPeerId() : spanObject.getPeerId();
+            return spanObjectV2.getPeerId();
         } else {
-            return isV2 ? spanBuilderV2.getPeerId() : spanBuilder.getPeerId();
+            return spanBuilderV2.getPeerId();
         }
     }
 
@@ -182,18 +139,14 @@ public class SpanDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            spanBuilderV2.setPeerId(peerId);
-        } else {
-            spanBuilder.setPeerId(peerId);
-        }
+        spanBuilderV2.setPeerId(peerId);
     }
 
     public String getPeer() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getPeer() : spanObject.getPeer();
+            return spanObjectV2.getPeer();
         } else {
-            return isV2 ? spanBuilderV2.getPeer() : spanBuilder.getPeer();
+            return spanBuilderV2.getPeer();
         }
     }
 
@@ -201,18 +154,14 @@ public class SpanDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            spanBuilderV2.setPeer(peer);
-        } else {
-            spanBuilder.setPeer(peer);
-        }
+        spanBuilderV2.setPeer(peer);
     }
 
     public int getOperationNameId() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getOperationNameId() : spanObject.getOperationNameId();
+            return spanObjectV2.getOperationNameId();
         } else {
-            return isV2 ? spanBuilderV2.getOperationNameId() : spanBuilder.getOperationNameId();
+            return spanBuilderV2.getOperationNameId();
         }
     }
 
@@ -220,18 +169,14 @@ public class SpanDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            spanBuilderV2.setOperationNameId(value);
-        } else {
-            spanBuilder.setOperationNameId(value);
-        }
+        spanBuilderV2.setOperationNameId(value);
     }
 
     public String getOperationName() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getOperationName() : spanObject.getOperationName();
+            return spanObjectV2.getOperationName();
         } else {
-            return isV2 ? spanBuilderV2.getOperationName() : spanBuilder.getOperationName();
+            return spanBuilderV2.getOperationName();
         }
     }
 
@@ -239,43 +184,31 @@ public class SpanDecorator implements StandardBuilder {
         if (isOrigin) {
             toBuilder();
         }
-        if (isV2) {
-            spanBuilderV2.setOperationName(value);
-        } else {
-            spanBuilder.setOperationName(value);
-        }
+        spanBuilderV2.setOperationName(value);
     }
 
     public boolean getIsError() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getIsError() : spanObject.getIsError();
+            return spanObjectV2.getIsError();
         } else {
-            return isV2 ? spanBuilderV2.getIsError() : spanBuilder.getIsError();
+            return spanBuilderV2.getIsError();
         }
     }
 
     public int getRefsCount() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getRefsCount() : spanObject.getRefsCount();
+            return spanObjectV2.getRefsCount();
         } else {
-            return isV2 ? spanBuilderV2.getRefsCount() : spanBuilder.getRefsCount();
+            return spanBuilderV2.getRefsCount();
         }
     }
 
     public ReferenceDecorator getRefs(int index) {
         if (isNull(referenceDecorators[index])) {
             if (isOrigin) {
-                if (isV2) {
-                    referenceDecorators[index] = new ReferenceDecorator(spanObjectV2.getRefs(index), this);
-                } else {
-                    referenceDecorators[index] = new ReferenceDecorator(spanObject.getRefs(index), this);
-                }
+                referenceDecorators[index] = new ReferenceDecorator(spanObjectV2.getRefs(index), this);
             } else {
-                if (isV2) {
-                    referenceDecorators[index] = new ReferenceDecorator(spanBuilderV2.getRefsBuilder(index), this);
-                } else {
-                    referenceDecorators[index] = new ReferenceDecorator(spanBuilder.getRefsBuilder(index), this);
-                }
+                referenceDecorators[index] = new ReferenceDecorator(spanBuilderV2.getRefsBuilder(index), this);
             }
         }
         return referenceDecorators[index];
@@ -283,33 +216,18 @@ public class SpanDecorator implements StandardBuilder {
 
     public List<KeyStringValuePair> getAllTags() {
         if (isOrigin) {
-            return isV2 ? spanObjectV2.getTagsList() : convert(spanObject.getTagsList());
+            return spanObjectV2.getTagsList();
         } else {
-            return isV2 ? spanBuilderV2.getTagsList() : convert(spanBuilder.getTagsList());
+            return spanBuilderV2.getTagsList();
         }
     }
 
     @Override public void toBuilder() {
         if (this.isOrigin) {
             this.isOrigin = false;
-            if (isV2) {
-                spanBuilderV2 = spanObjectV2.toBuilder();
-            } else {
-                spanBuilder = spanObject.toBuilder();
-            }
+            spanBuilderV2 = spanObjectV2.toBuilder();
             standardBuilder.toBuilder();
         }
     }
 
-    private List<KeyStringValuePair> convert(List<KeyWithStringValue> list) {
-        List<KeyStringValuePair> result = new ArrayList<>();
-        if (list != null) {
-            list.forEach(element -> {
-                result.add(KeyStringValuePair.newBuilder()
-                    .setKey(element.getKey())
-                    .setValue(element.getValue()).build());
-            });
-        }
-        return result;
-    }
 }
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java
index 705c782..8b15c4a 100755
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/endpoint/MultiScopesSpanListener.java
@@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener
 import java.util.ArrayList;
 import java.util.LinkedList;
 import java.util.List;
+import java.util.stream.Collectors;
 import org.apache.skywalking.apm.network.common.KeyStringValuePair;
 import org.apache.skywalking.apm.network.language.agent.SpanLayer;
 import org.apache.skywalking.apm.network.language.agent.UniqueId;
@@ -49,24 +50,16 @@ import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.
 import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.GlobalTraceIdsListener;
 import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.SpanListener;
 import org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.SpanListenerFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import static java.util.Objects.nonNull;
 
 /**
  * Notice, in here, there are following concepts match
  *
- * v5        |   v6
- *
- * 1. Application == Service 2. Server == Service Instance 3. Service == Endpoint
- *
  * @author peng-yongsheng, wusheng
  */
 public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListener, GlobalTraceIdsListener {
 
-    private static final Logger logger = LoggerFactory.getLogger(MultiScopesSpanListener.class);
-
     private final SourceReceiver sourceReceiver;
     private final ServiceInstanceInventoryCache instanceInventoryCache;
     private final ServiceInventoryCache serviceInventoryCache;
@@ -257,7 +250,7 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe
             sourceReceiver.receive(entrySourceBuilder.toServiceRelation());
             sourceReceiver.receive(entrySourceBuilder.toServiceInstanceRelation());
             EndpointRelation endpointRelation = entrySourceBuilder.toEndpointRelation();
-            /**
+            /*
              * Parent endpoint could be none, because in SkyWalking Cross Process Propagation Headers Protocol v2,
              * endpoint in ref could be empty, based on that, endpoint relation maybe can't be established.
              * So, I am making this source as optional.
@@ -291,15 +284,7 @@ public class MultiScopesSpanListener implements EntrySpanListener, ExitSpanListe
 
     @Override public void parseGlobalTraceId(UniqueId uniqueId, SegmentCoreInfo segmentCoreInfo) {
         if (traceId == null) {
-            StringBuilder traceIdBuilder = new StringBuilder();
-            for (int i = 0; i < uniqueId.getIdPartsList().size(); i++) {
-                if (i == 0) {
-                    traceIdBuilder.append(uniqueId.getIdPartsList().get(i));
-                } else {
-                    traceIdBuilder.append(".").append(uniqueId.getIdPartsList().get(i));
-                }
-            }
-            traceId = traceIdBuilder.toString();
+            traceId = uniqueId.getIdPartsList().stream().map(String::valueOf).collect(Collectors.joining("."));
         }
     }
 
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java
index 492b1d6..36f4c9a 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/listener/segment/SegmentSpanListener.java
@@ -18,6 +18,7 @@
 
 package org.apache.skywalking.oap.server.receiver.trace.provider.parser.listener.segment;
 
+import java.util.stream.Collectors;
 import org.apache.skywalking.apm.network.language.agent.UniqueId;
 import org.apache.skywalking.oap.server.core.Const;
 import org.apache.skywalking.oap.server.core.CoreModule;
@@ -81,10 +82,7 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
         segment.setIsError(BooleanUtils.booleanToValue(segmentCoreInfo.isError()));
         segment.setTimeBucket(timeBucket);
         segment.setDataBinary(segmentCoreInfo.getDataBinary());
-        /**
-         * Only consider v1, v2 compatible for now.
-         */
-        segment.setVersion(segmentCoreInfo.isV2() ? 2 : 1);
+        segment.setVersion(segmentCoreInfo.getVersion().number());
 
         firstEndpointId = spanDecorator.getOperationNameId();
         firstEndpointName = spanDecorator.getOperationName();
@@ -107,15 +105,8 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
             return;
         }
 
-        StringBuilder traceIdBuilder = new StringBuilder();
-        for (int i = 0; i < uniqueId.getIdPartsList().size(); i++) {
-            if (i == 0) {
-                traceIdBuilder.append(uniqueId.getIdPartsList().get(i));
-            } else {
-                traceIdBuilder.append(".").append(uniqueId.getIdPartsList().get(i));
-            }
-        }
-        segment.setTraceId(traceIdBuilder.toString());
+        final String traceId = uniqueId.getIdPartsList().stream().map(String::valueOf).collect(Collectors.joining("."));
+        segment.setTraceId(traceId);
     }
 
     @Override public void build() {
@@ -129,13 +120,13 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
 
         if (entryEndpointId == Const.NONE) {
             if (firstEndpointId != Const.NONE) {
-                /**
+                /*
                  * Since 6.6.0, only entry span is treated as an endpoint. Other span's endpoint id == 0.
                  */
                 segment.setEndpointId(firstEndpointId);
                 segment.setEndpointName(serviceNameCacheService.get(firstEndpointId).getName());
             } else {
-                /**
+                /*
                  * Only fill first operation name for the trace list query, as no endpoint id.
                  */
                 segment.setEndpointName(firstEndpointName);
@@ -153,7 +144,7 @@ public class SegmentSpanListener implements FirstSpanListener, EntrySpanListener
     }
 
     public static class Factory implements SpanListenerFactory {
-        private TraceSegmentSampler sampler;
+        private final TraceSegmentSampler sampler;
 
         public Factory(int segmentSamplingRate) {
             this.sampler = new TraceSegmentSampler(segmentSamplingRate);
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SegmentStandardizationWorker.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SegmentStandardizationWorker.java
index 92fc4a0..8464e06 100644
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SegmentStandardizationWorker.java
+++ b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/trace/provider/parser/standardization/SegmentStandardizationWorker.java
@@ -42,7 +42,7 @@ public class SegmentStandardizationWorker extends AbstractWorker<SegmentStandard
 
     public SegmentStandardizationWorker(ModuleDefineHolder moduleDefineHolder,
         DataStreamReader.CallBack<UpstreamSegment> segmentParse, String path, int offsetFileMaxSize,
-        int dataFileMaxSize, boolean cleanWhenRestart, boolean isV6) throws IOException {
+        int dataFileMaxSize, boolean cleanWhenRestart) throws IOException {
         super(moduleDefineHolder);
 
         BufferStream.Builder<UpstreamSegment> builder = new BufferStream.Builder<>(path);
@@ -59,7 +59,7 @@ public class SegmentStandardizationWorker extends AbstractWorker<SegmentStandard
         dataCarrier.consume(new Consumer(stream), 1, 200);
 
         MetricsCreator metricsCreator = moduleDefineHolder.find(TelemetryModule.NAME).provider().getService(MetricsCreator.class);
-        String metricNamePrefix = isV6 ? "v6_" : "v5_";
+        String metricNamePrefix =  "v6_";
         traceBufferFileIn = metricsCreator.createCounter(metricNamePrefix + "trace_buffer_file_in", "The number of trace segment into the buffer file",
             MetricsTag.EMPTY_KEY, MetricsTag.EMPTY_VALUE);
     }
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/AgentDataMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/AgentDataMock.java
deleted file mode 100644
index 8d882aa..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/AgentDataMock.java
+++ /dev/null
@@ -1,102 +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.oap.server.receiver.trace.mock;
-
-import io.grpc.ManagedChannel;
-import io.grpc.ManagedChannelBuilder;
-import io.grpc.stub.StreamObserver;
-import java.util.concurrent.TimeUnit;
-import org.apache.skywalking.apm.network.language.agent.Downstream;
-import org.apache.skywalking.apm.network.language.agent.TraceSegmentServiceGrpc;
-import org.apache.skywalking.apm.network.language.agent.UniqueId;
-import org.apache.skywalking.apm.network.language.agent.UpstreamSegment;
-
-/**
- * @author peng-yongsheng
- */
-public class AgentDataMock {
-
-    private static boolean IS_COMPLETED = false;
-
-    public static void main(String[] args) throws InterruptedException {
-        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-
-        RegisterMock registerMock = new RegisterMock(channel);
-
-        StreamObserver<UpstreamSegment> streamObserver = createStreamObserver();
-
-        UniqueId.Builder globalTraceId = UniqueIdBuilder.INSTANCE.create();
-        long startTimestamp = System.currentTimeMillis();
-        //long startTimestamp = new DateTime().minusDays(2).getMillis();
-
-        // ServiceAMock
-        ServiceAMock serviceAMock = new ServiceAMock(registerMock);
-        serviceAMock.register();
-
-        // ServiceBMock
-        ServiceBMock serviceBMock = new ServiceBMock(registerMock);
-        serviceBMock.register();
-
-        // ServiceCMock
-        ServiceCMock serviceCMock = new ServiceCMock(registerMock);
-        serviceCMock.register();
-
-        UniqueId.Builder serviceASegmentId = UniqueIdBuilder.INSTANCE.create();
-        serviceAMock.mock(streamObserver, globalTraceId, serviceASegmentId, startTimestamp, true);
-
-        UniqueId.Builder serviceBSegmentId = UniqueIdBuilder.INSTANCE.create();
-        serviceBMock.mock(streamObserver, globalTraceId, serviceBSegmentId, serviceASegmentId, startTimestamp, true);
-
-        UniqueId.Builder serviceCSegmentId = UniqueIdBuilder.INSTANCE.create();
-        serviceCMock.mock(streamObserver, globalTraceId, serviceCSegmentId, serviceBSegmentId, startTimestamp, true);
-
-        TimeUnit.SECONDS.sleep(10);
-
-        for (int i = 0; i < 500; i++) {
-            globalTraceId = UniqueIdBuilder.INSTANCE.create();
-            serviceASegmentId = UniqueIdBuilder.INSTANCE.create();
-            serviceBSegmentId = UniqueIdBuilder.INSTANCE.create();
-            serviceCSegmentId = UniqueIdBuilder.INSTANCE.create();
-            serviceAMock.mock(streamObserver, globalTraceId, serviceASegmentId, startTimestamp, true);
-            serviceBMock.mock(streamObserver, globalTraceId, serviceBSegmentId, serviceASegmentId, startTimestamp, true);
-            serviceCMock.mock(streamObserver, globalTraceId, serviceCSegmentId, serviceBSegmentId, startTimestamp, true);
-        }
-
-        streamObserver.onCompleted();
-        while (!IS_COMPLETED) {
-            TimeUnit.MILLISECONDS.sleep(500);
-        }
-    }
-
-    private static StreamObserver<UpstreamSegment> createStreamObserver() {
-        ManagedChannel channel = ManagedChannelBuilder.forAddress("localhost", 11800).usePlaintext().build();
-        TraceSegmentServiceGrpc.TraceSegmentServiceStub stub = TraceSegmentServiceGrpc.newStub(channel);
-        return stub.collect(new StreamObserver<Downstream>() {
-            @Override public void onNext(Downstream downstream) {
-            }
-
-            @Override public void onError(Throwable throwable) {
-            }
-
-            @Override public void onCompleted() {
-                IS_COMPLETED = true;
-            }
-        });
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java
deleted file mode 100644
index 5ba649e..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/RegisterMock.java
+++ /dev/null
@@ -1,80 +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.oap.server.receiver.trace.mock;
-
-import io.grpc.ManagedChannel;
-import java.util.concurrent.TimeUnit;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.slf4j.*;
-
-/**
- * @author peng-yongsheng
- */
-class RegisterMock {
-
-    private static final Logger logger = LoggerFactory.getLogger(RegisterMock.class);
-
-    private final ApplicationRegisterServiceGrpc.ApplicationRegisterServiceBlockingStub applicationRegisterServiceBlockingStub;
-    private final InstanceDiscoveryServiceGrpc.InstanceDiscoveryServiceBlockingStub instanceDiscoveryServiceBlockingStub;
-
-    RegisterMock(ManagedChannel channel) {
-        applicationRegisterServiceBlockingStub = ApplicationRegisterServiceGrpc.newBlockingStub(channel);
-        instanceDiscoveryServiceBlockingStub = InstanceDiscoveryServiceGrpc.newBlockingStub(channel);
-    }
-
-    int registerService(String serviceName) throws InterruptedException {
-        Application.Builder application = Application.newBuilder();
-        application.setApplicationCode(serviceName);
-
-        ApplicationMapping applicationMapping;
-        do {
-            applicationMapping = applicationRegisterServiceBlockingStub.applicationCodeRegister(application.build());
-            logger.debug("service id: {}", applicationMapping.getApplication().getValue());
-            TimeUnit.MILLISECONDS.sleep(20);
-        }
-        while (applicationMapping.getApplication().getValue() == 0);
-
-        return applicationMapping.getApplication().getValue();
-    }
-
-    int registerServiceInstance(int serviceId, String agentName) throws InterruptedException {
-        ApplicationInstance.Builder instance = ApplicationInstance.newBuilder();
-        instance.setApplicationId(serviceId);
-        instance.setAgentUUID(agentName);
-        instance.setRegisterTime(System.currentTimeMillis());
-
-        OSInfo.Builder osInfo = OSInfo.newBuilder();
-        osInfo.setHostname(agentName);
-        osInfo.setOsName("MacOS XX");
-        osInfo.setProcessNo(1001);
-        osInfo.addIpv4S("10.0.0.3");
-        osInfo.addIpv4S("10.0.0.4");
-        instance.setOsinfo(osInfo);
-
-        ApplicationInstanceMapping instanceMapping;
-        do {
-            instanceMapping = instanceDiscoveryServiceBlockingStub.registerInstance(instance.build());
-            logger.debug("instance id: {}", instanceMapping.getApplicationInstanceId());
-            TimeUnit.MILLISECONDS.sleep(20);
-        }
-        while (instanceMapping.getApplicationInstanceId() == 0);
-
-        return instanceMapping.getApplicationInstanceId();
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceAMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceAMock.java
deleted file mode 100644
index dd6d25a..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceAMock.java
+++ /dev/null
@@ -1,116 +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.oap.server.receiver.trace.mock;
-
-import com.google.protobuf.ByteString;
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
-
-/**
- * @author peng-yongsheng
- */
-class ServiceAMock {
-
-    static String REST_ENDPOINT = "/dubbox-case/case/dubbox-rest";
-    static String DUBBO_ENDPOINT = "org.skywaking.apm.testcase.dubbo.services.GreetService.doBusiness()";
-    static String DUBBO_ADDRESS = "DubboIPAddress:1000";
-    private final RegisterMock registerMock;
-    private static int SERVICE_ID;
-    static int SERVICE_INSTANCE_ID;
-
-    ServiceAMock(RegisterMock registerMock) {
-        this.registerMock = registerMock;
-    }
-
-    void register() throws InterruptedException {
-        SERVICE_ID = registerMock.registerService("dubbox-consumer");
-        SERVICE_INSTANCE_ID = registerMock.registerServiceInstance(SERVICE_ID, "pengysA");
-    }
-
-    void mock(StreamObserver<UpstreamSegment> streamObserver, UniqueId.Builder traceId,
-        UniqueId.Builder segmentId, long startTimestamp, boolean isPrepare) {
-        UpstreamSegment.Builder upstreamSegment = UpstreamSegment.newBuilder();
-        upstreamSegment.addGlobalTraceIds(traceId);
-        upstreamSegment.setSegment(createSegment(startTimestamp, segmentId, isPrepare));
-
-        streamObserver.onNext(upstreamSegment.build());
-    }
-
-    private ByteString createSegment(long startTimestamp, UniqueId.Builder segmentId, boolean isPrepare) {
-        TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
-        segment.setTraceSegmentId(segmentId);
-        segment.setApplicationId(SERVICE_ID);
-        segment.setApplicationInstanceId(SERVICE_INSTANCE_ID);
-        segment.addSpans(createEntrySpan(startTimestamp, isPrepare));
-        segment.addSpans(createLocalSpan(startTimestamp, isPrepare));
-        segment.addSpans(createExitSpan(startTimestamp, isPrepare));
-
-        return segment.build().toByteString();
-    }
-
-    private SpanObject.Builder createEntrySpan(long startTimestamp, boolean isPrepare) {
-        SpanObject.Builder span = SpanObject.newBuilder();
-        span.setSpanId(0);
-        span.setSpanType(SpanType.Entry);
-        span.setSpanLayer(SpanLayer.Http);
-        span.setParentSpanId(-1);
-        span.setStartTime(startTimestamp);
-        span.setEndTime(startTimestamp + 6000);
-        span.setComponentId(ComponentsDefine.TOMCAT.getId());
-        if (isPrepare) {
-            span.setOperationName(REST_ENDPOINT);
-        } else {
-            span.setOperationNameId(2);
-        }
-        span.setIsError(false);
-        return span;
-    }
-
-    private SpanObject.Builder createLocalSpan(long startTimestamp, boolean isPrepare) {
-        SpanObject.Builder span = SpanObject.newBuilder();
-        span.setSpanId(1);
-        span.setSpanType(SpanType.Local);
-        span.setParentSpanId(0);
-        span.setStartTime(startTimestamp + 100);
-        span.setEndTime(startTimestamp + 500);
-        span.setOperationName("org.apache.skywalking.Local.do");
-        span.setIsError(false);
-        return span;
-    }
-
-    private SpanObject.Builder createExitSpan(long startTimestamp, boolean isPrepare) {
-        SpanObject.Builder span = SpanObject.newBuilder();
-        span.setSpanId(2);
-        span.setSpanType(SpanType.Exit);
-        span.setSpanLayer(SpanLayer.RPCFramework);
-        span.setParentSpanId(1);
-        span.setStartTime(startTimestamp + 120);
-        span.setEndTime(startTimestamp + 5800);
-        span.setComponentId(ComponentsDefine.DUBBO.getId());
-        span.setOperationName(DUBBO_ENDPOINT);
-        if (isPrepare) {
-            span.setPeer(DUBBO_ADDRESS);
-        } else {
-            span.setPeerId(2);
-        }
-        span.setIsError(false);
-        return span;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceBMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceBMock.java
deleted file mode 100644
index 73893ee..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceBMock.java
+++ /dev/null
@@ -1,150 +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.oap.server.receiver.trace.mock;
-
-import com.google.protobuf.ByteString;
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
-
-/**
- * @author peng-yongsheng
- */
-class ServiceBMock {
-
-    private final RegisterMock registerMock;
-    private static int SERVICE_ID;
-    static int SERVICE_INSTANCE_ID;
-    static String DUBBO_PROVIDER_ENDPOINT = "org.skywaking.apm.testcase.dubbo.services.GreetServiceImpl.doBusiness()";
-    static String ROCKET_MQ_ENDPOINT = "org.apache.skywalking.RocketMQ";
-    static String ROCKET_MQ_ADDRESS = "RocketMQAddress:2000";
-
-    ServiceBMock(RegisterMock registerMock) {
-        this.registerMock = registerMock;
-    }
-
-    void register() throws InterruptedException {
-        SERVICE_ID = registerMock.registerService("dubbox-provider");
-        SERVICE_INSTANCE_ID = registerMock.registerServiceInstance(SERVICE_ID, "pengysB");
-    }
-
-    void mock(StreamObserver<UpstreamSegment> streamObserver, UniqueId.Builder traceId,
-        UniqueId.Builder segmentId, UniqueId.Builder parentTraceSegmentId, long startTimestamp, boolean isPrepare) {
-        UpstreamSegment.Builder upstreamSegment = UpstreamSegment.newBuilder();
-        upstreamSegment.addGlobalTraceIds(traceId);
-        upstreamSegment.setSegment(createSegment(startTimestamp, segmentId, parentTraceSegmentId, isPrepare));
-
-        streamObserver.onNext(upstreamSegment.build());
-    }
-
-    private ByteString createSegment(long startTimestamp, UniqueId.Builder segmentId,
-        UniqueId.Builder parentTraceSegmentId, boolean isPrepare) {
-        TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
-        segment.setTraceSegmentId(segmentId);
-        segment.setApplicationId(SERVICE_ID);
-        segment.setApplicationInstanceId(SERVICE_INSTANCE_ID);
-        segment.addSpans(createEntrySpan(startTimestamp, parentTraceSegmentId, isPrepare));
-        segment.addSpans(createExitSpan(startTimestamp, isPrepare));
-        segment.addSpans(createMQExitSpan(startTimestamp, isPrepare));
-
-        return segment.build().toByteString();
-    }
-
-    private TraceSegmentReference.Builder createReference(UniqueId.Builder parentTraceSegmentId, boolean isPrepare) {
-        TraceSegmentReference.Builder reference = TraceSegmentReference.newBuilder();
-        reference.setParentTraceSegmentId(parentTraceSegmentId);
-        reference.setParentApplicationInstanceId(ServiceAMock.SERVICE_INSTANCE_ID);
-        reference.setParentSpanId(2);
-        reference.setEntryApplicationInstanceId(ServiceAMock.SERVICE_INSTANCE_ID);
-        reference.setRefType(RefType.CrossProcess);
-
-        if (isPrepare) {
-            reference.setParentServiceName(ServiceAMock.REST_ENDPOINT);
-            reference.setNetworkAddress(ServiceAMock.DUBBO_ADDRESS);
-            reference.setEntryServiceName(ServiceAMock.REST_ENDPOINT);
-        } else {
-            reference.setParentServiceId(2);
-            reference.setNetworkAddressId(2);
-            reference.setEntryServiceId(2);
-        }
-        return reference;
-    }
-
-    private SpanObject.Builder createEntrySpan(long startTimestamp, UniqueId.Builder uniqueId, boolean isPrepare) {
-        SpanObject.Builder span = SpanObject.newBuilder();
-        span.setSpanId(0);
-        span.setSpanType(SpanType.Entry);
-        span.setSpanLayer(SpanLayer.RPCFramework);
-        span.setParentSpanId(-1);
-        span.setStartTime(startTimestamp + 500);
-        span.setEndTime(startTimestamp + 5000);
-        span.setComponentId(ComponentsDefine.DUBBO.getId());
-        span.setIsError(false);
-        span.addRefs(createReference(uniqueId, isPrepare));
-
-        if (isPrepare) {
-            span.setOperationName(ServiceBMock.DUBBO_PROVIDER_ENDPOINT);
-        } else {
-            span.setOperationNameId(4);
-        }
-        return span;
-    }
-
-    private SpanObject.Builder createExitSpan(long startTimestamp, boolean isPrepare) {
-        SpanObject.Builder span = SpanObject.newBuilder();
-        span.setSpanId(1);
-        span.setSpanType(SpanType.Exit);
-        span.setSpanLayer(SpanLayer.Database);
-        span.setParentSpanId(0);
-        span.setStartTime(startTimestamp + 550);
-        span.setEndTime(startTimestamp + 1500);
-        span.setComponentId(ComponentsDefine.MONGO_DRIVER.getId());
-        span.setIsError(true);
-        span.addTags(KeyWithStringValue.newBuilder().setKey("db.statement").setValue("select * from database where complex = 1;").build());
-        span.addTags(KeyWithStringValue.newBuilder().setKey("db.type").setValue("mongodb").build());
-
-        span.setOperationName("mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]");
-        if (isPrepare) {
-            span.setPeer("localhost:27017");
-        } else {
-            span.setPeerId(3);
-        }
-        return span;
-    }
-
-    private SpanObject.Builder createMQExitSpan(long startTimestamp, boolean isPrepare) {
-        SpanObject.Builder span = SpanObject.newBuilder();
-        span.setSpanId(2);
-        span.setSpanType(SpanType.Exit);
-        span.setSpanLayer(SpanLayer.MQ);
-        span.setParentSpanId(1);
-        span.setStartTime(startTimestamp + 1100);
-        span.setEndTime(startTimestamp + 1500);
-        span.setComponentId(ComponentsDefine.ROCKET_MQ_PRODUCER.getId());
-        span.setIsError(false);
-
-        span.setOperationName(ROCKET_MQ_ENDPOINT);
-        if (isPrepare) {
-            span.setPeer(ROCKET_MQ_ADDRESS);
-        } else {
-            span.setPeerId(4);
-        }
-        return span;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceCMock.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceCMock.java
deleted file mode 100644
index b1f537e..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/ServiceCMock.java
+++ /dev/null
@@ -1,103 +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.oap.server.receiver.trace.mock;
-
-import com.google.protobuf.ByteString;
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
-
-/**
- * @author peng-yongsheng
- */
-class ServiceCMock {
-
-    private final RegisterMock registerMock;
-    private static int SERVICE_ID;
-    private static int SERVICE_INSTANCE_ID;
-
-    ServiceCMock(RegisterMock registerMock) {
-        this.registerMock = registerMock;
-    }
-
-    void register() throws InterruptedException {
-        SERVICE_ID = registerMock.registerService("rocket-mq-consumer");
-        SERVICE_INSTANCE_ID = registerMock.registerServiceInstance(SERVICE_ID, "pengysC");
-    }
-
-    void mock(StreamObserver<UpstreamSegment> streamObserver, UniqueId.Builder traceId,
-        UniqueId.Builder segmentId, UniqueId.Builder parentTraceSegmentId, long startTimestamp, boolean isPrepare) {
-        UpstreamSegment.Builder upstreamSegment = UpstreamSegment.newBuilder();
-        upstreamSegment.addGlobalTraceIds(traceId);
-        upstreamSegment.setSegment(createSegment(startTimestamp, segmentId, parentTraceSegmentId, isPrepare));
-
-        streamObserver.onNext(upstreamSegment.build());
-    }
-
-    private ByteString createSegment(long startTimestamp, UniqueId.Builder segmentId,
-        UniqueId.Builder parentTraceSegmentId, boolean isPrepare) {
-        TraceSegmentObject.Builder segment = TraceSegmentObject.newBuilder();
-        segment.setTraceSegmentId(segmentId);
-        segment.setApplicationInstanceId(SERVICE_INSTANCE_ID);
-        segment.setApplicationId(SERVICE_ID);
-        segment.addSpans(createEntrySpan(startTimestamp, parentTraceSegmentId, isPrepare));
-
-        return segment.build().toByteString();
-    }
-
-    private SpanObject.Builder createEntrySpan(long startTimestamp, UniqueId.Builder uniqueId, boolean isPrepare) {
-        SpanObject.Builder span = SpanObject.newBuilder();
-        span.setSpanId(0);
-        span.setSpanType(SpanType.Entry);
-        span.setSpanLayer(SpanLayer.MQ);
-        span.setParentSpanId(-1);
-        span.setStartTime(startTimestamp + 3000);
-        span.setEndTime(startTimestamp + 5000);
-        span.setComponentId(ComponentsDefine.ROCKET_MQ_CONSUMER.getId());
-        span.setIsError(false);
-        span.addRefs(createReference(uniqueId, isPrepare));
-
-        if (isPrepare) {
-            span.setOperationName(ServiceBMock.ROCKET_MQ_ENDPOINT);
-        } else {
-            span.setOperationNameId(5);
-        }
-        return span;
-    }
-
-    private TraceSegmentReference.Builder createReference(UniqueId.Builder parentTraceSegmentId, boolean isPrepare) {
-        TraceSegmentReference.Builder reference = TraceSegmentReference.newBuilder();
-        reference.setParentTraceSegmentId(parentTraceSegmentId);
-        reference.setParentApplicationInstanceId(ServiceBMock.SERVICE_INSTANCE_ID);
-        reference.setParentSpanId(2);
-        reference.setEntryApplicationInstanceId(ServiceAMock.SERVICE_INSTANCE_ID);
-        reference.setRefType(RefType.CrossProcess);
-
-        if (isPrepare) {
-            reference.setParentServiceName(ServiceBMock.DUBBO_PROVIDER_ENDPOINT);
-            reference.setNetworkAddress(ServiceBMock.ROCKET_MQ_ADDRESS);
-            reference.setEntryServiceName(ServiceAMock.REST_ENDPOINT);
-        } else {
-            reference.setParentServiceId(8);
-            reference.setNetworkAddressId(4);
-            reference.setEntryServiceId(2);
-        }
-        return reference;
-    }
-}
diff --git a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/UniqueIdBuilder.java b/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/UniqueIdBuilder.java
deleted file mode 100644
index e64adff..0000000
--- a/oap-server/server-receiver-plugin/skywalking-trace-receiver-plugin/src/test/java/org/apache/skywalking/oap/server/receiver/trace/mock/UniqueIdBuilder.java
+++ /dev/null
@@ -1,39 +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.oap.server.receiver.trace.mock;
-
-import java.util.concurrent.atomic.AtomicLong;
-import org.apache.skywalking.apm.network.language.agent.UniqueId;
-
-/**
- * @author peng-yongsheng
- */
-public enum UniqueIdBuilder {
-    INSTANCE;
-
-    private AtomicLong idPart = new AtomicLong(1);
-
-    UniqueId.Builder create() {
-        UniqueId.Builder uniqueId = UniqueId.newBuilder();
-        uniqueId.addIdParts(idPart.getAndIncrement());
-        uniqueId.addIdParts(idPart.getAndIncrement());
-        uniqueId.addIdParts(idPart.getAndIncrement());
-        return uniqueId;
-    }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
index a49b547..d0b0234 100644
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
+++ b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/Main.java
@@ -39,13 +39,8 @@ public class Main {
                 .maxConcurrentCallsPerConnection(12).maxMessageSize(16777216)
                 .addService(new MockRegisterService())
                 .addService(new MockInstancePingService())
-                .addService(new MockJVMMetricsService())
-                .addService(new MockTraceSegmentV1Service())
-                .addService(new MockApplicationRegisterService())
                 .addService(new MockInstanceDiscoveryService())
-                .addService(new MockJVMMetricsV1Service())
                 .addService(new MockNetworkAddressRegisterService())
-                .addService(new MockServiceNameDiscoveryService())
                 .addService(new MockTraceSegmentService())
                 .addService(new MockJVMMetricReportService())
                 .build().start();
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockApplicationRegisterService.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockApplicationRegisterService.java
deleted file mode 100644
index 0c38117..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockApplicationRegisterService.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.plugin.test.mockcollector.service;
-
-import io.grpc.stub.StreamObserver;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.skywalking.apm.network.language.agent.Application;
-import org.apache.skywalking.apm.network.language.agent.ApplicationMapping;
-import org.apache.skywalking.apm.network.language.agent.ApplicationRegisterServiceGrpc;
-import org.apache.skywalking.apm.network.language.agent.KeyWithIntegerValue;
-import org.apache.skywalking.plugin.test.mockcollector.entity.RegistryItem;
-import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
-
-/**
- * Created by xin on 2017/7/11.
- */
-public class MockApplicationRegisterService extends ApplicationRegisterServiceGrpc.ApplicationRegisterServiceImplBase {
-    private Logger logger = LogManager.getLogger(MockTraceSegmentService.class);
-
-    @Override
-    public void applicationCodeRegister(Application request, StreamObserver<ApplicationMapping> responseObserver) {
-        logger.debug("receive application register.");
-        String applicationCode = request.getApplicationCode();
-        ApplicationMapping.Builder builder = ApplicationMapping.newBuilder();
-
-        if (applicationCode.startsWith("localhost") || applicationCode.startsWith("127.0.0.1") || applicationCode.contains(":") || applicationCode.contains("/")) {
-            responseObserver.onNext(builder.build());
-            responseObserver.onCompleted();
-            return;
-        }
-
-        Integer applicationId = Sequences.SERVICE_MAPPING.get(applicationCode);
-        if (applicationId == null) {
-            applicationId = Sequences.ENDPOINT_SEQUENCE.incrementAndGet();
-            Sequences.SERVICE_MAPPING.put(applicationCode, applicationId);
-            ValidateData.INSTANCE.getRegistryItem().registryApplication(new RegistryItem.Application(applicationCode,
-                    applicationId));
-        }
-
-        builder.setApplication(KeyWithIntegerValue.newBuilder().setKey(applicationCode).setValue(applicationId));
-        responseObserver.onNext(builder.build());
-        responseObserver.onCompleted();
-    }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsService.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsService.java
deleted file mode 100644
index 7f46678..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsService.java
+++ /dev/null
@@ -1,33 +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.plugin.test.mockcollector.service;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.Downstream;
-import org.apache.skywalking.apm.network.language.agent.JVMMetrics;
-import org.apache.skywalking.apm.network.language.agent.JVMMetricsServiceGrpc;
-
-/**
- * Created by xin on 2017/7/11.
- */
-public class MockJVMMetricsService extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase {
-    @Override
-    public void collect(JVMMetrics request, StreamObserver<Downstream> responseObserver) {
-        responseObserver.onNext(Downstream.getDefaultInstance());
-        responseObserver.onCompleted();
-    }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsV1Service.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsV1Service.java
deleted file mode 100644
index a45345e..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockJVMMetricsV1Service.java
+++ /dev/null
@@ -1,34 +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.plugin.test.mockcollector.service;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.Downstream;
-import org.apache.skywalking.apm.network.language.agent.JVMMetrics;
-import org.apache.skywalking.apm.network.language.agent.JVMMetricsServiceGrpc;
-
-/**
- * Created by xin on 2017/7/11.
- */
-public class MockJVMMetricsV1Service extends JVMMetricsServiceGrpc.JVMMetricsServiceImplBase {
-
-    @Override
-    public void collect(JVMMetrics request, StreamObserver<Downstream> responseObserver) {
-        responseObserver.onNext(Downstream.getDefaultInstance());
-        responseObserver.onCompleted();
-    }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockServiceNameDiscoveryService.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockServiceNameDiscoveryService.java
deleted file mode 100644
index 52dce63..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockServiceNameDiscoveryService.java
+++ /dev/null
@@ -1,39 +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.plugin.test.mockcollector.service;
-
-import io.grpc.stub.StreamObserver;
-import org.apache.skywalking.apm.network.language.agent.ServiceNameCollection;
-import org.apache.skywalking.apm.network.language.agent.ServiceNameDiscoveryServiceGrpc;
-import org.apache.skywalking.apm.network.language.agent.ServiceNameElement;
-import org.apache.skywalking.apm.network.language.agent.ServiceNameMappingCollection;
-import org.apache.skywalking.plugin.test.mockcollector.entity.RegistryItem;
-import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
-
-public class MockServiceNameDiscoveryService extends ServiceNameDiscoveryServiceGrpc.ServiceNameDiscoveryServiceImplBase {
-
-    @Override
-    public void discovery(ServiceNameCollection request,
-                          StreamObserver<ServiceNameMappingCollection> responseObserver) {
-        for (ServiceNameElement element : request.getElementsList()) {
-            ValidateData.INSTANCE.getRegistryItem().registryOperationName(new RegistryItem.OperationName(element.getApplicationId(),
-                    element.getServiceName()));
-        }
-        responseObserver.onNext(ServiceNameMappingCollection.getDefaultInstance());
-        responseObserver.onCompleted();
-    }
-}
diff --git a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockTraceSegmentV1Service.java b/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockTraceSegmentV1Service.java
deleted file mode 100644
index 659c3b7..0000000
--- a/test/plugin/mock-collector/src/main/java/org/apache/skywalking/plugin/test/mockcollector/service/MockTraceSegmentV1Service.java
+++ /dev/null
@@ -1,81 +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.plugin.test.mockcollector.service;
-
-import com.google.protobuf.InvalidProtocolBufferException;
-import io.grpc.stub.StreamObserver;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.skywalking.apm.network.language.agent.*;
-import org.apache.skywalking.plugin.test.mockcollector.entity.Segment;
-import org.apache.skywalking.plugin.test.mockcollector.entity.ValidateData;
-import org.apache.skywalking.plugin.test.mockcollector.entity.Span;
-
-public class MockTraceSegmentV1Service extends TraceSegmentServiceGrpc.TraceSegmentServiceImplBase {
-
-    private Logger logger = LogManager.getLogger(MockTraceSegmentService.class);
-
-    @Override
-    public StreamObserver<UpstreamSegment> collect(final StreamObserver<Downstream> responseObserver) {
-        return new StreamObserver<UpstreamSegment>() {
-            @Override public void onNext(UpstreamSegment value) {
-                try {
-                    TraceSegmentObject traceSegmentObject = TraceSegmentObject.parseFrom(value.getSegment());
-                    Segment.SegmentBuilder segmentBuilder = Segment.builder().segmentId(traceSegmentObject.getTraceSegmentId());
-                    logger.debug("Receive segment: Application[{}], TraceSegmentId[{}]",
-                            traceSegmentObject.getApplicationId(),
-                            traceSegmentObject.getTraceSegmentId());
-
-                    for (SpanObject spanObject : traceSegmentObject.getSpansList()) {
-                        Span.SpanBuilder spanBuilder = Span.builder().operationName(spanObject.getOperationName()).parentSpanId(spanObject.getParentSpanId())
-                                .spanId(spanObject.getSpanId()).componentId(spanObject.getComponentId()).componentName(spanObject.getComponent())
-                                .spanLayer(spanObject.getSpanLayer().toString()).endTime(spanObject.getEndTime())
-                                .startTime(spanObject.getStartTime()).spanType(spanObject.getSpanType().toString())
-                                .peer(spanObject.getPeer()).peerId(spanObject.getPeerId()).operationId(spanObject.getOperationNameId());
-
-                        for (LogMessage logMessage : spanObject.getLogsList()) {
-                            spanBuilder.logEventV1(logMessage.getDataList());
-                        }
-
-                        for (KeyWithStringValue tags : spanObject.getTagsList()) {
-                            spanBuilder.tags(tags.getKey(), tags.getValue());
-                        }
-
-                        for (TraceSegmentReference ref : spanObject.getRefsList()) {
-                            spanBuilder.ref(new Span.SegmentRef(ref));
-                        }
-
-                        segmentBuilder.addSpan(spanBuilder);
-                    }
-
-                    ValidateData.INSTANCE.getSegmentItem().addSegmentItem(traceSegmentObject.getApplicationId(), segmentBuilder.build());
-                } catch (InvalidProtocolBufferException e) {
-                    e.printStackTrace();
-                }
-            }
-
-            @Override public void onError(Throwable t) {
-
-            }
-
-            @Override public void onCompleted() {
-                responseObserver.onNext(Downstream.getDefaultInstance());
-                responseObserver.onCompleted();
-            }
-        };
-    }
-}