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 2019/06/14 01:25:05 UTC

[skywalking] branch master updated: Revert SolrJ plugin. (#2871)

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

wusheng 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 0f9c27d  Revert SolrJ plugin. (#2871)
0f9c27d is described below

commit 0f9c27d4815dfbe4bc3663ee2ab4db68575005de
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Fri Jun 14 09:24:58 2019 +0800

    Revert SolrJ plugin. (#2871)
    
    * Revert SolrJ plugin.
    
    * Remove an unexpected test case.
    
    * Revert "Remove an unexpected test case."
    
    This reverts commit 359990e18b0c0ae1a6e1005ff985bf237ec05619.
    
    * Clear context.
    
    * Fix a leak.
---
 .../network/trace/component/ComponentsDefine.java  |   3 -
 .../skywalking/apm/agent/core/conf/Config.java     |  12 -
 .../core/remote/TraceSegmentServiceClient.java     |   1 +
 .../apm/agent/core/context/TracingContextTest.java |  34 +-
 apm-sniffer/apm-sdk-plugin/pom.xml                 |   3 +-
 .../apm-sdk-plugin/solrj-7.x-plugin/pom.xml        |  47 ---
 .../apm/plugin/solrj/SolrConnectorInterceptor.java |  59 ---
 .../apm/plugin/solrj/commons/SolrjInstance.java    |  39 --
 .../apm/plugin/solrj/commons/SolrjTags.java        |  39 --
 .../solrj/define/HttpClientInstrumentation.java    |  64 ---
 .../solrj/define/SolrClientInstrumentation.java    |  75 ----
 .../src/main/resources/skywalking-plugin.def       |  18 -
 .../plugin/solrj/SolrClientInterceptorTest.java    | 428 ---------------------
 docs/en/setup/service-agent/java-agent/README.md   |   2 -
 .../service-agent/java-agent/Supported-list.md     |   1 -
 .../src/test/resources/component-libraries.yml     |   7 -
 .../src/main/resources/component-libraries.yml     |   7 -
 17 files changed, 22 insertions(+), 817 deletions(-)

diff --git a/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java
index c8dec42..38f9dca 100644
--- a/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java
+++ b/apm-protocol/apm-network/src/main/java/org/apache/skywalking/apm/network/trace/component/ComponentsDefine.java
@@ -122,8 +122,6 @@ public class ComponentsDefine {
 
     public static final OfficialComponent RESTEASY =  new OfficialComponent(62, "RESTEasy");
 
-    public static final OfficialComponent SOLRJ =  new OfficialComponent(63, "solrj");
-
     private static ComponentsDefine INSTANCE = new ComponentsDefine();
 
     private String[] components;
@@ -181,7 +179,6 @@ public class ComponentsDefine {
         addComponent(VERTX);
         addComponent(SPRING_CLOUD_GATEWAY);
         addComponent(RESTEASY);
-        addComponent(SOLRJ);
     }
 
     private void addComponent(OfficialComponent component) {
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 a1e4f81..14ef3a0 100644
--- 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
@@ -193,17 +193,5 @@ public class Config {
              */
             public static boolean USE_QUALIFIED_NAME_AS_OPERATION_NAME = false;
         }
-
-        public static class SolrJ {
-            /**
-             * If true, trace all the query parameters(include deleteByIds and deleteByQuery) in Solr query request, default is false.
-             */
-            public static boolean TRACE_STATEMENT = false;
-
-            /**
-             * If true, trace all the operation parameters in Solr request, default is false.
-             */
-            public static boolean TRACE_OPS_PARAMS = false;
-        }
     }
 }
diff --git a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/TraceSegmentServiceClient.java b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/TraceSegmentServiceClient.java
index 0422cca..221d982 100644
--- a/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/TraceSegmentServiceClient.java
+++ b/apm-sniffer/apm-agent-core/src/main/java/org/apache/skywalking/apm/agent/core/remote/TraceSegmentServiceClient.java
@@ -72,6 +72,7 @@ public class TraceSegmentServiceClient implements BootService, IConsumer<TraceSe
 
     @Override
     public void shutdown() throws Throwable {
+        TracingContext.ListenerManager.remove(this);
         carrier.shutdownConsumers();
     }
 
diff --git a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/TracingContextTest.java b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/TracingContextTest.java
index ae33e95..0943107 100644
--- a/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/TracingContextTest.java
+++ b/apm-sniffer/apm-agent-core/src/test/java/org/apache/skywalking/apm/agent/core/context/TracingContextTest.java
@@ -39,28 +39,34 @@ public class TracingContextTest {
     @Test
     public void testSpanLimit() {
         final boolean[] dataReceived = {false};
-        TracingContext.ListenerManager.add(new TracingContextListener() {
+        TracingContextListener listener = new TracingContextListener() {
             @Override public void afterFinished(TraceSegment traceSegment) {
                 dataReceived[0] = true;
             }
-        });
-        TracingContext tracingContext = new TracingContext();
-        AbstractSpan span = tracingContext.createEntrySpan("/url");
+        };
+        TracingContext.ListenerManager.add(listener);
+        try {
+            TracingContext tracingContext = new TracingContext();
+            AbstractSpan span = tracingContext.createEntrySpan("/url");
 
-        for (int i = 0; i < 10; i++) {
-            AbstractSpan localSpan = tracingContext.createLocalSpan("/java-bean");
+            for (int i = 0; i < 10; i++) {
+                AbstractSpan localSpan = tracingContext.createLocalSpan("/java-bean");
 
-            for (int j = 0; j < 100; j++) {
-                AbstractSpan exitSpan = tracingContext.createExitSpan("/redis","localhost");
-                tracingContext.stopSpan(exitSpan);
+                for (int j = 0; j < 100; j++) {
+                    AbstractSpan exitSpan = tracingContext.createExitSpan("/redis", "localhost");
+                    tracingContext.stopSpan(exitSpan);
+                }
+
+                tracingContext.stopSpan(localSpan);
             }
 
-            tracingContext.stopSpan(localSpan);
-        }
+            tracingContext.stopSpan(span);
 
-        tracingContext.stopSpan(span);
+            Assert.assertTrue(dataReceived[0]);
+        } finally {
+            TracingContext.ListenerManager.remove(listener);
+        }
+    }
 
 
-        Assert.assertTrue(dataReceived[0]);
-    }
 }
diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml
index 71725d3..e850ccd 100644
--- a/apm-sniffer/apm-sdk-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/pom.xml
@@ -73,7 +73,6 @@
         <module>dubbo-2.7.x-conflict-patch</module>
         <module>vertx-plugins</module>
         <module>resteasy-plugin</module>
-        <module>solrj-7.x-plugin</module>
     </modules>
     <packaging>pom</packaging>
 
@@ -183,4 +182,4 @@
             </plugin>
         </plugins>
     </build>
-</project>
\ No newline at end of file
+</project>
diff --git a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/pom.xml
deleted file mode 100644
index 31b931a..0000000
--- a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/pom.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Licensed to the Apache Software Foundation (ASF) under one or more
-  ~ contributor license agreements.  See the NOTICE file distributed with
-  ~ this work for additional information regarding copyright ownership.
-  ~ The ASF licenses this file to You under the Apache License, Version 2.0
-  ~ (the "License"); you may not use this file except in compliance with
-  ~ the License.  You may obtain a copy of the License at
-  ~
-  ~     http://www.apache.org/licenses/LICENSE-2.0
-  ~
-  ~ Unless required by applicable law or agreed to in writing, software
-  ~ distributed under the License is distributed on an "AS IS" BASIS,
-  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  ~ See the License for the specific language governing permissions and
-  ~ limitations under the License.
-  ~
-  -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <parent>
-        <artifactId>apm-sdk-plugin</artifactId>
-        <groupId>org.apache.skywalking</groupId>
-        <version>6.2.0-SNAPSHOT</version>
-    </parent>
-    <modelVersion>4.0.0</modelVersion>
-
-    <artifactId>apm-solrj-7.x-plugin</artifactId>
-    <packaging>jar</packaging>
-
-    <name>solrj-7.x-plugin</name>
-    <url>http://maven.apache.org</url>
-
-    <properties>
-        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <solr-solrj.version>7.7.1</solr-solrj.version>
-	</properties>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.apache.solr</groupId>
-            <artifactId>solr-solrj</artifactId>
-            <version>${solr-solrj.version}</version>
-            <scope>provided</scope>
-        </dependency>
-    </dependencies>
-
-</project>
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/SolrConnectorInterceptor.java b/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/SolrConnectorInterceptor.java
deleted file mode 100644
index d6c00b5..0000000
--- a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/SolrConnectorInterceptor.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.apm.plugin.solrj;
-
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.skywalking.apm.agent.core.context.CarrierItem;
-import org.apache.skywalking.apm.agent.core.context.ContextCarrier;
-import org.apache.skywalking.apm.agent.core.context.ContextManager;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
-
-import java.lang.reflect.Method;
-
-public class SolrConnectorInterceptor implements InstanceMethodsAroundInterceptor {
-
-    @Override
-    public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes,
-                             MethodInterceptResult result) throws Throwable {
-        HttpUriRequest request = (HttpUriRequest) allArguments[0];
-
-        ContextCarrier carrier = new ContextCarrier();
-        ContextManager.inject(carrier);
-
-        CarrierItem items = carrier.items();
-        while (items.hasNext()) {
-            items = items.next();
-            request.setHeader(items.getHeadKey(), items.getHeadValue());
-        }
-    }
-
-    @Override
-    public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes,
-                              Object ret) throws Throwable {
-        return ret;
-    }
-
-    @Override
-    public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments, Class<?>[] argumentsTypes, Throwable t) {
-        if (ContextManager.isActive()) {
-            ContextManager.activeSpan().errorOccurred().log(t);
-        }
-    }
-}
diff --git a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/commons/SolrjInstance.java b/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/commons/SolrjInstance.java
deleted file mode 100644
index 91e4cfb..0000000
--- a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/commons/SolrjInstance.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.apm.plugin.solrj.commons;
-
-public class SolrjInstance {
-    private String collection = "Unknown";
-    private String remotePeer = "Unknown";
-
-    public String getCollection() {
-        return collection;
-    }
-
-    public void setCollection(String collection) {
-        this.collection = collection;
-    }
-
-    public String getRemotePeer() {
-        return remotePeer;
-    }
-
-    public void setRemotePeer(String remotePeer) {
-        this.remotePeer = remotePeer;
-    }
-}
diff --git a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/commons/SolrjTags.java b/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/commons/SolrjTags.java
deleted file mode 100644
index 3040b85..0000000
--- a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/commons/SolrjTags.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.apm.plugin.solrj.commons;
-
-import org.apache.skywalking.apm.agent.core.context.tag.StringTag;
-
-public class SolrjTags {
-    public static StringTag TAG_QT = new StringTag("qt");
-    public static StringTag TAG_COLLECTION = new StringTag("collection");
-
-    public static StringTag TAG_Q_TIME = new StringTag("QTime");
-    public static StringTag TAG_STATUS = new StringTag("status");
-
-    public static StringTag TAG_START = new StringTag("start");
-    public static StringTag TAG_SORT_BY = new StringTag("sort");
-    public static StringTag TAG_NUM_FOUND = new StringTag("numFound");
-
-    public static StringTag TAG_SOFT_COMMIT = new StringTag("softCommit");
-    public static StringTag TAG_COMMIT_WITHIN = new StringTag("commitWithin");
-    public static StringTag TAG_MAX_OPTIMIZE_SEGMENTS = new StringTag("maxOptimizeSegs");
-
-    public static StringTag TAG_DOCS_SIZE = new StringTag("docsSize");
-    public static StringTag TAG_DELETE_VALUE = new StringTag("delete.by");
-}
diff --git a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/define/HttpClientInstrumentation.java b/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/define/HttpClientInstrumentation.java
deleted file mode 100644
index 56e752b..0000000
--- a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/define/HttpClientInstrumentation.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.apm.plugin.solrj.define;
-
-import net.bytebuddy.description.method.MethodDescription;
-import net.bytebuddy.matcher.ElementMatcher;
-import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.http.client.methods.HttpUriRequest;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine;
-import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch;
-import org.apache.skywalking.apm.agent.core.plugin.match.NameMatch;
-
-public class HttpClientInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
-    private static String ENHANCE_CLASS = "org.apache.http.impl.client.CloseableHttpClient";
-
-    @Override
-    protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
-        return new ConstructorInterceptPoint[]{};
-    }
-
-    @Override
-    protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() {
-        return new InstanceMethodsInterceptPoint[]{
-            new InstanceMethodsInterceptPoint() {
-                @Override
-                public boolean isOverrideArgs() {
-                    return false;
-                }
-
-                @Override
-                public ElementMatcher<MethodDescription> getMethodsMatcher() {
-                    return ElementMatchers.named("execute").and(ElementMatchers.takesArgument(0, HttpUriRequest.class));
-                }
-
-                @Override
-                public String getMethodsInterceptor() {
-                    return "org.apache.skywalking.apm.plugin.solrj.SolrConnectorInterceptor";
-                }
-            }
-        };
-    }
-
-    @Override
-    protected ClassMatch enhanceClass() {
-        return NameMatch.byName(ENHANCE_CLASS);
-    }
-}
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/define/SolrClientInstrumentation.java b/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/define/SolrClientInstrumentation.java
deleted file mode 100644
index 75f3a2e..0000000
--- a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/java/org/apache/skywalking/apm/plugin/solrj/define/SolrClientInstrumentation.java
+++ /dev/null
@@ -1,75 +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.plugin.solrj.define;
-
-import net.bytebuddy.description.method.MethodDescription;
-import net.bytebuddy.matcher.ElementMatcher;
-import net.bytebuddy.matcher.ElementMatchers;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine;
-import org.apache.skywalking.apm.agent.core.plugin.match.ClassMatch;
-import org.apache.skywalking.apm.agent.core.plugin.match.NameMatch;
-
-public class SolrClientInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
-
-    @Override
-    protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
-        return new ConstructorInterceptPoint[]{
-            new ConstructorInterceptPoint() {
-
-                @Override
-                public String getConstructorInterceptor() {
-                    return "org.apache.skywalking.apm.plugin.solrj.SolrClientInterceptor";
-                }
-
-                @Override
-                public ElementMatcher<MethodDescription> getConstructorMatcher() {
-                    return ElementMatchers.any();
-                }
-            }
-        };
-    }
-
-    @Override
-    protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() {
-        return new InstanceMethodsInterceptPoint[]{
-            new InstanceMethodsInterceptPoint() {
-                @Override
-                public boolean isOverrideArgs() {
-                    return false;
-                }
-
-                @Override
-                public ElementMatcher<MethodDescription> getMethodsMatcher() {
-                    return ElementMatchers.named("request").and(ElementMatchers.takesArguments(3));
-                }
-
-                @Override
-                public String getMethodsInterceptor() {
-                    return "org.apache.skywalking.apm.plugin.solrj.SolrClientInterceptor";
-                }
-            }
-        };
-    }
-
-    @Override
-    protected ClassMatch enhanceClass() {
-        return NameMatch.byName("org.apache.solr.client.solrj.impl.HttpSolrClient");
-    }
-}
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/resources/skywalking-plugin.def
deleted file mode 100644
index fd2fd6c..0000000
--- a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/main/resources/skywalking-plugin.def
+++ /dev/null
@@ -1,18 +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.
-
-solrj-7.x=org.apache.skywalking.apm.plugin.solrj.define.SolrClientInstrumentation
-solrj-7.x=org.apache.skywalking.apm.plugin.solrj.define.HttpClientInstrumentation
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/solrj/SolrClientInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/solrj/SolrClientInterceptorTest.java
deleted file mode 100644
index c7311a8..0000000
--- a/apm-sniffer/apm-sdk-plugin/solrj-7.x-plugin/src/test/java/org/apache/skywalking/apm/plugin/solrj/SolrClientInterceptorTest.java
+++ /dev/null
@@ -1,428 +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.plugin.solrj;
-
-import com.google.common.collect.Lists;
-import org.apache.skywalking.apm.agent.core.conf.Config;
-import org.apache.skywalking.apm.agent.core.context.trace.AbstractSpan;
-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;
-import org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.apache.skywalking.apm.agent.test.helper.SegmentHelper;
-import org.apache.skywalking.apm.agent.test.tools.*;
-import org.apache.skywalking.apm.network.trace.component.ComponentsDefine;
-import org.apache.skywalking.apm.plugin.solrj.commons.SolrjInstance;
-import org.apache.solr.client.solrj.ResponseParser;
-import org.apache.solr.client.solrj.SolrRequest;
-import org.apache.solr.client.solrj.impl.HttpSolrClient;
-import org.apache.solr.client.solrj.request.AbstractUpdateRequest;
-import org.apache.solr.client.solrj.request.QueryRequest;
-import org.apache.solr.client.solrj.request.UpdateRequest;
-import org.apache.solr.common.*;
-import org.apache.solr.common.params.ModifiableSolrParams;
-import org.apache.solr.common.util.NamedList;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.powermock.modules.junit4.PowerMockRunner;
-import org.powermock.modules.junit4.PowerMockRunnerDelegate;
-
-import java.lang.reflect.Method;
-import java.util.List;
-
-import static org.mockito.Mockito.when;
-
-@RunWith(PowerMockRunner.class)
-@PowerMockRunnerDelegate(TracingSegmentRunner.class)
-public class SolrClientInterceptorTest {
-    SolrClientInterceptor interceptor = new SolrClientInterceptor();
-
-    @SegmentStoragePoint
-    private SegmentStorage segmentStorage;
-
-    @Rule
-    public AgentServiceRule serviceRule = new AgentServiceRule();
-
-    @Mock
-    private HttpSolrClient client;
-
-    @Mock
-    private Method method;
-
-    @Mock
-    private EnhancedInstance enhancedInstance;
-
-    private Object[] arguments = null;
-    private Class[] argumentType = new Class[] {
-        SolrRequest.class,
-        ResponseParser.class,
-        String.class
-    };
-    private String collection = null;
-    private HttpSolrClient.Builder builder;
-
-    @Mock
-    private SolrjInstance instance;
-    private NamedList<Object> header;
-
-    @Before
-    public void setup() throws Exception {
-        builder = new HttpSolrClient.Builder().withBaseSolrUrl("http://solr-server:8983/solr/collection");
-        enhancedInstance = new EnhanceHttpSolrClient(builder);
-
-        when(instance.getCollection()).thenReturn("collection");
-        when(instance.getRemotePeer()).thenReturn("solr-server:8983");
-        enhancedInstance.setSkyWalkingDynamicField(instance);
-
-        header = new NamedList<Object>();
-        header.add("status", 0);
-        header.add("QTime", 5);
-
-//        Config.Plugin.SolrJ.TRACE_STATEMENT = true;
-//        Config.Plugin.SolrJ.TRACE_OPS_PARAMS = true;
-    }
-
-
-    @Test
-    public void testConstructor() throws Throwable {
-        arguments = new Object[] {builder};
-        interceptor.onConstruct(enhancedInstance, arguments);
-        SolrjInstance instance = (SolrjInstance) enhancedInstance.getSkyWalkingDynamicField();
-        Assert.assertEquals(instance.getRemotePeer(), "solr-server:8983");
-        Assert.assertEquals(instance.getCollection(), "collection");
-    }
-
-
-    @Test
-    public void testUpdateWithAdd() throws Throwable {
-        UpdateRequest request = new UpdateRequest();
-        List<SolrInputDocument> docs = Lists.newArrayList();
-        for (int start = 0; start < 100; start++) {
-            SolrInputDocument doc = new SolrInputDocument();
-            doc.addField("id", start);
-            docs.add(doc);
-        }
-        arguments = new Object[] {
-            request.add(docs),
-            null,
-            collection
-        };
-        interceptor.beforeMethod(enhancedInstance, method, arguments, argumentType, null);
-        interceptor.afterMethod(enhancedInstance, method, arguments, argumentType, getResponse());
-
-        List<TraceSegment> segments = segmentStorage.getTraceSegments();
-        Assert.assertEquals(segments.size(), 1);
-
-        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(segments.get(0));
-        Assert.assertEquals(spans.size(), 1);
-
-        AbstractTracingSpan span = spans.get(0);
-        int pox = 0;
-        if (Config.Plugin.SolrJ.TRACE_STATEMENT) {
-            SpanAssert.assertTag(span, ++pox, "100");
-        }
-        if (Config.Plugin.SolrJ.TRACE_OPS_PARAMS) {
-            SpanAssert.assertTag(span, ++pox, "-1");
-        }
-        spanCommonAssert(span, pox,"solrJ/collection/update/ADD");
-    }
-
-    @Test
-    public void testUpdateWithCommit() throws Throwable {
-        final boolean softCommit = false;
-        AbstractUpdateRequest request = (new UpdateRequest()).setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true, false);
-        arguments = new Object[]{
-            request,
-            null,
-            collection
-        };
-        interceptor.beforeMethod(enhancedInstance, method, arguments, argumentType, null);
-        interceptor.afterMethod(enhancedInstance, method, arguments, argumentType, getResponse());
-
-        List<TraceSegment> segments = segmentStorage.getTraceSegments();
-        Assert.assertEquals(segments.size(), 1);
-
-        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(segments.get(0));
-        Assert.assertEquals(spans.size(), 1);
-
-        int start = 0;
-        AbstractTracingSpan span = spans.get(0);
-        if (Config.Plugin.SolrJ.TRACE_OPS_PARAMS) {
-            SpanAssert.assertTag(span, ++start, String.valueOf(softCommit));
-        }
-        spanCommonAssert(span, start, "solrJ/collection/update/COMMIT");
-    }
-
-    @Test
-    public void testUpdateWithOptimize() throws Throwable {
-        final int maxSegments = 1;
-        AbstractUpdateRequest request = (new UpdateRequest()).setAction(AbstractUpdateRequest.ACTION.OPTIMIZE, false, true, maxSegments);
-        arguments = new Object[]{
-            request,
-            null,
-            collection
-        };
-        interceptor.beforeMethod(enhancedInstance, method, arguments, argumentType, null);
-        interceptor.afterMethod(enhancedInstance, method, arguments, argumentType, getResponse());
-
-        List<TraceSegment> segments = segmentStorage.getTraceSegments();
-        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(segments.get(0));
-
-        Assert.assertEquals(segments.size(), 1);
-        Assert.assertEquals(spans.size(), 1);
-
-        AbstractTracingSpan span = spans.get(0);
-        int start = 0;
-        if (Config.Plugin.SolrJ.TRACE_OPS_PARAMS) {
-            SpanAssert.assertTag(span, ++start, String.valueOf(maxSegments));
-        }
-        spanCommonAssert(span, start, "solrJ/collection/update/OPTIMIZE");
-    }
-
-    @Test
-    public void testQuery() throws Throwable {
-        QueryRequest request = new QueryRequest();
-        arguments = new Object[] {
-            request,
-            null,
-            collection
-        };
-
-        interceptor.beforeMethod(enhancedInstance, method, arguments, argumentType, null);
-        interceptor.afterMethod(enhancedInstance, method, arguments, argumentType, getQueryResponse());
-
-        List<TraceSegment> segments = segmentStorage.getTraceSegments();
-        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(segments.get(0));
-
-        Assert.assertEquals(segments.size(), 1);
-        Assert.assertEquals(spans.size(), 1);
-
-        AbstractTracingSpan span = spans.get(0);
-        querySpanAssert(span, "/select", 100, "solrJ/collection/select");
-    }
-
-    @Test
-    public void testGet() throws Throwable {
-        ModifiableSolrParams reqParams = new ModifiableSolrParams();
-        if (StringUtils.isEmpty(reqParams.get("qt"))) {
-            reqParams.set("qt", new String[]{"/get"});
-        }
-        reqParams.set("ids", new String[] {"99", "98"});
-        QueryRequest request = new QueryRequest(reqParams);
-
-        arguments = new Object[] {
-            request,
-            null,
-            collection
-        };
-        interceptor.beforeMethod(enhancedInstance, method, arguments, argumentType, null);
-        interceptor.afterMethod(enhancedInstance, method, arguments, argumentType, getGetResponse());
-
-        List<TraceSegment> segments = segmentStorage.getTraceSegments();
-        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(segments.get(0));
-        Assert.assertEquals(segments.size(), 1);
-        Assert.assertEquals(spans.size(), 1);
-
-        AbstractTracingSpan span = spans.get(0);
-        querySpanAssert(span, "/get", 1, "solrJ/collection/get");
-    }
-
-    @Test
-    public void testDeleteById() throws Throwable {
-        UpdateRequest request = new UpdateRequest();
-        arguments = new Object[] {
-            request.deleteById("12"),
-            null,
-            collection
-        };
-        interceptor.beforeMethod(enhancedInstance, method, arguments, argumentType, null);
-        interceptor.afterMethod(enhancedInstance, method, arguments, argumentType, getResponse());
-
-        List<TraceSegment> segments = segmentStorage.getTraceSegments();
-        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(segments.get(0));
-
-        Assert.assertEquals(segments.size(), 1);
-        Assert.assertEquals(spans.size(), 1);
-
-        AbstractTracingSpan span = spans.get(0);
-        spanDeleteAssert(span, "solrJ/collection/update/DELETE_BY_IDS", "[12]");
-    }
-
-    @Test
-    public void testDeleteByQuery() throws Throwable {
-        UpdateRequest request = new UpdateRequest();
-        arguments = new Object[] {
-            request.deleteByQuery("id:[2 TO 5]"),
-            null,
-            collection
-        };
-        interceptor.beforeMethod(enhancedInstance, method, arguments, argumentType, null);
-        interceptor.afterMethod(enhancedInstance, method, arguments, argumentType, getResponse());
-
-        List<TraceSegment> segments = segmentStorage.getTraceSegments();
-        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(segments.get(0));
-
-        Assert.assertEquals(segments.size(), 1);
-        Assert.assertEquals(spans.size(), 1);
-
-        AbstractTracingSpan span = spans.get(0);
-        spanDeleteAssert(span, "solrJ/collection/update/DELETE_BY_QUERY", "[id:[2 TO 5]]");
-    }
-
-    @Test
-    public void testException() throws Throwable {
-        QueryRequest request = new QueryRequest();
-        arguments = new Object[] {
-            request,
-            null,
-            collection
-        };
-        NamedList<Object> response = new NamedList<Object>();
-        NamedList<Object> header = new NamedList<Object>();
-        header.add("status", 500);
-        header.add("QTime", 5);
-        response.add("responseHeader", header);
-
-        interceptor.beforeMethod(enhancedInstance, method, arguments, argumentType, null);
-        interceptor.handleMethodException(enhancedInstance, method, arguments, argumentType,
-                new SolrException(SolrException.ErrorCode.SERVER_ERROR, "for test",  new Exception()));
-        interceptor.afterMethod(enhancedInstance, method, arguments, argumentType, response);
-
-        List<TraceSegment> segments = segmentStorage.getTraceSegments();
-        List<AbstractTracingSpan> spans = SegmentHelper.getSpans(segments.get(0));
-
-        Assert.assertEquals(segments.size(), 1);
-        Assert.assertEquals(spans.size(), 1);
-
-        AbstractTracingSpan span = spans.get(0);
-        SpanAssert.assertOccurException(span, true);
-    }
-
-
-
-    private void querySpanAssert(AbstractSpan span, String qt, int numFound, String operationName) {
-        Assert.assertEquals(span.getOperationName(), operationName);
-        SpanAssert.assertTag(span, 0, "Solr");
-        SpanAssert.assertTag(span, 1, "0");
-        SpanAssert.assertTag(span, 2, qt);
-
-        int start = 3;
-        if (Config.Plugin.SolrJ.TRACE_STATEMENT) {
-            start++;
-        }
-        SpanAssert.assertTag(span, start++, "5");
-        SpanAssert.assertTag(span, start++, String.valueOf(numFound));
-    }
-
-    private void spanCommonAssert(AbstractSpan span, int start, String operationName) {
-        SpanAssert.assertComponent(span, ComponentsDefine.SOLRJ);
-        SpanAssert.assertOccurException(span, false);
-        SpanAssert.assertLogSize(span, 0);
-        SpanAssert.assertLayer(span, SpanLayer.DB);
-
-        SpanAssert.assertTag(span, 0, "Solr");
-        SpanAssert.assertTag(span, start + 1, "5");
-
-        Assert.assertEquals(span.getOperationName(), operationName);
-    }
-
-    private void spanDeleteAssert(AbstractSpan span, String operationName, String statement) {
-        Assert.assertEquals(span.getOperationName(), operationName);
-        SpanAssert.assertComponent(span, ComponentsDefine.SOLRJ);
-        SpanAssert.assertOccurException(span, false);
-        SpanAssert.assertLogSize(span, 0);
-        SpanAssert.assertLayer(span, SpanLayer.DB);
-
-        SpanAssert.assertTag(span, 0, "Solr");
-
-        int start = 0;
-        if (Config.Plugin.SolrJ.TRACE_STATEMENT) {
-            SpanAssert.assertTag(span, ++start, statement);
-        }
-        if (Config.Plugin.SolrJ.TRACE_OPS_PARAMS) {
-            SpanAssert.assertTag(span, ++start, "-1");
-        }
-
-        SpanAssert.assertTag(span, start + 1, "5");
-    }
-
-    private NamedList<Object> getResponse() {
-        NamedList<Object> response = new NamedList<Object>();
-        response.add("responseHeader", header);
-        return response;
-    }
-
-    private NamedList<Object> getQueryResponse() {
-        NamedList<Object> response = new NamedList<Object>();
-        response.add("responseHeader", header);
-        SolrDocumentList list = new SolrDocumentList();
-        list.setStart(0);
-        list.setNumFound(100);
-        list.setMaxScore(.0f);
-
-        for (int start = 0; start < 10; start++) {
-            SolrDocument doc = new SolrDocument();
-            doc.addField("id", start);
-            doc.addField("_version", 1634676349644832768L);
-            list.add(doc);
-        }
-        response.add("response", list);
-        return response;
-    }
-
-    private NamedList<Object> getGetResponse() {
-        NamedList<Object> response = new NamedList<Object>();
-        response.add("responseHeader", header);
-        SolrDocumentList list = new SolrDocumentList();
-        list.setStart(0);
-        list.setNumFound(1);
-        list.setMaxScore(.0f);
-
-        SolrDocument doc = new SolrDocument();
-        doc.addField("id", 1);
-        doc.addField("_version", 1634676349644832768L);
-        list.add(doc);
-
-        response.add("response", list);
-        return response;
-    }
-
-    class EnhanceHttpSolrClient extends HttpSolrClient implements EnhancedInstance {
-        Object value = null;
-
-        protected EnhanceHttpSolrClient(Builder builder) {
-            super(builder);
-        }
-
-        @Override
-        public Object getSkyWalkingDynamicField() {
-            return value;
-        }
-
-        @Override
-        public void setSkyWalkingDynamicField(Object value) {
-            this.value = value;
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/docs/en/setup/service-agent/java-agent/README.md b/docs/en/setup/service-agent/java-agent/README.md
index 9b727d5..a14cd44 100644
--- a/docs/en/setup/service-agent/java-agent/README.md
+++ b/docs/en/setup/service-agent/java-agent/README.md
@@ -82,8 +82,6 @@ property key | Description | Default |
 `plugin.elasticsearch.trace_dsl`|If true, trace all the DSL(Domain Specific Language) in ElasticSearch access, default is false.|`false`|
 `plugin.springmvc.use_qualified_name_as_endpoint_name`|If true, the fully qualified method name will be used as the endpoint name instead of the request URL, default is false.|`false`|
 `plugin.toolit.use_qualified_name_as_operation_name`|If true, the fully qualified method name will be used as the operation name instead of the given operation name, default is false.|`false`|
-`plugin.solrj.trace_statement`|If true, trace all the query parameters(include deleteByIds and deleteByQuery) in Solr query request, default is false.|`false`|
-`plugin.solrj.trace_ops_params`|If true, trace all the operation parameters in Solr request, default is false.|`false`|
 
 ## Optional Plugins
 Java agent plugins are all pluggable. Optional plugins could be provided in `optional-plugins` folder under agent or 3rd party repositores.
diff --git a/docs/en/setup/service-agent/java-agent/Supported-list.md b/docs/en/setup/service-agent/java-agent/Supported-list.md
index dcfda3d..2baf906 100644
--- a/docs/en/setup/service-agent/java-agent/Supported-list.md
+++ b/docs/en/setup/service-agent/java-agent/Supported-list.md
@@ -53,7 +53,6 @@
     * [Xmemcached](https://github.com/killme2008/xmemcached) 2.x
   * [Elasticsearch](https://github.com/elastic/elasticsearch)
     * [transport-client](https://github.com/elastic/elasticsearch/tree/master/client/transport) 5.2.x-5.6.x
-  * [SolrJ](https://lucene.apache.org/solr) 7.0.0-7.7.1
 * Service Discovery
   * [Netflix Eureka](https://github.com/Netflix/eureka)
 * Distributed Coordination
diff --git a/oap-server/server-core/src/test/resources/component-libraries.yml b/oap-server/server-core/src/test/resources/component-libraries.yml
index 86d29e5..97733d8 100644
--- a/oap-server/server-core/src/test/resources/component-libraries.yml
+++ b/oap-server/server-core/src/test/resources/component-libraries.yml
@@ -198,12 +198,6 @@ spring-cloud-gateway:
 RESTEasy:
   id: 62
   languages: Java
-SolrJ:
-  id: 63
-  languages: Java
-Solr:
-  id: 64
-  languages: Java
 
 # .NET/.NET Core components
 # [3000, 4000) for C#/.NET only
@@ -301,4 +295,3 @@ Component-Server-Mappings:
   Pomelo.EntityFrameworkCore.MySql: Mysql
   Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL
   transport-client: Elasticsearch
-  SolrJ: Solr
diff --git a/oap-server/server-starter/src/main/resources/component-libraries.yml b/oap-server/server-starter/src/main/resources/component-libraries.yml
index 87e213f..4d95988 100644
--- a/oap-server/server-starter/src/main/resources/component-libraries.yml
+++ b/oap-server/server-starter/src/main/resources/component-libraries.yml
@@ -216,12 +216,6 @@ spring-cloud-gateway:
 RESTEasy:
   id: 62
   languages: Java
-SolrJ:
-  id: 63
-  languages: Java
-Solr:
-  id: 64
-  languages: Java
 
 # .NET/.NET Core components
 # [3000, 4000) for C#/.NET only
@@ -321,4 +315,3 @@ Component-Server-Mappings:
   Pomelo.EntityFrameworkCore.MySql: Mysql
   Npgsql.EntityFrameworkCore.PostgreSQL: PostgreSQL
   transport-client: Elasticsearch
-  SolrJ: Solr