You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2021/10/31 06:46:55 UTC

[skywalking-java] branch ext-classloader created (now 5441767)

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

wusheng pushed a change to branch ext-classloader
in repository https://gitbox.apache.org/repos/asf/skywalking-java.git.


      at 5441767  Merge branch 'main' into ext-classloader

This branch includes the following new commits:

     new 5441767  Merge branch 'main' into ext-classloader

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


[skywalking-java] 01/01: Merge branch 'main' into ext-classloader

Posted by wu...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch ext-classloader
in repository https://gitbox.apache.org/repos/asf/skywalking-java.git

commit 54417672f7231b7f72af3c35a39e957a2b90877c
Merge: db66bb7 97dc87c
Author: Wu Sheng <wu...@foxmail.com>
AuthorDate: Sun Oct 31 14:46:47 2021 +0800

    Merge branch 'main' into ext-classloader
    
    * main: (28 commits)
      fix release doc (#61)
      Support Jedis' Transaction and fix duplicated enhancement (#57)
      Initialize 8.9.0 iteration (#59)
      Polish release shell and doc. (#58)
      fix rocketmq message header properties garbled characters issue (#54)
      Fix netty-socketio plugin test failure (#56)
      Add okhttp2.x plugin (#49)
      add e2e test for kafka transporter (#42)
      Fix version badge (#53)
      Add JDK17 supported declaration. (#52)
      Fix instrumentation v2 API doesn't work for constructor instrumentation. (#51)
      Add kylin jdbc plugin (#45)
      Fix version compatibility for JSON-RPC4J Plugin (#50)
      Feature add clickhouse jdbc plugin (#41)
      Update menu.yml (#48)
      Fix format. (#47)
      Add new menu for the document (#46)
      Doc: Update setup agent in kubernetes from 'containers' to 'initContainers'. (#44)
      The httpasyncclient-4.x-plugin does not take effect every time. (#40)
      Add an agent plugin to support Jackson (#39)
      ...
    
    # Conflicts:
    #	.github/workflows/plugins-test.3.yaml
    #	CHANGES.md
    #	docs/en/setup/service-agent/java-agent/README.md
    #	docs/menu.yml

 .github/workflows/e2e.yaml                         |  60 +++
 .github/workflows/plugins-test.0.yaml              |   2 +
 .github/workflows/plugins-test.1.yaml              |   1 +
 .github/workflows/plugins-test.2.yaml              |   1 +
 .github/workflows/plugins-test.3.yaml              |   2 +
 CHANGES.md                                         |  20 +-
 README.md                                          |   2 +-
 apm-application-toolkit/apm-toolkit-kafka/pom.xml  |   2 +-
 .../apm-toolkit-log4j-1.x/pom.xml                  |   2 +-
 .../apm-toolkit-log4j-2.x/pom.xml                  |   2 +-
 .../apm-toolkit-logback-1.x/pom.xml                |   2 +-
 apm-application-toolkit/apm-toolkit-meter/pom.xml  |   2 +-
 .../apm-toolkit-micrometer-registry/pom.xml        |   2 +-
 .../apm-toolkit-opentracing/pom.xml                |   2 +-
 apm-application-toolkit/apm-toolkit-trace/pom.xml  |   2 +-
 apm-application-toolkit/pom.xml                    |   2 +-
 apm-commons/apm-datacarrier/pom.xml                |   2 +-
 apm-commons/apm-util/pom.xml                       |   2 +-
 apm-commons/pom.xml                                |   2 +-
 apm-protocol/apm-network/pom.xml                   |   2 +-
 .../network/trace/component/ComponentsDefine.java  |   7 +
 apm-protocol/pom.xml                               |   2 +-
 apm-sniffer/apm-agent-core/pom.xml                 |   2 +-
 .../skywalking/apm/agent/core/conf/Config.java     |   7 +
 .../enhance/v2/ClassEnhancePluginDefineV2.java     |  28 +-
 .../agent/core/remote/LogReportServiceClient.java  | 102 +++++-
 .../apm/agent/core/boot/ServiceManagerTest.java    |   8 +-
 apm-sniffer/apm-agent/pom.xml                      |   4 +-
 .../apm-sdk-plugin/activemq-5.x-plugin/pom.xml     |   2 +-
 .../apm-sdk-plugin/armeria-0.84.x-plugin/pom.xml   |   2 +-
 .../apm-sdk-plugin/armeria-0.85.x-plugin/pom.xml   |   2 +-
 .../asynchttpclient-2.x-plugin/pom.xml             |   2 +-
 apm-sniffer/apm-sdk-plugin/avro-plugin/pom.xml     |   2 +-
 .../apm-sdk-plugin/baidu-brpc-plugin/pom.xml       |   2 +-
 .../apm-sdk-plugin/canal-1.x-plugin/pom.xml        |   2 +-
 .../cassandra-java-driver-3.x-plugin/pom.xml       |   2 +-
 .../pom.xml                                        |  15 +-
 .../ClickHouseStatementMethodInterceptor.java}     |  37 +-
 .../ClickHouseStatementTracingWrapper.java         |  57 +++
 .../InitConnectionMethodInterceptor.java}          |  42 ++-
 .../jdbc/clickhouse/TracedClickHouseStatement.java | 407 +++++++++++++++++++++
 .../define/ConnectionInstrumentation.java}         |  83 +++--
 .../src/main/resources/skywalking-plugin.def       |   7 +-
 .../ClickHouseStatementMethodInterceptorTest.java  | 128 +++++++
 .../InitConnectionMethodInterceptorTest.java       |  72 ++++
 apm-sniffer/apm-sdk-plugin/cxf-3.x-plugin/pom.xml  |   2 +-
 apm-sniffer/apm-sdk-plugin/dbcp-2.x-plugin/pom.xml |   2 +-
 .../apm-sdk-plugin/druid-1.x-plugin/pom.xml        |   2 +-
 .../dubbo-2.7.x-conflict-patch/pom.xml             |   2 +-
 .../apm-sdk-plugin/dubbo-2.7.x-plugin/pom.xml      |   2 +-
 .../apm-sdk-plugin/dubbo-conflict-patch/pom.xml    |   2 +-
 apm-sniffer/apm-sdk-plugin/dubbo-plugin/pom.xml    |   2 +-
 .../apm-sdk-plugin/elastic-job-2.x-plugin/pom.xml  |   2 +-
 .../apm-sdk-plugin/elasticjob-3.x-plugin/pom.xml   |   2 +-
 .../elasticsearch-5.x-plugin/pom.xml               |   2 +-
 .../elasticsearch-6.x-plugin/pom.xml               |   2 +-
 .../elasticsearch-7.x-plugin/pom.xml               |   2 +-
 .../feign-default-http-9.x-plugin/pom.xml          |   2 +-
 .../apm-sdk-plugin/finagle-6.25.x-plugin/pom.xml   |   2 +-
 .../graphql-plugin/graphql-12.x-plugin/pom.xml     |   2 +-
 .../graphql-plugin/graphql-8.x-plugin/pom.xml      |   2 +-
 .../graphql-plugin/graphql-9.x-plugin/pom.xml      |   2 +-
 apm-sniffer/apm-sdk-plugin/graphql-plugin/pom.xml  |   2 +-
 apm-sniffer/apm-sdk-plugin/grpc-1.x-plugin/pom.xml |   2 +-
 apm-sniffer/apm-sdk-plugin/h2-1.x-plugin/pom.xml   |   2 +-
 .../apm-sdk-plugin/hbase-1.x-2.x-plugin/pom.xml    |   2 +-
 .../apm-sdk-plugin/hikaricp-3.x-4.x-plugin/pom.xml |   2 +-
 .../apm-sdk-plugin/httpClient-4.x-plugin/pom.xml   |   2 +-
 .../httpasyncclient-4.x-plugin/pom.xml             |   2 +-
 .../apm/plugin/httpasyncclient/v4/Constants.java   |  18 +-
 .../v4/HttpAsyncClientInterceptor.java             |   4 +-
 .../v4/HttpAsyncRequestExecutorInterceptor.java    |  37 +-
 .../v4/LeaseRequestCompletedInterceptor.java}      |  30 +-
 .../v4/SessionRequestCompleteInterceptor.java      |  11 +-
 .../v4/SessionRequestConstructorInterceptor.java   |   8 +-
 .../v4/SessionRequestFailInterceptor.java          |   4 +-
 .../v4/define/LeaseRequestInstrumentation.java}    |  42 +--
 .../v4/wrapper/FutureCallbackWrapper.java          |   7 +-
 .../wrapper/HttpAsyncResponseConsumerWrapper.java  |   7 +-
 .../src/main/resources/skywalking-plugin.def       |   1 +
 .../v4/HttpAsyncClientInterceptorTest.java         |  89 ++++-
 .../apm-sdk-plugin/httpclient-3.x-plugin/pom.xml   |   2 +-
 .../pom.xml                                        |  21 +-
 .../apm/plugin/httpclient/v5/Constants.java        |  15 +-
 .../v5/HttpAsyncClientDoExecuteInterceptor.java}   |  34 +-
 .../v5/HttpClientDoExecuteInterceptor.java         | 137 +++++++
 .../v5/IOSessionImplPollInterceptor.java           |  92 +++++
 .../v5/define/HttpAsyncClientInstrumentation.java  |  75 ++++
 .../v5/define/HttpClientInstrumentation.java}      |  46 +--
 .../v5/define/IOSessionImplInstrumentation.java}   |  43 +--
 .../v5/wrapper/AsyncResponseConsumerWrapper.java   |  99 +++++
 .../v5}/wrapper/FutureCallbackWrapper.java         |  15 +-
 .../src/main/resources/skywalking-plugin.def       |   9 +-
 .../v5/HttpClientExecuteInterceptorTest.java       | 198 ++++++++++
 .../apm-sdk-plugin/httpclient-commons/pom.xml      |   2 +-
 .../apm-sdk-plugin/hystrix-1.x-plugin/pom.xml      |   2 +-
 .../apm-sdk-plugin/influxdb-2.x-plugin/pom.xml     |   2 +-
 apm-sniffer/apm-sdk-plugin/jdbc-commons/pom.xml    |   2 +-
 .../connectionurl/parser/KylinJdbcURLParser.java   |  15 +-
 .../jdbc/connectionurl/parser/MysqlURLParser.java  |  13 +-
 .../jdbc/connectionurl/parser/URLParser.java       |   3 +
 .../jdbc/connectionurl/parser/URLParserTest.java   |   8 +
 .../apm-sdk-plugin/jedis-2.x-plugin/pom.xml        |   2 +-
 .../v2/TransactionConstructorInterceptor.java      |  18 +-
 .../MultiKeyPipelineBaseInstrumentation.java       |   3 +-
 ... => TransactionConstructorInstrumentation.java} |  44 +--
 .../src/main/resources/skywalking-plugin.def       |   1 +
 .../v2/TransactionConstructorInterceptorTest.java  |  52 +++
 .../jetty-plugin/jetty-client-9.0-plugin/pom.xml   |   2 +-
 .../jetty-plugin/jetty-client-9.x-plugin/pom.xml   |   2 +-
 .../jetty-plugin/jetty-server-9.x-plugin/pom.xml   |   2 +-
 apm-sniffer/apm-sdk-plugin/jetty-plugin/pom.xml    |   2 +-
 .../apm-sdk-plugin/jsonrpc4j-1.x-plugin/pom.xml    |   2 +-
 .../define/JsonRpcHttpClientInstrumentation.java   |  13 +-
 apm-sniffer/apm-sdk-plugin/kafka-commons/pom.xml   |   2 +-
 apm-sniffer/apm-sdk-plugin/kafka-plugin/pom.xml    |   2 +-
 .../pom.xml                                        |  19 +-
 .../apm/plugin/jdbc/kylin/Constants.java           |  15 +-
 .../kylin/CreateCallableStatementInterceptor.java} |  22 +-
 .../kylin/CreatePreparedStatementInterceptor.java} |  23 +-
 .../jdbc/kylin/CreateStatementInterceptor.java}    |  23 +-
 ...PreparedStatementExecuteMethodsInterceptor.java |  94 +++++
 .../plugin/jdbc/kylin/SetCatalogInterceptor.java}  |  21 +-
 .../kylin/StatementExecuteMethodsInterceptor.java  |  74 ++++
 .../kylin/define/ConnectionInstrumentation.java    | 139 +++++++
 .../jdbc/kylin/define/DriverInstrumentation.java   |  21 +-
 ...paredStatementIgnoredSetterInstrumentation.java |  18 +-
 .../define/PreparedStatementInstrumentation.java}  |  51 +--
 ...PreparedStatementNullSetterInstrumentation.java |  17 +-
 .../PreparedStatementSetterInstrumentation.java    |  17 +-
 .../kylin/define/StatementInstrumentation.java}    |  58 +--
 .../src/main/resources/skywalking-plugin.def       |  14 +-
 .../CreateCallableStatementInterceptorTest.java    |  68 ++++
 .../CreatePreparedStatementInterceptorTest.java    |  68 ++++
 .../jdbc/kylin/CreateStatementInterceptorTest.java |  68 ++++
 ...aredStatementExecuteMethodsInterceptorTest.java | 153 ++++++++
 .../StatementExecuteMethodsInterceptorTest.java    | 122 ++++++
 .../apm-sdk-plugin/lettuce-5.x-plugin/pom.xml      |   2 +-
 .../light4j-plugins/light4j-plugin/pom.xml         |   2 +-
 apm-sniffer/apm-sdk-plugin/light4j-plugins/pom.xml |   2 +-
 .../apm-sdk-plugin/mariadb-2.x-plugin/pom.xml      |   2 +-
 .../apm-sdk-plugin/mongodb-2.x-plugin/pom.xml      |   2 +-
 .../apm-sdk-plugin/mongodb-3.x-plugin/pom.xml      |   2 +-
 .../apm-sdk-plugin/mongodb-4.x-plugin/pom.xml      |   2 +-
 apm-sniffer/apm-sdk-plugin/motan-plugin/pom.xml    |   2 +-
 apm-sniffer/apm-sdk-plugin/mssql-commons/pom.xml   |   2 +-
 .../apm-sdk-plugin/mssql-jdbc-plugin/pom.xml       |   2 +-
 .../apm-sdk-plugin/mssql-jtds-1.x-plugin/pom.xml   |   2 +-
 .../apm-sdk-plugin/mysql-5.x-plugin/pom.xml        |   2 +-
 .../apm-sdk-plugin/mysql-6.x-plugin/pom.xml        |   2 +-
 .../apm-sdk-plugin/mysql-8.x-plugin/pom.xml        |   2 +-
 apm-sniffer/apm-sdk-plugin/mysql-common/pom.xml    |   2 +-
 .../apm-sdk-plugin/neo4j-4.x-plugin/pom.xml        |   2 +-
 .../apm-sdk-plugin/netty-socketio-plugin/pom.xml   |   2 +-
 .../nutz-plugins/http-1.x-plugin/pom.xml           |   2 +-
 .../nutz-plugins/mvc-annotation-1.x-plugin/pom.xml |   2 +-
 apm-sniffer/apm-sdk-plugin/nutz-plugins/pom.xml    |   2 +-
 .../pom.xml                                        |  13 +-
 .../plugin/okhttp/v2}/AsyncCallInterceptor.java    |  57 +--
 .../apm/plugin/okhttp/v2/CallInterceptor.java}     |  60 +--
 .../apm/plugin/okhttp/v2/EnqueueInterceptor.java}  |  40 +-
 .../plugin/okhttp/v2}/OnResponseInterceptor.java   |  20 +-
 .../apm/plugin/okhttp/v2}/RealCallInterceptor.java |  35 +-
 .../v2/define/AsyncCallInstrumentation.java}       |  68 ++--
 .../okhttp/v2/define/CallbackInstrumentation.java} |  66 +---
 .../okhttp/v2/define/RealCallInstrumentation.java} |  66 ++--
 .../src/main/resources/skywalking-plugin.def       |   9 +-
 .../plugin/okhttp/v2/RealCallInterceptorTest.java  | 175 +++++++++
 .../apm-sdk-plugin/okhttp-3.x-plugin/pom.xml       |   2 +-
 .../okhttp/v3/define/RealCallInstrumentation.java  | 100 ++---
 .../apm-sdk-plugin/okhttp-4.x-plugin/pom.xml       |   2 +-
 .../okhttp/v4/define/RealCallInstrumentation.java  | 101 ++---
 apm-sniffer/apm-sdk-plugin/okhttp-common/pom.xml   |   2 +-
 .../plugin/okhttp/common/AsyncCallInterceptor.java |  53 +--
 ...alCallInterceptor.java => CallInterceptor.java} |  48 +--
 .../plugin/okhttp/common/OnFailureInterceptor.java |   3 +-
 .../okhttp/common/OnResponseInterceptor.java       |   8 +-
 .../plugin/okhttp/common/RealCallInterceptor.java  |  18 +-
 apm-sniffer/apm-sdk-plugin/play-2.x-plugin/pom.xml |   2 +-
 apm-sniffer/apm-sdk-plugin/pom.xml                 |   6 +-
 .../apm-sdk-plugin/postgresql-8.x-plugin/pom.xml   |   2 +-
 apm-sniffer/apm-sdk-plugin/pulsar-plugin/pom.xml   |   2 +-
 apm-sniffer/apm-sdk-plugin/quasar-plugin/pom.xml   |   2 +-
 .../apm-sdk-plugin/rabbitmq-5.x-plugin/pom.xml     |   2 +-
 .../apm-sdk-plugin/redisson-3.x-plugin/pom.xml     |   2 +-
 apm-sniffer/apm-sdk-plugin/resteasy-plugin/pom.xml |   2 +-
 .../resteasy-server-3.x-plugin/pom.xml             |   2 +-
 .../apm-sdk-plugin/rocketMQ-3.x-plugin/pom.xml     |   2 +-
 .../apm-sdk-plugin/rocketMQ-4.x-plugin/pom.xml     |   2 +-
 .../plugin/rocketMQ/v4/MessageSendInterceptor.java |   5 +-
 .../rocketMQ/v4/MessageSendInterceptorTest.java    |  54 ++-
 .../apm-sdk-plugin/servicecomb-plugin/pom.xml      |   2 +-
 .../servicecomb-java-chassis-0.x-plugin/pom.xml    |   2 +-
 .../servicecomb-java-chassis-1.x-plugin/pom.xml    |   2 +-
 .../apm-sdk-plugin/shardingsphere-plugins/pom.xml  |   6 +-
 .../sharding-sphere-3.x-plugin/pom.xml             |   2 +-
 .../sharding-sphere-4.0.x-plugin/pom.xml           |   2 +-
 .../sharding-sphere-4.1.0-plugin/pom.xml           |   2 +-
 .../shardingsphere-5.0.0-beta-plugin/pom.xml       |   2 +-
 apm-sniffer/apm-sdk-plugin/sofarpc-plugin/pom.xml  |   2 +-
 .../apm-sdk-plugin/solrj-7.x-plugin/pom.xml        |   2 +-
 .../spring-plugins/async-annotation-plugin/pom.xml |   2 +-
 .../concurrent-util-4.x-plugin/pom.xml             |   2 +-
 .../spring-plugins/core-patch/pom.xml              |   2 +-
 .../mvc-annotation-3.x-plugin/pom.xml              |   2 +-
 .../mvc-annotation-4.x-plugin/pom.xml              |   2 +-
 .../v4/RequestMappingMethodInterceptorTest.java    |   3 +-
 .../mvc/v4/RestMappingMethodInterceptorTest.java   |  24 +-
 .../mvc-annotation-5.x-plugin/pom.xml              |   2 +-
 .../spring-plugins/mvc-annotation-commons/pom.xml  |   2 +-
 .../interceptor/AbstractMethodInterceptor.java     |  67 ++--
 .../RequestMappingMethodInterceptor.java           |  20 -
 .../interceptor/RestMappingMethodInterceptor.java  |  19 -
 apm-sniffer/apm-sdk-plugin/spring-plugins/pom.xml  |   2 +-
 .../spring-plugins/resttemplate-4.x-plugin/pom.xml |   2 +-
 .../scheduled-annotation-plugin/pom.xml            |   2 +-
 .../spring-cloud/netflix-plugins/pom.xml           |   2 +-
 .../spring-cloud-feign-1.x-plugin/pom.xml          |   2 +-
 .../spring-plugins/spring-cloud/pom.xml            |   2 +-
 .../spring-cloud-feign-2.x-plugin/pom.xml          |   2 +-
 .../spring-plugins/spring-commons/pom.xml          |   2 +-
 .../spring-plugins/spring-kafka-1.x-plugin/pom.xml |   2 +-
 .../spring-plugins/spring-kafka-2.x-plugin/pom.xml |   2 +-
 .../spring-webflux-5.x-webclient-plugin/pom.xml    |   2 +-
 .../apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml |   2 +-
 .../apm-sdk-plugin/struts2-2.x-plugin/pom.xml      |   2 +-
 apm-sniffer/apm-sdk-plugin/thrift-plugin/pom.xml   |   2 +-
 .../apm-sdk-plugin/tomcat-7.x-8.x-plugin/pom.xml   |   2 +-
 .../plugin/tomcat78x/TomcatInvokeInterceptor.java  |   4 +-
 .../tomcat78x/TomcatInvokeInterceptorTest.java     |   3 +-
 .../apm-sdk-plugin/undertow-plugins/pom.xml        |   2 +-
 .../undertow-plugins/undertow-2.x-plugin/pom.xml   |   2 +-
 apm-sniffer/apm-sdk-plugin/vertx-plugins/pom.xml   |   2 +-
 .../vertx-plugins/vertx-core-3.x-plugin/pom.xml    |   2 +-
 .../apm-sdk-plugin/xmemcached-2.x-plugin/pom.xml   |   2 +-
 .../apm-sdk-plugin/xxl-job-2.x-plugin/pom.xml      |   2 +-
 apm-sniffer/apm-test-tools/pom.xml                 |   2 +-
 .../apm-toolkit-kafka-activation/pom.xml           |   2 +-
 .../apm-toolkit-log4j-1.x-activation/pom.xml       |   2 +-
 .../apm-toolkit-log4j-2.x-activation/pom.xml       |   2 +-
 .../apm-toolkit-logback-1.x-activation/pom.xml     |   2 +-
 .../apm-toolkit-logging-common/pom.xml             |   2 +-
 .../common/log/GRPCLogReportServiceClient.java     | 181 ---------
 .../toolkit/logging/common/log/ToolkitConfig.java  |  25 --
 .../apm-toolkit-meter-activation/pom.xml           |   2 +-
 .../apm-toolkit-opentracing-activation/pom.xml     |   2 +-
 .../apm-toolkit-trace-activation/pom.xml           |   2 +-
 apm-sniffer/apm-toolkit-activation/pom.xml         |   2 +-
 .../bootstrap-plugins/jdk-http-plugin/pom.xml      |   2 +-
 .../bootstrap-plugins/jdk-threading-plugin/pom.xml |   2 +-
 apm-sniffer/bootstrap-plugins/pom.xml              |   2 +-
 apm-sniffer/config/agent.config                    |  18 +-
 .../customize-enhance-plugin/pom.xml               |   2 +-
 .../optional-plugins/ehcache-2.x-plugin/pom.xml    |   2 +-
 .../pom.xml                                        |  14 +-
 .../apm/plugin/fastjson/ParseArrayInterceptor.java |  56 +++
 .../apm/plugin/fastjson/ParseInterceptor.java      |  58 +++
 .../plugin/fastjson/ParseObjectInterceptor.java    |  71 ++++
 .../plugin/fastjson/ToJavaObjectInterceptor.java   |  56 +++
 .../plugin/fastjson/ToJsonBytesInterceptor.java    |  59 +++
 .../apm/plugin/fastjson/ToJsonInterceptor.java     |  59 +++
 .../plugin/fastjson/ToJsonStringInterceptor.java   |  59 +++
 .../fastjson/WriteJsonStringInterceptor.java       |  59 +++
 .../fastjson/define/FastjsonInstrumentation.java   |  93 +++++
 .../src/main/resources/skywalking-plugin.def       |   7 +-
 .../plugin/fastjson/ParseArrayInterceptorTest.java |  79 ++++
 .../apm/plugin/fastjson/ParseInterceptorTest.java  |  79 ++++
 .../fastjson/ParseObjectInterceptorTest.java       |  79 ++++
 .../fastjson/ToJavaObjectInterceptorTest.java      |  85 +++++
 .../fastjson/ToJsonBytesInterceptorTest.java       |  89 +++++
 .../apm/plugin/fastjson/ToJsonInterceptorTest.java |  89 +++++
 .../fastjson/ToJsonStringInterceptorTest.java      |  89 +++++
 .../fastjson/WriteJsonStringInterceptorTest.java   |  90 +++++
 .../optional-plugins/gson-2.8.x-plugin/pom.xml     |   2 +-
 .../optional-plugins/guava-cache-plugin/pom.xml    |   2 +-
 .../jackson-2.x-plugin}/pom.xml                    |  23 +-
 .../plugin/jackson/BasicMethodsInterceptor.java}   |  34 +-
 .../apm/plugin/jackson/ReadValueInterceptor.java}  |  38 +-
 .../jackson/WriteValueAsBytesInterceptor.java}     |  43 ++-
 .../jackson/WriteValueAsStringInterceptor.java}    |  43 ++-
 .../jackson/define/AbstractInstrumentation.java}   |  47 ++-
 .../define/ObjectMapperInstrumentation.java        |  56 +++
 .../define/ObjectReaderInstrumentation.java        |  54 +++
 .../define/ObjectWriterInstrumentation.java        |  55 +++
 .../src/main/resources/skywalking-plugin.def       |   9 +-
 .../jackson/BasicMethodsInterceptorTest.java       |  80 ++++
 .../plugin/jackson/ReadValueInterceptorTest.java   |  79 ++++
 .../jackson/WriteValueAsBytesInterceptorTest.java  |  89 +++++
 .../jackson/WriteValueAsStringInterceptorTest.java |  88 +++++
 .../kotlin-coroutine-plugin/pom.xml                |   2 +-
 .../optional-plugins/mybatis-3.x-plugin/pom.xml    |   2 +-
 .../gateway-2.0.x-plugin/pom.xml                   |   2 +-
 .../gateway-2.1.x-plugin/pom.xml                   |   2 +-
 .../gateway-3.x-plugin/pom.xml                     |   2 +-
 .../optional-spring-cloud/pom.xml                  |   2 +-
 .../optional-spring-plugins/pom.xml                |   2 +-
 .../spring-annotation-plugin/pom.xml               |   2 +-
 .../spring-tx-plugin/pom.xml                       |   2 +-
 .../spring-webflux-5.x-plugin/pom.xml              |   2 +-
 apm-sniffer/optional-plugins/pom.xml               |   4 +-
 .../quartz-scheduler-2.x-plugin/pom.xml            |   2 +-
 .../optional-plugins/sentinel-1.x-plugin/pom.xml   |   2 +-
 .../optional-plugins/trace-ignore-plugin/pom.xml   |   2 +-
 .../zookeeper-3.4.x-plugin/pom.xml                 |   2 +-
 .../kafka-reporter-plugin/pom.xml                  |   2 +-
 .../core/kafka/KafkaLogReporterServiceClient.java  |  65 ++++
 .../core/kafka/KafkaReporterPluginConfig.java      |   2 +
 ...ache.skywalking.apm.agent.core.boot.BootService |   3 +-
 apm-sniffer/optional-reporter-plugins/pom.xml      |   2 +-
 apm-sniffer/pom.xml                                |   2 +-
 changes/changes-8.8.0.md                           |  47 +++
 dist-material/LICENSE                              |   4 +-
 docs/en/contribution/release-java-agent.md         |  15 +-
 .../java-agent/Application-toolkit-log4j-1.x.md    |   5 +-
 .../java-agent/Application-toolkit-log4j-2.x.md    |   5 +-
 .../java-agent/Application-toolkit-logback-1.x.md  |   5 +-
 .../service-agent/java-agent/Bootstrap-plugins.md  |   7 +
 .../java-agent/Extension-classloader.md            |   7 +
 .../service-agent/java-agent/Optional-plugins.md   |  22 ++
 .../setup/service-agent/java-agent/Plugin-list.md  |   6 +
 docs/en/setup/service-agent/java-agent/README.md   |  78 ++--
 .../service-agent/java-agent/Supported-list.md     |  11 +-
 .../service-agent/java-agent/configurations.md     |   6 +-
 .../service-agent/java-agent/containerization.md   |   5 +-
 docs/menu.yml                                      |  82 ++---
 pom.xml                                            |  10 +-
 test/e2e/base/base-compose.yml                     |  77 ++++
 .../e2e/base/consumer/Dockerfile                   |  16 +-
 test/e2e/base/consumer/pom.xml                     |  92 +++++
 .../apache/skywalking/e2e/E2EConfiguration.java}   |  20 +-
 .../skywalking/e2e/Service1Application.java}       |  13 +-
 .../main/java/org/apache/skywalking/e2e/User.java} |  17 +-
 .../e2e/controller/HealthController.java}          |  24 +-
 .../skywalking/e2e/controller/UserController.java  |  87 +++++
 .../consumer/src/main/resources/application.yml    |  13 +-
 .../e2e/base}/pom.xml                              |  38 +-
 .../e2e/base/provider/Dockerfile                   |  16 +-
 test/e2e/base/provider/pom.xml                     | 154 ++++++++
 .../java/org/apache/skywalking/e2e/KeyValue.java}  |  21 +-
 .../skywalking/e2e/Service0Application.java}       |  17 +-
 .../main/java/org/apache/skywalking/e2e/User.java} |  30 +-
 .../java/org/apache/skywalking/e2e/UserRepo.java}  |  14 +-
 .../e2e/controller/HealthController.java}          |  19 +-
 .../skywalking/e2e/controller/UserController.java  |  69 ++++
 .../apache/skywalking/e2e/profile/CreateUser.java} |  18 +-
 .../skywalking/e2e/profile/ProfileController.java  |  42 +++
 .../provider/src/main/resources/application.yml    |  38 +-
 .../provider/src/main/resources/log4j.properties   |  26 ++
 .../base/provider/src/main/resources/log4j2.xml    |  44 +++
 .../base/provider/src/main/resources/logback.xml   |  52 +++
 .../e2e/case/expected/event-list.yml               |  23 +-
 .../e2e/case/expected/logs-list.yml                |  34 +-
 .../e2e/case/expected/metrics-has-value.yml        |  10 +-
 .../e2e/case/expected/service-endpoint.yml         |   8 +-
 test/e2e/case/expected/service-instance.yml        |  40 ++
 .../e2e/case/expected/service.yml                  |  10 +-
 test/e2e/case/expected/trace-info-detail.yml       |  47 +++
 .../e2e/case/expected/trace-users-detail.yml       |  36 +-
 .../e2e/case/expected/traces-list.yml              |  18 +-
 .../e2e/case/grpc/docker-compose.yml               |  44 ++-
 test/e2e/case/grpc/e2e.yaml                        |  90 +++++
 test/e2e/case/kafka/docker-compose.yml             | 129 +++++++
 test/e2e/case/kafka/e2e.yaml                       |  90 +++++
 .../e2e/script/env                                 |   5 +-
 test/e2e/script/prepare/install-swctl.sh           |  33 ++
 test/e2e/script/prepare/install-yq.sh              |  30 ++
 test/e2e/script/prepare/install.sh                 |  35 ++
 test/plugin/run.sh                                 |  27 +-
 .../activemq-scenario/config/expectedData.yaml     |   7 +-
 .../config/expectedData.yaml                       |  29 +-
 .../config/expectedData.yaml                       |   7 +-
 .../config/expectedData.yaml                       |   7 +-
 .../config/expectedData.yaml                       |  13 +-
 .../avro-scenario/config/expectedData.yaml         |  20 +-
 .../baidu-brpc-scenario/config/expectedData.yaml   |   7 +-
 .../canal-scenario/config/expectedData.yaml        |   4 +-
 .../config/expectedData.yaml                       |  31 +-
 .../bin/startup.sh}                                |  14 +-
 .../config/expectedData.yaml                       | 182 +++++++++
 .../clickhouse-0.3.x-scenario/configuration.yml    |  50 +--
 .../pom.xml                                        |  54 ++-
 .../src/main/assembly/assembly.xml                 |  39 +-
 .../apm/testcase/neo4j}/Application.java           |  24 +-
 .../testcase/neo4j}/controller/CaseController.java |  38 +-
 .../src/main/resources/application.yaml            |   8 +-
 .../src/main/resources/log4j2.xml                  |  25 +-
 .../support-version.list                           |   6 +-
 .../config/expectedData.yaml                       |  47 +--
 .../customize-scenario/config/expectedData.yaml    |  31 +-
 .../cxf-scenario/config/expectedData.yaml          |  12 +-
 .../dbcp-2.x-scenario/config/expectedData.yaml     |  19 +-
 .../druid-1.x-scenario/config/expectedData.yaml    |   2 +-
 .../dubbo-2.5.x-scenario/config/expectedData.yaml  |   7 +-
 .../dubbo-2.7.x-scenario/config/expectedData.yaml  |   7 +-
 .../ehcache-2.x-scenario/config/expectedData.yaml  |  22 +-
 .../config/expectedData.yaml                       |   5 +-
 .../config/expectedData.yaml                       |   2 -
 .../config/expectedData.yaml                       |  10 +-
 .../config/expectedData.yaml                       |  30 +-
 .../config/expectedData.yaml                       |  20 +-
 .../config/expectedData.yaml                       |  11 +-
 .../config/expectedData.yaml                       |   8 +-
 .../bin/startup.sh}                                |  11 +-
 .../config/expectedData.yaml                       |  99 +++--
 .../configuration.yml}                             |  14 +-
 .../pom.xml                                        |  54 +--
 .../src/main/assembly/assembly.xml                 |  35 +-
 .../apm/testcase/fastjson}/Application.java        |  16 +-
 .../fastjson}/controller/CaseController.java       |  48 +--
 .../apm/testcase/fastjson/entity/CaseEntity.java}  |  27 +-
 .../apm/testcase/fastjson/service/CaseService.java |  96 +++++
 .../src/main/resources/application.yaml            |   8 +-
 .../src/main/resources/log4j2.xml                  |  24 +-
 .../support-version.list                           |   5 +-
 .../feign-scenario/config/expectedData.yaml        |  33 +-
 .../config/expectedData.yaml                       |  20 +-
 .../config/expectedData.yaml                       |  20 +-
 .../config/expectedData.yaml                       |   8 +-
 .../config/expectedData.yaml                       |   8 +-
 .../gateway-3.x-scenario/config/expectedData.yaml  |   8 +-
 .../graphql-12.x-scenario/config/expectedData.yaml |   7 +-
 .../graphql-8.x-scenario/config/expectedData.yaml  |   7 +-
 .../graphql-9.x-scenario/config/expectedData.yaml  |   7 +-
 .../grpc-scenario/config/expectedData.yaml         | 113 +++---
 .../gson-scenario/config/expectedData.yaml         |   5 +-
 .../guava-cache-scenario/config/expectedData.yaml  |  49 ++-
 .../scenarios/h2-scenario/config/expectedData.yaml |   7 +-
 .../hbase-scenario/config/expectedData.yaml        |   7 +-
 .../hikaricp-scenario/config/expectedData.yaml     |   2 +-
 .../config/expectedData.yaml                       |  27 +-
 .../config/expectedData.yaml                       |   9 +-
 .../config/expectedData.yaml                       |   9 +-
 .../bin/startup.sh}                                |   9 +-
 .../config/expectedData.yaml                       |  87 +++--
 .../httpclient-5.x-scenario/configuration.yml      |   9 +-
 .../pom.xml                                        | 104 +++---
 .../src/main/assembly/assembly.xml                 |  39 +-
 .../testcase/httpclient5/BackController.java}      |  22 +-
 .../testcase/httpclient5/FrontController.java      |  84 +++++
 .../testcase/httpclient5/HttpClientConfig.java     |  46 +++
 .../httpclient5/Httpclient5Application.java}       |  17 +-
 .../src/main/resource/application.yml}             |   7 +-
 .../src/main/resource/log4j2.xml                   |  23 +-
 .../support-version.list                           |   6 +-
 .../hystrix-scenario/config/expectedData.yaml      |  21 +-
 .../influxdb-scenario/config/expectedData.yaml     |  11 +-
 .../bin/startup.sh}                                |  11 +-
 .../jackson-scenario/config/expectedData.yaml      | 150 ++++++++
 .../configuration.yml}                             |  14 +-
 .../pom.xml                                        |  65 ++--
 .../src/main/assembly/assembly.xml                 |  35 +-
 .../apm/testcase/jackson}/Application.java         |  16 +-
 .../jackson}/controller/CaseController.java        |  43 +--
 .../apm/testcase/jackson/entity/CaseEntity.java}   |  27 +-
 .../apm/testcase/jackson/service/CaseService.java  |  79 ++++
 .../src/main/resources/application.yaml            |   8 +-
 .../jackson-scenario/src/main/resources/log4j2.xml |  24 +-
 .../support-version.list                           |   5 +-
 .../jdk-http-scenario/config/expectedData.yaml     |   9 +-
 .../config/expectedData.yaml                       |  11 +-
 .../config/expectedData.yaml                       |   6 +-
 .../jedis-scenario/config/expectedData.yaml        |  38 +-
 .../testcase/jedis/controller/CaseController.java  |   5 +
 .../RedisTransactionCommandExecutor.java}          |  29 +-
 .../jetty-scenario/config/expectedData.yaml        |   9 +-
 .../config/expectedData.yaml                       |   7 +-
 .../scenarios/jsonrpc4j-1.x-scenario/pom.xml       |   4 +-
 .../apm/testcase/jsonrpc4j/Application.java        |   6 +-
 .../jsonrpc4j/services/DemoServiceImp.java         |   2 -
 .../jsonrpc4j-1.x-scenario/support-version.list    |   1 +
 .../kafka-scenario/config/expectedData.yaml        |  31 +-
 .../config/expectedData.yaml                       |  10 +-
 .../bin/startup.sh}                                |  11 +-
 .../config/expectedData.yaml                       |  77 ++--
 .../configuration.yml                              |  50 +--
 .../pom.xml                                        |  53 +--
 .../src/main/assembly/assembly.xml                 |  39 +-
 .../apm/testcase/kylinjdbc}/Application.java       |  21 +-
 .../apm/testcase/kylinjdbc/KylinJdbcConfig.java    |  58 +++
 .../apm/testcase/kylinjdbc/SQLExecutor.java        |  64 ++++
 .../kylinjdbc/controller/CaseController.java       |  84 +++++
 .../src/main/resources/application.yaml            |   8 +-
 .../src/main/resources/jdbc.properties}            |  10 +-
 .../src/main/resources/log4j2.xml                  |  24 +-
 .../support-version.list                           |   9 +-
 .../lettuce-scenario/config/expectedData.yaml      |   9 +-
 .../mariadb-scenario/config/expectedData.yaml      |   8 +-
 .../mongodb-3.x-scenario/config/expectedData.yaml  |  10 +-
 .../mongodb-4.x-scenario/config/expectedData.yaml  |  10 +-
 .../mssql-jdbc-scenario/config/expectedData.yaml   |   8 +-
 .../mssql-jtds-scenario/config/expectedData.yaml   |   7 +-
 .../mybatis-3.x-scenario/config/expectedData.yaml  |   9 +-
 .../mysql-scenario/config/expectedData.yaml        |  11 +-
 .../neo4j-4.x-scenario/config/expectedData.yaml    |  11 +-
 .../config/expectedData.yaml                       |  51 ++-
 .../okhttp-scenario/config/expectedData.yaml       |  71 +++-
 .../bin/startup.sh}                                |  11 +-
 .../okhttp2-scenario/config/expectedData.yaml      | 130 +++++++
 .../configuration.yml}                             |  10 +-
 .../pom.xml                                        |  61 +--
 .../src/main/assembly/assembly.xml                 |  35 +-
 .../apm/testcase/okhttp2}/Application.java         |  16 +-
 .../okhttp2/controller/CaseController.java         |  83 +++++
 .../src/main/resources/application.yaml            |   8 +-
 .../okhttp2-scenario/src/main/resources/log4j2.xml |  24 +-
 .../support-version.list                           |  12 +-
 .../oracle-scenario/config/expectedData.yaml       |   8 +-
 .../play-scenario/config/expectedData.yaml         |   1 -
 .../config/expectedData.yaml                       |   7 +-
 .../postgresql-scenario/config/expectedData.yaml   |   7 +-
 .../pulsar-scenario/config/expectedData.yaml       |  25 +-
 .../scenarios/pulsar-scenario/support-version.list |   2 +-
 .../config/expectedData.yaml                       |   6 +-
 .../quasar-scenario/config/expectedData.yaml       |   7 +-
 .../rabbitmq-scenario/config/expectedData.yaml     |   7 +-
 .../redisson-scenario/config/expectedData.yaml     |   5 +-
 .../config/expectedData.yaml                       |  43 +--
 .../config/expectedData.yaml                       |   5 +-
 .../config/expectedData.yaml                       |   5 +-
 .../sentinel-scenario/config/expectedData.yaml     |  22 +-
 .../config/expectedData.yaml                       |   3 -
 .../config/expectedData.yaml                       |   3 -
 .../config/expectedData.yaml                       |  45 ++-
 .../config/expectedData.yaml                       |  45 ++-
 .../config/expectedData.yaml                       |  45 ++-
 .../config/expectedData.yaml                       |  21 +-
 .../sofarpc-scenario/config/expectedData.yaml      |   7 +-
 .../solrj-7.x-scenario/config/expectedData.yaml    |  10 +-
 .../spring-3.0.x-scenario/config/expectedData.yaml |  78 ++--
 .../spring-3.1.x-scenario/config/expectedData.yaml |  93 ++---
 .../spring-4.1.x-scenario/config/expectedData.yaml |  93 ++---
 .../spring-4.3.x-scenario/config/expectedData.yaml |  99 ++---
 .../spring-async-scenario/config/expectedData.yaml |  17 +-
 .../config/expectedData.yaml                       |  23 +-
 .../config/expectedData.yaml                       |  23 +-
 .../config/expectedData.yaml                       |  54 +--
 .../config/expectedData.yaml                       |  11 +-
 .../config/expectedData.yaml                       |  11 +-
 .../config/expectedData.yaml                       |  72 +---
 .../config/expectedData.yaml                       |   5 +-
 .../spring-tx-scenario/config/expectedData.yaml    |  10 +-
 .../config/expectedData.yaml                       |   9 +-
 .../config/expectedData.yaml                       |   9 +-
 .../struts2.3-scenario/config/expectedData.yaml    |   3 -
 .../struts2.5-scenario/config/expectedData.yaml    |   3 -
 .../thrift-scenario/config/expectedData.yaml       |   4 -
 .../undertow-scenario/config/expectedData.yaml     |   7 -
 .../config/expectedData.yaml                       |  12 -
 .../config/expectedData.yaml                       |  17 -
 .../config/expectedData.yaml                       |  17 -
 .../webflux-scenario/config/expectedData.yaml      |  39 +-
 .../xxl-job-2.x-scenario/config/expectedData.yaml  |  16 +-
 .../zookeeper-scenario/config/expectedData.yaml    |   8 +-
 tools/releasing/create_release.sh                  |   3 +-
 554 files changed, 10150 insertions(+), 3904 deletions(-)

diff --cc .github/workflows/plugins-test.3.yaml
index 7817919,da18a12..a713b92
--- a/.github/workflows/plugins-test.3.yaml
+++ b/.github/workflows/plugins-test.3.yaml
@@@ -90,7 -90,8 +90,9 @@@ jobs
            - oracle-scenario
            - druid-1.x-scenario
            - hikaricp-scenario
+           - clickhouse-0.3.x-scenario
+           - kylin-jdbc-2.6.x-3.x-4.x-scenario
 +          - extclassloader-scenario
      steps:
        - uses: actions/checkout@v2
          with:
diff --cc CHANGES.md
index 29ff0a5,47b2fef..9ad3af5
--- a/CHANGES.md
+++ b/CHANGES.md
@@@ -2,27 -2,10 +2,11 @@@ Changes by Versio
  ==================
  Release Notes.
  
- 8.8.0
+ 8.9.0
  ------------------
  
- * **Split Java agent from the main monorepo. It is a separate repository and going to release separately**.
- * Upgrade jdk 11 in dockerfile and remove unused java_opts.
- * DataCarrier changes a `#consume` API to add properties as a parameter to initialize consumer when
-   use `Class<? extends IConsumer<T>> consumerClass`.
- * Support Multiple DNS period resolving mechanism
- * Modify `Tags.STATUS_CODE` field name to `Tags.HTTP_RESPONSE_STATUS_CODE` and type from `StringTag` to `IntegerTag`, add `Tags.RPC_RESPONSE_STATUS_CODE` field to hold rpc response code value.
- * Fix kafka-reporter-plugin shade package conflict
- * Add all config items to `agent.conf` file for convenient containerization use cases.
- * Advanced Kafka Producer configuration enhancement.
- * Support mTLS for gRPC channel.
- * fix the bug that plugin record wrong time elapse for lettuce plugin
- * fix the bug that the wrong db.instance value displayed on Skywalking-UI when existing multi-database-instance on same host port pair.
- * Add thrift plugin support thrift TMultiplexedProcessor.
- * Add benchmark result for `exception-ignore` plugin and polish plugin guide.
- * Provide Alibaba Druid database connection pool plugin.
- * Provide HikariCP database connection pool plugin.
- * fix the bug that springMVC plugin will not stop span when exception throws.
 +* Add support for extClassLoader
+ * Support `Transaction` and fix duplicated methods enhancements for `jedis-2.x` plugin.
  
  #### Documentation
  
diff --cc docs/en/setup/service-agent/java-agent/Extension-classloader.md
index 0000000,0000000..492bd23
new file mode 100644
--- /dev/null
+++ b/docs/en/setup/service-agent/java-agent/Extension-classloader.md
@@@ -1,0 -1,0 +1,7 @@@
++## Extension ClassLoader
++**Extension ClassLoader**: The Extension ClassLoader is a child of Bootstrap ClassLoader and loads the extensions of core java classes from the respective JDK Extension library.
++It loads files from jre/lib/ext directory or any other directory pointed by the system property java.ext.dirs.
++User decides which parts of the service should be loaded by the extension classloader, so, we open `plugin.plugins_in_ext_class_loader=${SW_PLUGINS_IN_EXT_CLASS_LOADER:}` in the `agent.config` file.
++
++Through this setting, users declare plugins are for excClassloader. Multiple values should be separated by ",".
++Also support wildcard(`\*`),like `ehcache\*`. All plugin names are defined in [Agent plugin list](Plugin-list.md)
diff --cc docs/en/setup/service-agent/java-agent/README.md
index baab130,d0ace7c..65ebcbb
--- a/docs/en/setup/service-agent/java-agent/README.md
+++ b/docs/en/setup/service-agent/java-agent/README.md
@@@ -59,52 -69,12 +69,10 @@@ export JAVA_OPTIONS="${JAVA_OPTIONS} -j
  
  # Plugins
  
- ## Supported middleware, framework and library
- SkyWalking agent has supported various middlewares, frameworks and libraries.
- Read [supported list](Supported-list.md) to get them and supported version.
- If the plugin is in **Optional²** catalog, go to [optional plugins](#optional-plugins) section to learn how to active it.
+ SkyWalking agent has supported various middlewares, frameworks and libraries. Read [supported list](Supported-list.md)
+ to get them and supported version. If the plugin is in **Optional²** catalog, go
+ to [optional plugins](Optional-plugins.md) and [bootstrap class plugin](Bootstrap-plugins.md) section to learn how to
+ active it.
  
- - All plugins are in `/plugins` folder. The plugin jar is active when it is in there. Remove the plugin jar, it disabled.
+ - All plugins in `/plugins` folder are active. Remove the plugin jar, it disabled.
  - The default logging output folder is `/logs`.
- 
- ## Optional Plugins
- Java agent plugins are all pluggable. Optional plugins could be provided in `optional-plugins` folder under agent or 3rd party repositories.
- For using these plugins, you need to put the target plugin jar file into `/plugins`.
- 
- Now, we have the following known optional plugins.
- * [Plugin of tracing Spring annotation beans](agent-optional-plugins/Spring-annotation-plugin.md)
- * [Plugin of tracing Oracle and Resin](agent-optional-plugins/Oracle-Resin-plugins.md)
- * [Filter traces through specified endpoint name patterns](agent-optional-plugins/trace-ignore-plugin.md)
- * Plugin of Gson serialization lib in optional plugin folder.
- * Plugin of Zookeeper 3.4.x in optional plugin folder. The reason of being optional plugin is, many business irrelevant traces are generated, which cause extra payload to agents and backends. At the same time, those traces may be just heartbeat(s).
- * [Customize enhance](Customize-enhance-trace.md) Trace methods based on description files, rather than write plugin or change source codes.
- * Plugin of Spring Cloud Gateway 2.1.x in optional plugin folder. Please only active this plugin when you install agent in Spring Gateway. spring-cloud-gateway-2.x-plugin and spring-webflux-5.x-plugin are both required.
- * Plugin of Spring Transaction in optional plugin folder. The reason of being optional plugin is, many local span are generated, which also spend more CPU, memory and network.
- * [Plugin of Kotlin coroutine](agent-optional-plugins/Kotlin-Coroutine-plugin.md) provides the tracing across coroutines automatically. As it will add local spans to all across routines scenarios, Please assess the performance impact.
- * Plugin of quartz-scheduler-2.x in the optional plugin folder. The reason for being an optional plugin is, many task scheduling systems are based on quartz-scheduler, this will cause duplicate tracing and link different sub-tasks as they share the same quartz level trigger, such as ElasticJob.
- * Plugin of spring-webflux-5.x in the optional plugin folder. Please only activate this plugin when you use webflux alone as a web container. If you are using SpringMVC 5 or Spring Gateway, you don't need this plugin.
- * Plugin of mybatis-3.x in optional plugin folder. The reason of being optional plugin is, many local span are generated, which also spend more CPU, memory and network.
- * Plugin of sentinel-1.x in the optional plugin folder. The reason for being an optional plugin is, the sentinel plugin generates a large number of local spans, which have a potential performance impact.
- * Plugin of ehcache-2.x in the optional plugin folder. The reason for being an optional plugin is, this plugin enhanced cache framework, generates large number of local spans, which have a potential performance impact.
- * Plugin of guava-cache in the optional plugin folder. The reason for being an optional plugin is, this plugin enhanced cache framework, generates large number of local spans, which have a potential performance impact.
- 
- ## Extension ClassLoader
- **Extension ClassLoader**: The Extension ClassLoader is a child of Bootstrap ClassLoader and loads the extensions of core java classes from the respective JDK Extension library. 
- It loads files from jre/lib/ext directory or any other directory pointed by the system property java.ext.dirs.
- User decides which parts of the service should be loaded by the extension classloader, so, we open `plugin.plugins_in_ext_class_loader=${SW_PLUGINS_IN_EXT_CLASS_LOADER:}` in the `agent.config` file. 
- 
- Through this setting, users declare plugins are for excClassloader. Multiple values should be separated by ",". 
- Also support wildcard(`\*`),like `ehcache\*`. All plugin names are defined in [Agent plugin list](Plugin-list.md)
- 
- ## Bootstrap class plugins
- All bootstrap plugins are optional, due to unexpected risk. Bootstrap plugins are provided in `bootstrap-plugins` folder.
- For using these plugins, you need to put the target plugin jar file into `/plugins`.
- 
- Now, we have the following known bootstrap plugins.
- * Plugin of JDK HttpURLConnection. Agent is compatible with JDK 1.6+
- * Plugin of JDK Callable and Runnable. Agent is compatible with JDK 1.6+
--
--
- ## Plugin Development Guide
- SkyWalking java agent supports plugin to extend [the supported list](Supported-list.md). Please follow 
- our [Plugin Development Guide](Java-Plugin-Development-Guide.md).
diff --cc docs/menu.yml
index ba9736f,a4cb557..aad4d36
--- a/docs/menu.yml
+++ b/docs/menu.yml
@@@ -29,51 -65,13 +65,15 @@@ catalog
        - name: "Supported middleware, framework and library"
          path: "/en/setup/service-agent/java-agent/Supported-list"
        - name: "Optional Plugins"
-         path: "/en/setup/service-agent/java-agent/readme#optional-plugins"
+         path: "/en/setup/service-agent/java-agent/Optional-plugins"
 -      - name: "Bootstrap/JVM class plugin"
 +      - name: "Extension ClassLoader"
-         path: "/en/setup/service-agent/java-agent/readme#extension-classloader"
++        path: "/en/setup/service-agent/java-agent/Extension-classloader"
 +      - name: "Bootstrap/JVM ClassLoader Plugin"
-         path: "/en/setup/service-agent/java-agent/readme#bootstrap-classloader-plugins"
+         path: "/en/setup/service-agent/java-agent/Bootstrap-plugins"
        - name: "Agent Configuration Properties"
-         path: "/en/setup/service-agent/java-agent/configurations#table-of-agent-configuration-properties"
+         path: "/en/setup/service-agent/java-agent/configurations"
        - name: "Dynamic Configurations"
-         path: "/en/setup/service-agent/java-agent/configurations#dynamic-configurations"
-       - name: "Logic Endpoint"
-         path: "/en/setup/service-agent/java-agent/logic-endpoint"
-       - name: "Advanced Features"
-         catalog:
-           - name: "Guidance"
-             path: "/en/setup/service-agent/java-agent/advanced-features"
-           - name: "Setting Override"
-             path: "/en/setup/service-agent/java-agent/setting-override"
-           - name: "Transport Layer Security (TLS)"
-             path: "/en/setup/service-agent/java-agent/tls"
-           - name: "Namespace Isolation"
-             path: "/en/setup/service-agent/java-agent/namespace"
-           - name: "Token Authentication"
-             path: "/en/setup/service-agent/java-agent/token-auth"
-           - name: "Manual APIs"
-             catalog:
-               - name: "Tracing APIs"
-                 path: "/en/setup/service-agent/java-agent/application-toolkit-trace"
-               - name: "OpenTracing Tracer"
-                 path: "/en/setup/service-agent/java-agent/opentracing"
-               - name: "Meter APIs"
-                 path: "/en/setup/service-agent/java-agent/application-toolkit-meter"
-               - name: "Across Thread Solution"
-                 path: "/en/setup/service-agent/java-agent/application-toolkit-trace-cross-thread"
-               - name: "MicroMeter Registry"
-                 path: "/en/setup/service-agent/java-agent/application-toolkit-micrometer"
-           - name: "Tolerate Custom Exceptions"
-             path: "/en/setup/service-agent/java-agent/how-to-tolerate-exceptions"
-           - name: "Log & Trace Correlation"
-             catalog:
-               - name: "Log4j"
-                 path: "/en/setup/service-agent/java-agent/application-toolkit-log4j-1.x"
-               - name: "Log4j2"
-                 path: "/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x"
-               - name: "Logback"
-                 path: "/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/"
+         path: "/en/setup/service-agent/java-agent/configuration-discovery"
        - name: "Advanced reporters"
          path: "/en/setup/service-agent/java-agent/advanced-reporters"
        - name: "Plugin development guide"