diff --git a/core/pom.xml b/core/pom.xml index e346354a8..f71ef36be 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -139,14 +139,6 @@ arthas-tunnel-client ${project.version} - - org.ow2.asm - asm - - - org.ow2.asm - asm-commons - com.alibaba.middleware termd-core diff --git a/core/src/main/java/com/taobao/arthas/core/advisor/ArthasMethod.java b/core/src/main/java/com/taobao/arthas/core/advisor/ArthasMethod.java index 9339e6c6e..0672c11d6 100644 --- a/core/src/main/java/com/taobao/arthas/core/advisor/ArthasMethod.java +++ b/core/src/main/java/com/taobao/arthas/core/advisor/ArthasMethod.java @@ -4,8 +4,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; -import org.objectweb.asm.Type; - +import com.alibaba.arthas.deps.org.objectweb.asm.Type; import com.taobao.arthas.core.util.StringUtils; /** @@ -31,7 +30,7 @@ public class ArthasMethod { try { ClassLoader loader = this.clazz.getClassLoader(); - final org.objectweb.asm.Type asmType = org.objectweb.asm.Type.getMethodType(methodDesc); + final Type asmType = Type.getMethodType(methodDesc); // to arg types final Class[] argsClasses = new Class[asmType.getArgumentTypes().length]; diff --git a/core/src/main/java/com/taobao/arthas/core/advisor/AsmCodeLock.java b/core/src/main/java/com/taobao/arthas/core/advisor/AsmCodeLock.java deleted file mode 100644 index 250233d85..000000000 --- a/core/src/main/java/com/taobao/arthas/core/advisor/AsmCodeLock.java +++ /dev/null @@ -1,118 +0,0 @@ -package com.taobao.arthas.core.advisor; - -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.commons.AdviceAdapter; - -/** - * ASM代码锁
- * Created by vlinux on 15/5/28. - */ -public class AsmCodeLock implements CodeLock, Opcodes { - - private final AdviceAdapter aa; - - // 锁标记 - private boolean isLook; - - // 代码块开始特征数组 - private final int[] beginCodeArray; - - // 代码块结束特征数组 - private final int[] endCodeArray; - - // 代码匹配索引 - private int index = 0; - - - /** - * 用ASM构建代码锁 - * - * @param aa ASM - * @param beginCodeArray 代码块开始特征数组 - * 字节码流要求不能破坏执行堆栈 - * @param endCodeArray 代码块结束特征数组 - * 字节码流要求不能破坏执行堆栈 - */ - public AsmCodeLock(AdviceAdapter aa, int[] beginCodeArray, int[] endCodeArray) { - if (null == beginCodeArray - || null == endCodeArray - || beginCodeArray.length != endCodeArray.length) { - throw new IllegalArgumentException(); - } - - this.aa = aa; - this.beginCodeArray = beginCodeArray; - this.endCodeArray = endCodeArray; - - } - - @Override - public void code(int code) { - - final int[] codes = isLock() ? endCodeArray : beginCodeArray; - - if (index >= codes.length) { - reset(); - return; - } - - if (codes[index] != code) { - reset(); - return; - } - - if (++index == codes.length) { - // 翻转锁状态 - isLook = !isLook; - reset(); - } - - } - - /* - * 重置索引
- * 一般在代码序列判断失败时,则会对索引进行重置,冲头开始匹配特征序列 - */ - private void reset() { - index = 0; - } - - - private void asm(int opcode) { - aa.visitInsn(opcode); - } - - /** - * 锁定序列 - */ - private void lock() { - for (int op : beginCodeArray) { - asm(op); - } - } - - /* - * 解锁序列 - */ - private void unLock() { - for (int op : endCodeArray) { - asm(op); - } - } - - @Override - public boolean isLock() { - return isLook; - } - - @Override - public void lock(Block block) { - lock(); - try { - block.code(); - } finally { - unLock(); - } - } - -} diff --git a/core/src/main/java/com/taobao/arthas/core/advisor/TracingAsmCodeLock.java b/core/src/main/java/com/taobao/arthas/core/advisor/TracingAsmCodeLock.java deleted file mode 100644 index 89b32cb81..000000000 --- a/core/src/main/java/com/taobao/arthas/core/advisor/TracingAsmCodeLock.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.taobao.arthas.core.advisor; - -import org.objectweb.asm.commons.AdviceAdapter; - -/** - * 用于Tracing的代码锁 - * @author ralf0131 2016-12-28 16:46. - */ -public class TracingAsmCodeLock extends AsmCodeLock { - - public TracingAsmCodeLock(AdviceAdapter aa) { - super( - aa, - new int[]{ - ACONST_NULL, ICONST_0, ICONST_1, SWAP, SWAP, POP2, POP - }, - new int[]{ - ICONST_1, ACONST_NULL, ICONST_0, SWAP, SWAP, POP, POP2 - } - ); - } -} diff --git a/core/src/main/java/com/taobao/arthas/core/command/klass100/RedefineCommand.java b/core/src/main/java/com/taobao/arthas/core/command/klass100/RedefineCommand.java index 10cca2e67..3a09c5d55 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/klass100/RedefineCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/klass100/RedefineCommand.java @@ -10,8 +10,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.objectweb.asm.ClassReader; - +import com.alibaba.arthas.deps.org.objectweb.asm.ClassReader; import com.alibaba.arthas.deps.org.slf4j.Logger; import com.alibaba.arthas.deps.org.slf4j.LoggerFactory; import com.taobao.arthas.core.command.Constants; diff --git a/core/src/main/java/com/taobao/arthas/core/command/klass100/SearchMethodCommand.java b/core/src/main/java/com/taobao/arthas/core/command/klass100/SearchMethodCommand.java index 1f2f58a89..c40e0093f 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/klass100/SearchMethodCommand.java +++ b/core/src/main/java/com/taobao/arthas/core/command/klass100/SearchMethodCommand.java @@ -97,7 +97,7 @@ public class SearchMethodCommand extends AnnotatedCommand { for (Class clazz : matchedClasses) { try { for (Constructor constructor : clazz.getDeclaredConstructors()) { - String methodNameWithDescriptor = org.objectweb.asm.commons.Method.getMethod(constructor).toString(); + String methodNameWithDescriptor = com.alibaba.arthas.deps.org.objectweb.asm.commons.Method.getMethod(constructor).toString(); if (!methodNameMatcher.matching("")) { continue; } @@ -112,7 +112,7 @@ public class SearchMethodCommand extends AnnotatedCommand { } for (Method method : clazz.getDeclaredMethods()) { - String methodNameWithDescriptor = org.objectweb.asm.commons.Method.getMethod(method).toString(); + String methodNameWithDescriptor = com.alibaba.arthas.deps.org.objectweb.asm.commons.Method.getMethod(method).toString(); if (!methodNameMatcher.matching(method.getName())) { continue; } diff --git a/core/src/main/java/com/taobao/arthas/core/command/logger/AsmRenameUtil.java b/core/src/main/java/com/taobao/arthas/core/command/logger/AsmRenameUtil.java index 9c66f66d0..8a3f3da1d 100644 --- a/core/src/main/java/com/taobao/arthas/core/command/logger/AsmRenameUtil.java +++ b/core/src/main/java/com/taobao/arthas/core/command/logger/AsmRenameUtil.java @@ -1,11 +1,10 @@ package com.taobao.arthas.core.command.logger; -import org.objectweb.asm.ClassReader; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.ClassWriter; -import org.objectweb.asm.commons.ClassRemapper; -import org.objectweb.asm.commons.Remapper; -import org.objectweb.asm.commons.SimpleRemapper; +import com.alibaba.arthas.deps.org.objectweb.asm.ClassReader; +import com.alibaba.arthas.deps.org.objectweb.asm.ClassVisitor; +import com.alibaba.arthas.deps.org.objectweb.asm.ClassWriter; +import com.alibaba.arthas.deps.org.objectweb.asm.commons.ClassRemapper; +import com.alibaba.arthas.deps.org.objectweb.asm.commons.SimpleRemapper; /** * diff --git a/pom.xml b/pom.xml index cd0e5e5be..a0e47ec24 100644 --- a/pom.xml +++ b/pom.xml @@ -90,16 +90,6 @@ - - org.ow2.asm - asm - 8.0.1 - - - org.ow2.asm - asm-commons - 8.0.1 - org.benf cfr