diff --git a/apm-network/src/main/java/org/skywalking/apm/network/trace/component/ComponentsDefine.java b/apm-network/src/main/java/org/skywalking/apm/network/trace/component/ComponentsDefine.java
index c635c2d2e..b37078faa 100644
--- a/apm-network/src/main/java/org/skywalking/apm/network/trace/component/ComponentsDefine.java
+++ b/apm-network/src/main/java/org/skywalking/apm/network/trace/component/ComponentsDefine.java
@@ -43,10 +43,8 @@ public class ComponentsDefine {
public static final OfficialComponent JETTY_CLIENT = new OfficialComponent(18, "JettyClient");
- public static final OfficialComponent JETTY_SERVER = new OfficialComponent(19, "JettyServer");
-
- public static final OfficialComponent MEMCACHE = new OfficialComponent(20, "Memcache");
-
+ public static final OfficialComponent JETTY_SERVER = new OfficialComponent(19, "JettyServer");
+
private static ComponentsDefine instance = new ComponentsDefine();
private String[] components;
@@ -56,7 +54,7 @@ public class ComponentsDefine {
}
public ComponentsDefine() {
- components = new String[21];
+ components = new String[20];
addComponent(TOMCAT);
addComponent(HTTPCLIENT);
addComponent(DUBBO);
@@ -76,7 +74,6 @@ public class ComponentsDefine {
addComponent(NUTZ_HTTP);
addComponent(JETTY_CLIENT);
addComponent(JETTY_SERVER);
- addComponent(MEMCACHE);
}
private void addComponent(OfficialComponent component) {
@@ -90,4 +87,4 @@ public class ComponentsDefine {
return components[componentId];
}
}
-}
\ No newline at end of file
+}
diff --git a/apm-sniffer/apm-agent/pom.xml b/apm-sniffer/apm-agent/pom.xml
index 064e0917c..de97031ce 100644
--- a/apm-sniffer/apm-agent/pom.xml
+++ b/apm-sniffer/apm-agent/pom.xml
@@ -125,11 +125,6 @@
apm-jetty-server-9.x-plugin
${project.version}
-
- org.skywalking
- apm-spymemcached-2.x-plugin
- ${project.version}
-
diff --git a/apm-sniffer/apm-sdk-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/pom.xml
index 145822656..976ca663c 100644
--- a/apm-sniffer/apm-sdk-plugin/pom.xml
+++ b/apm-sniffer/apm-sdk-plugin/pom.xml
@@ -26,7 +26,6 @@
struts2-2.x-plugin
nutz-plugins
jetty-plugin
- spymemcached-2.x-plugin
pom
diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml
deleted file mode 100644
index 784547130..000000000
--- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/pom.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
- 4.0.0
-
- org.skywalking
- apm-sdk-plugin
- 3.2.3-2017
-
-
- apm-spymemcached-2.x-plugin
- spymemcached-2.x-plugin
- http://maven.apache.org
-
-
- UTF-8
- 2.11.1
-
-
-
-
- net.spy
- spymemcached
- ${spymemcached.version}
- provided
-
-
- org.apache.logging.log4j
- log4j-core
- 2.4.1
- test
-
-
-
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedConstructorWithInetSocketAddressListArgInterceptor.java b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedConstructorWithInetSocketAddressListArgInterceptor.java
deleted file mode 100644
index 21457bfee..000000000
--- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedConstructorWithInetSocketAddressListArgInterceptor.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package org.skywalking.apm.plugin.spymemcached.v2;
-
-import java.net.InetSocketAddress;
-import java.util.List;
-
-import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceConstructorInterceptor;
-
-public class MemcachedConstructorWithInetSocketAddressListArgInterceptor implements InstanceConstructorInterceptor {
-
- @Override
- public void onConstruct(EnhancedInstance objInst, Object[] allArguments) {
- StringBuilder memcachConnInfo = new StringBuilder();
- @SuppressWarnings("unchecked")
- List inetSocketAddressList = (List)allArguments[1];
- for (InetSocketAddress inetSocketAddress : inetSocketAddressList) {
- String host = inetSocketAddress.getAddress().getHostAddress();
- int port = inetSocketAddress.getPort();
- memcachConnInfo.append(host + ":" + port).append(";");
- }
- objInst.setSkyWalkingDynamicField(memcachConnInfo.toString());
- }
-}
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptor.java b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptor.java
deleted file mode 100644
index 89a864dab..000000000
--- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptor.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.skywalking.apm.plugin.spymemcached.v2;
-
-import java.lang.reflect.Method;
-
-import org.skywalking.apm.agent.core.context.ContextManager;
-import org.skywalking.apm.agent.core.context.tag.Tags;
-import org.skywalking.apm.agent.core.context.trace.AbstractSpan;
-import org.skywalking.apm.agent.core.context.trace.SpanLayer;
-import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.skywalking.apm.agent.core.plugin.interceptor.enhance.InstanceMethodsAroundInterceptor;
-import org.skywalking.apm.agent.core.plugin.interceptor.enhance.MethodInterceptResult;
-import org.skywalking.apm.network.trace.component.ComponentsDefine;
-
-public class MemcachedMethodInterceptor implements InstanceMethodsAroundInterceptor {
-
- private static final String SPY_MEMCACHE = "SpyMemcached/";
-
- @Override
- public void beforeMethod(EnhancedInstance objInst, Method method, Object[] allArguments,
- Class>[] argumentsTypes, MethodInterceptResult result) throws Throwable {
- String peer = String.valueOf(objInst.getSkyWalkingDynamicField());
- AbstractSpan span = ContextManager.createExitSpan(SPY_MEMCACHE + method.getName(), peer);
- span.setComponent(ComponentsDefine.MEMCACHE);
- Tags.DB_TYPE.set(span, ComponentsDefine.MEMCACHE.getName());
- SpanLayer.asDB(span);
- Tags.DB_STATEMENT.set(span, method.getName() + " " + allArguments[0]);
- }
-
- @Override
- public Object afterMethod(EnhancedInstance objInst, Method method, Object[] allArguments,
- Class>[] argumentsTypes, Object ret) throws Throwable {
- ContextManager.stopSpan();
- return ret;
- }
-
- @Override public void handleMethodException(EnhancedInstance objInst, Method method, Object[] allArguments,
- Class>[] argumentsTypes, Throwable t) {
- AbstractSpan span = ContextManager.activeSpan();
- span.errorOccurred();
- span.log(t);
- }
-}
diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/skywalking/apm/plugin/spymemcached/v2/define/MemcachedInstrumentation.java b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/skywalking/apm/plugin/spymemcached/v2/define/MemcachedInstrumentation.java
deleted file mode 100644
index bbb18baab..000000000
--- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/java/org/skywalking/apm/plugin/spymemcached/v2/define/MemcachedInstrumentation.java
+++ /dev/null
@@ -1,82 +0,0 @@
-package org.skywalking.apm.plugin.spymemcached.v2.define;
-
-import static org.skywalking.apm.agent.core.plugin.match.NameMatch.byName;
-
-import java.util.List;
-
-import org.skywalking.apm.agent.core.plugin.interceptor.ConstructorInterceptPoint;
-import org.skywalking.apm.agent.core.plugin.interceptor.InstanceMethodsInterceptPoint;
-import org.skywalking.apm.agent.core.plugin.interceptor.enhance.ClassInstanceMethodsEnhancePluginDefine;
-import org.skywalking.apm.agent.core.plugin.match.ClassMatch;
-
-import net.bytebuddy.description.method.MethodDescription;
-import net.bytebuddy.matcher.ElementMatcher;
-
-import static net.bytebuddy.matcher.ElementMatchers.named;
-import static net.bytebuddy.matcher.ElementMatchers.takesArgument;
-
-/**
- *
- * {@link MemcachedInstrumentation} presents that skywalking intercept all constructors and methods of
- * {@link net.spy.memcached.MemcachedClient}.
- * {@link XMemcachedConstructorWithInetSocketAddressListArgInterceptor} intercepts the constructor with
- * argument {@link java.net.InetSocketAddress}.
- *
- * @author IluckySi
- *
- */
-public class MemcachedInstrumentation extends ClassInstanceMethodsEnhancePluginDefine {
-
- private static final String ENHANCE_CLASS = "net.spy.memcached.MemcachedClient";
- private static final String CONSTRUCTOR_WITH_INETSOCKETADDRESS_LIST_ARG_INTERCEPT_CLASS = "org.skywalking.apm.plugin.spymemcached.v2.MemcachedConstructorWithInetSocketAddressListArgInterceptor";
- private static final String METHOD_INTERCEPT_CLASS = "org.skywalking.apm.plugin.spymemcached.v2.MemcachedMethodInterceptor";
-
- @Override
- public ClassMatch enhanceClass() {
- return byName(ENHANCE_CLASS);
- }
-
- @Override
- protected ConstructorInterceptPoint[] getConstructorsInterceptPoints() {
- return new ConstructorInterceptPoint[] {
- new ConstructorInterceptPoint() {
- @Override
- public ElementMatcher getConstructorMatcher() {
- return takesArgument(1, List.class);
- }
-
- @Override
- public String getConstructorInterceptor() {
- return CONSTRUCTOR_WITH_INETSOCKETADDRESS_LIST_ARG_INTERCEPT_CLASS;
- }
- }
- };
- }
-
- @Override
- protected InstanceMethodsInterceptPoint[] getInstanceMethodsInterceptPoints() {
- return new InstanceMethodsInterceptPoint[] {
- new InstanceMethodsInterceptPoint() {
- @Override
- public ElementMatcher getMethodsMatcher() {
- return named("touch").or(named("append")) .or(named("prepend")).or(named("asyncCAS"))
- .or(named("cas")) .or(named("add")).or(named("set")).or(named("replace"))
- .or(named("asyncGet")).or(named("asyncGets")).or(named("gets")).or(named("getAndTouch"))
- .or(named("get")).or(named("asyncGetBulk")) .or(named("asyncGetAndTouch"))
- .or(named("getBulk")).or(named("getStats")) .or(named("incr"))
- .or(named("decr")).or(named("asyncIncr")) .or(named("asyncDecr"))
- .or(named("delete"));
- }
-
- @Override
- public String getMethodsInterceptor() {
- return METHOD_INTERCEPT_CLASS;
- }
-
- @Override public boolean isOverrideArgs() {
- return false;
- }
- }
- };
- }
-}
diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/resources/skywalking-plugin.def b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/resources/skywalking-plugin.def
deleted file mode 100644
index f552f1602..000000000
--- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/main/resources/skywalking-plugin.def
+++ /dev/null
@@ -1 +0,0 @@
-spymemcached-2.x=org.skywalking.apm.plugin.spymemcached.v2.define.MemcachedInstrumentation
\ No newline at end of file
diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedConstructorWithInetSocketAddressListArgInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedConstructorWithInetSocketAddressListArgInterceptorTest.java
deleted file mode 100644
index 0d0ee9560..000000000
--- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedConstructorWithInetSocketAddressListArgInterceptorTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.skywalking.apm.plugin.spymemcached.v2;
-
-import static org.mockito.Mockito.times;
-import static org.mockito.Mockito.verify;
-
-import java.net.InetSocketAddress;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.runners.MockitoJUnitRunner;
-import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-
-@RunWith(MockitoJUnitRunner.class)
-public class MemcachedConstructorWithInetSocketAddressListArgInterceptorTest {
-
- private MemcachedConstructorWithInetSocketAddressListArgInterceptor interceptor;
-
- @Mock
- private EnhancedInstance enhancedInstance;
-
- @Before
- public void setUp() throws Exception {
- interceptor = new MemcachedConstructorWithInetSocketAddressListArgInterceptor();
- }
-
- @Test
- public void onConstructWithInetSocketAddressList() {
- List inetSocketAddressList = new ArrayList();
- inetSocketAddressList.add(new InetSocketAddress("127.0.0.1", 11211));
- inetSocketAddressList.add(new InetSocketAddress("127.0.0.2", 11211));
- interceptor.onConstruct(enhancedInstance, new Object[]{null, inetSocketAddressList});
-
- verify(enhancedInstance, times(1)).setSkyWalkingDynamicField("127.0.0.1:11211;127.0.0.2:11211;");
- }
-}
diff --git a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptorTest.java b/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptorTest.java
deleted file mode 100644
index 3ddc3be8c..000000000
--- a/apm-sniffer/apm-sdk-plugin/spymemcached-2.x-plugin/src/test/java/org/skywalking/apm/plugin/spymemcached/v2/MemcachedMethodInterceptorTest.java
+++ /dev/null
@@ -1,121 +0,0 @@
-package org.skywalking.apm.plugin.spymemcached.v2;
-
-import static junit.framework.TestCase.assertNotNull;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.when;
-
-import java.lang.reflect.Method;
-import java.util.List;
-
-import org.hamcrest.CoreMatchers;
-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 org.skywalking.apm.agent.core.context.trace.AbstractTracingSpan;
-import org.skywalking.apm.agent.core.context.trace.LogDataEntity;
-import org.skywalking.apm.agent.core.context.trace.SpanLayer;
-import org.skywalking.apm.agent.core.context.trace.TraceSegment;
-import org.skywalking.apm.agent.core.context.util.KeyValuePair;
-import org.skywalking.apm.agent.core.plugin.interceptor.enhance.EnhancedInstance;
-import org.skywalking.apm.agent.test.helper.SegmentHelper;
-import org.skywalking.apm.agent.test.helper.SpanHelper;
-import org.skywalking.apm.agent.test.tools.AgentServiceRule;
-import org.skywalking.apm.agent.test.tools.SegmentStorage;
-import org.skywalking.apm.agent.test.tools.SegmentStoragePoint;
-import org.skywalking.apm.agent.test.tools.TracingSegmentRunner;
-
-import net.spy.memcached.MemcachedClient;
-
-@RunWith(PowerMockRunner.class)
-@PowerMockRunnerDelegate(TracingSegmentRunner.class)
-public class MemcachedMethodInterceptorTest {
-
- @SegmentStoragePoint
- private SegmentStorage segmentStorage;
- @Rule
- public AgentServiceRule serviceRule = new AgentServiceRule();
- @Mock
- private EnhancedInstance enhancedInstance;
- private MemcachedMethodInterceptor interceptor;
-
- private Object[] allArgument;
- private Class[] argumentType;
-
- @Before
- public void setUp() throws Exception {
- allArgument = new Object[] {"OperationKey", "OperationValue"};
- argumentType = new Class[] {String.class, String.class};
-
- interceptor = new MemcachedMethodInterceptor();
- when(enhancedInstance.getSkyWalkingDynamicField()).thenReturn("127.0.0.1:11211");
- }
-
- @Test
- public void testIntercept() throws Throwable {
- interceptor.beforeMethod(enhancedInstance, getMockSetMethod(), allArgument, argumentType, null);
- interceptor.afterMethod(enhancedInstance, getMockGetMethod(), allArgument, argumentType, null);
-
- TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
- List spans = SegmentHelper.getSpans(traceSegment);
- assertThat(spans.size(), is(1));
- assertMemcacheSpan(spans.get(0));
- }
-
- @Test
- public void testInterceptWithException() throws Throwable {
- interceptor.beforeMethod(enhancedInstance, getMockSetMethod(), allArgument, argumentType, null);
- interceptor.handleMethodException(enhancedInstance, getMockSetMethod(), allArgument, argumentType, new RuntimeException());
- interceptor.afterMethod(enhancedInstance, getMockSetMethod(), allArgument, argumentType, null);
-
- TraceSegment traceSegment = segmentStorage.getTraceSegments().get(0);
- List spans = SegmentHelper.getSpans(traceSegment);
- assertThat(spans.size(), is(1));
- assertMemcacheSpan(spans.get(0));
-
- assertLogData(SpanHelper.getLogs(spans.get(0)));
- }
-
- private void assertLogData(List logDataEntities) {
- assertThat(logDataEntities.size(), is(1));
- LogDataEntity logData = logDataEntities.get(0);
- Assert.assertThat(logData.getLogs().size(), is(4));
- Assert.assertThat(logData.getLogs().get(0).getValue(), CoreMatchers.