diff --git a/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceClazz4Interceptor.java b/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceClazz4Interceptor.java
index deeabc577..b024ff9f2 100644
--- a/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceClazz4Interceptor.java
+++ b/skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceClazz4Interceptor.java
@@ -121,6 +121,7 @@ public class EnhanceClazz4Interceptor {
InterceptPoint[] methodNameList = define.getBeInterceptedMethods();
ClassMethodInterceptor classMethodInterceptor = new ClassMethodInterceptor(
interceptor);
+
for (InterceptPoint method : methodNameList) {
logger.debug("prepare to enhance class {} method [{}] ",
enhanceOriginClassName, method.getMethodName());
@@ -134,6 +135,9 @@ public class EnhanceClazz4Interceptor {
named(method.getMethodName()).and(
takesArguments(method.getArgNum()))).intercept(
MethodDelegation.to(classMethodInterceptor));
+ } else if("*".equals(method.getMethodName())){
+ newClassBuilder = newClassBuilder.method(any()).intercept(
+ MethodDelegation.to(classMethodInterceptor));
} else {
newClassBuilder = newClassBuilder.method(
named(method.getMethodName())).intercept(
diff --git a/skywalking-sdk-plugin/pom.xml b/skywalking-sdk-plugin/pom.xml
index e8c170c98..3e7a1aabd 100644
--- a/skywalking-sdk-plugin/pom.xml
+++ b/skywalking-sdk-plugin/pom.xml
@@ -16,6 +16,7 @@
httpclient-4.3.x-plugin
httpClient-4.x-plugin
httpClient-4.x-plugin-dubbox-rest-attachment
+ jedis-2.x-plugin
pom
diff --git a/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/pom.xml b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/pom.xml
new file mode 100644
index 000000000..8fa4dc6aa
--- /dev/null
+++ b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/pom.xml
@@ -0,0 +1,70 @@
+
+
+ 4.0.0
+
+ com.ai.cloud
+ skywalking-sdk-plugin
+ 1.0-SNAPSHOT
+
+
+ skywalking-jedis-2.x-plugin
+ jar
+
+ jedis-2.x-plugin
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+ com.ai.cloud
+ skywalking-api
+ 1.0-SNAPSHOT
+
+
+
+ redis.clients
+ jedis
+ 2.8.1
+
+
+
+ org.apache.logging.log4j
+ log4j-core
+ 2.4.1
+ test
+
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+
+
+
+
+ maven-compiler-plugin
+
+ 1.7
+ 1.7
+ ${project.build.sourceEncoding}
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 2.4.3
+
+ ${project.build.sourceEncoding}
+
+
+
+
+
diff --git a/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/main/java/org/skywalking/jedis/v2/plugin/JedisInterceptor.java b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/main/java/org/skywalking/jedis/v2/plugin/JedisInterceptor.java
new file mode 100644
index 000000000..297093150
--- /dev/null
+++ b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/main/java/org/skywalking/jedis/v2/plugin/JedisInterceptor.java
@@ -0,0 +1,35 @@
+package org.skywalking.jedis.v2.plugin;
+
+import com.ai.cloud.skywalking.plugin.interceptor.ConstructorInvokeContext;
+import com.ai.cloud.skywalking.plugin.interceptor.EnhancedClassInstanceContext;
+import com.ai.cloud.skywalking.plugin.interceptor.IAroundInterceptor;
+import com.ai.cloud.skywalking.plugin.interceptor.MethodInvokeContext;
+
+public class JedisInterceptor implements IAroundInterceptor{
+
+ @Override
+ public void onConstruct(EnhancedClassInstanceContext context,
+ ConstructorInvokeContext interceptorContext) {
+
+ }
+
+ @Override
+ public void beforeMethod(EnhancedClassInstanceContext context,
+ MethodInvokeContext interceptorContext) {
+
+ }
+
+ @Override
+ public Object afterMethod(EnhancedClassInstanceContext context,
+ MethodInvokeContext interceptorContext, Object ret) {
+ return ret;
+ }
+
+ @Override
+ public void handleMethodException(Throwable t,
+ EnhancedClassInstanceContext context,
+ MethodInvokeContext interceptorContext, Object ret) {
+
+ }
+
+}
diff --git a/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/main/java/org/skywalking/jedis/v2/plugin/define/JedisPluginDefine.java b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/main/java/org/skywalking/jedis/v2/plugin/define/JedisPluginDefine.java
new file mode 100644
index 000000000..7c54cad3b
--- /dev/null
+++ b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/main/java/org/skywalking/jedis/v2/plugin/define/JedisPluginDefine.java
@@ -0,0 +1,26 @@
+package org.skywalking.jedis.v2.plugin.define;
+
+import org.skywalking.jedis.v2.plugin.JedisInterceptor;
+
+import com.ai.cloud.skywalking.plugin.interceptor.IAroundInterceptor;
+import com.ai.cloud.skywalking.plugin.interceptor.InterceptPoint;
+import com.ai.cloud.skywalking.plugin.interceptor.InterceptorDefine;
+
+public class JedisPluginDefine implements InterceptorDefine {
+
+ @Override
+ public String getBeInterceptedClassName() {
+ return "redis.clients.jedis.Jedis";
+ }
+
+ @Override
+ public InterceptPoint[] getBeInterceptedMethods() {
+ return new InterceptPoint[] { new InterceptPoint("*") };
+ }
+
+ @Override
+ public IAroundInterceptor instance() {
+ return new JedisInterceptor();
+ }
+
+}
diff --git a/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/main/resources/skywalking-plugin.def b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/main/resources/skywalking-plugin.def
new file mode 100644
index 000000000..bb7284192
--- /dev/null
+++ b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/main/resources/skywalking-plugin.def
@@ -0,0 +1 @@
+org.skywalking.jedis.v2.plugin.define.JedisPluginDefine
\ No newline at end of file
diff --git a/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/test/java/org/skywalking/jedis/v2/plugin/JedisTest.java b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/test/java/org/skywalking/jedis/v2/plugin/JedisTest.java
new file mode 100644
index 000000000..3e8200564
--- /dev/null
+++ b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/test/java/org/skywalking/jedis/v2/plugin/JedisTest.java
@@ -0,0 +1,23 @@
+package org.skywalking.jedis.v2.plugin;
+
+import java.lang.reflect.InvocationTargetException;
+import java.sql.SQLException;
+
+import org.junit.Test;
+
+import com.ai.cloud.skywalking.plugin.TracingBootstrap;
+
+public class JedisTest {
+
+ @Test
+ public void test() throws IllegalAccessException,
+ IllegalArgumentException, InvocationTargetException,
+ NoSuchMethodException, SecurityException, ClassNotFoundException {
+ TracingBootstrap
+ .main(new String[] { "org.skywalking.jedis.v2.plugin.JedisTest" });
+ }
+
+ public static void main(String[] args) throws ClassNotFoundException,
+ SQLException, InterruptedException {}
+
+}
diff --git a/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/test/resources/log4j2.xml b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/test/resources/log4j2.xml
new file mode 100644
index 000000000..4e2af7485
--- /dev/null
+++ b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/test/resources/log4j2.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/test/resources/sky-walking.auth b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/test/resources/sky-walking.auth
new file mode 100644
index 000000000..c794ea37c
--- /dev/null
+++ b/skywalking-sdk-plugin/skywalking-jedis-2.x-plugin/src/test/resources/sky-walking.auth
@@ -0,0 +1,47 @@
+#skyWalking用户ID
+skywalking.user_id=123
+#skyWalking应用编码
+skywalking.application_code=test
+#skywalking auth的环境变量名字
+skywalking.auth_system_env_name=SKYWALKING_RUN
+#skywalking数据编码
+skywalking.charset=UTF-8
+
+#是否打印数据
+buriedpoint.printf=true
+#埋点异常的最大长度
+buriedpoint.max_exception_stack_length=4000
+#业务字段的最大长度
+buriedpoint.businesskey_max_length=300
+#过滤异常
+buriedpoint.exclusive_exceptions=java.lang.RuntimeException
+
+#最大发送者的连接数阀比例
+sender.connect_percent=100
+#发送服务端配置
+sender.servers_addr=127.0.0.1:34000
+#最大发送的副本数量
+sender.max_copy_num=2
+#发送的最大长度
+sender.max_send_length=20000
+#当没有Sender时,尝试获取sender的等待周期
+sender.retry_get_sender_wait_interval=2000
+#是否开启发送消息
+sender.is_off=false
+
+
+#最大消费线程数
+consumer.max_consumer=2
+#消费者最大等待时间
+consumer.max_wait_time=5
+#发送失败等待时间
+consumer.consumer_fail_retry_wait_interval=50
+
+#每个Buffer的最大个数
+buffer.buffer_max_size=18000
+#Buffer池的最大长度
+buffer.pool_size=5
+
+#发送检查线程检查周期
+senderchecker.check_polling_time=200
+