clean unnecessarily asm dep

This commit is contained in:
hengyunabc
2020-05-27 15:00:29 +08:00
parent 45cc29694f
commit fcb1136063
8 changed files with 10 additions and 171 deletions
-8
View File
@@ -139,14 +139,6 @@
<artifactId>arthas-tunnel-client</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba.middleware</groupId>
<artifactId>termd-core</artifactId>
@@ -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];
@@ -1,118 +0,0 @@
package com.taobao.arthas.core.advisor;
import org.objectweb.asm.Opcodes;
import org.objectweb.asm.commons.AdviceAdapter;
/**
* ASM代码锁<br/>
* 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();
}
}
/*
* 重置索引<br/>
* 一般在代码序列判断失败时,则会对索引进行重置,冲头开始匹配特征序列
*/
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();
}
}
}
@@ -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
}
);
}
}
@@ -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;
@@ -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("<init>")) {
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;
}
@@ -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;
/**
*
-10
View File
@@ -90,16 +90,6 @@
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>8.0.1</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm-commons</artifactId>
<version>8.0.1</version>
</dependency>
<dependency>
<groupId>org.benf</groupId>
<artifactId>cfr</artifactId>