From 88d2e4060fd3eb72867e9c4ce0bfbfcd4e5c11a7 Mon Sep 17 00:00:00 2001 From: Hoonmin Kim Date: Wed, 11 Jun 2014 06:33:31 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B9=80=ED=9B=88=EB=AF=BC]=20#37=20memcached?= =?UTF-8?q?=20client=20=EB=B2=84=EC=A0=84=20=EC=B2=B4=ED=81=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@4010 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../profiler/modifier/arcus/SpyVersion.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/main/java/com/nhn/pinpoint/profiler/modifier/arcus/SpyVersion.java diff --git a/src/main/java/com/nhn/pinpoint/profiler/modifier/arcus/SpyVersion.java b/src/main/java/com/nhn/pinpoint/profiler/modifier/arcus/SpyVersion.java new file mode 100644 index 000000000..76c176a58 --- /dev/null +++ b/src/main/java/com/nhn/pinpoint/profiler/modifier/arcus/SpyVersion.java @@ -0,0 +1,40 @@ +package com.nhn.pinpoint.profiler.modifier.arcus; + +import com.nhn.pinpoint.profiler.interceptor.bci.InstrumentClass; + +public enum SpyVersion { + + SPYMEMCACHED_2_11, + ARCUSCLIENT_1_6, + ERROR + ; + + public SpyVersion identifyWithMemcachedConnection(InstrumentClass aClass) { + String className = aClass.getName(); + if (! "net/spy/memcached/MemcachedConnection".equals(className)) { + return ERROR; + } + + String[] createConnectionArgs = {"java.util.Collection"}; + boolean isSpy = aClass.hasDeclaredMethod("createConnection", createConnectionArgs); + + if (isSpy) { + return SPYMEMCACHED_2_11; + } else { + return ARCUSCLIENT_1_6; + } + } + + public SpyVersion identifyWithMemcachedClient(InstrumentClass aClass) { + String className = aClass.getName(); + if (! "net/spy/memcached/MemcachedClient".equals(className)) { + return ERROR; + } + + String[] addOpArgs = {"java.lang.String", "net.spy.memcached.ops.Operation"}; + boolean isArcus = aClass.hasDeclaredMethod("addOp", addOpArgs); + + return SPYMEMCACHED_2_11; + } + +}