Commit 5d7c4150 authored by shengnan hu's avatar shengnan hu
Browse files

init

parents
Pipeline #4715 failed with stage
in 30 seconds
package com.taobao.arthas.core.command.model;
/**
* Result model for CatCommand
* @author gongdewei 2020/5/11
*/
public class CatModel extends ResultModel implements Countable {
private String file;
private String content;
public CatModel() {
}
public CatModel(String file, String content) {
this.file = file;
this.content = content;
}
@Override
public String getType() {
return "cat";
}
public String getFile() {
return file;
}
public void setFile(String file) {
this.file = file;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
@Override
public int size() {
if (content != null) {
//粗略计算行数作为item size
return content.length()/100 + 1;
}
return 0;
}
}
package com.taobao.arthas.core.command.model;
/**
* @author gongdewei 2020/4/16
*/
public class ChangeResultVO {
private String name;
private Object beforeValue;
private Object afterValue;
public ChangeResultVO() {
}
public ChangeResultVO(String name, Object beforeValue, Object afterValue) {
this.name = name;
this.beforeValue = beforeValue;
this.afterValue = afterValue;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Object getBeforeValue() {
return beforeValue;
}
public void setBeforeValue(Object beforeValue) {
this.beforeValue = beforeValue;
}
public Object getAfterValue() {
return afterValue;
}
public void setAfterValue(Object afterValue) {
this.afterValue = afterValue;
}
}
package com.taobao.arthas.core.command.model;
/**
* Class detail VO
* @author gongdewei 2020/4/8
*/
public class ClassDetailVO extends ClassVO {
private String classInfo;
private String codeSource;
private boolean isInterface;
private boolean isAnnotation;
private boolean isEnum;
private boolean isAnonymousClass;
private boolean isArray;
private boolean isLocalClass;
private boolean isMemberClass;
private boolean isPrimitive;
private boolean isSynthetic;
private String simpleName;
private String modifier;
private String[] annotations;
private String[] interfaces;
private String[] superClass;
private FieldVO[] fields;
public String getClassInfo() {
return classInfo;
}
public void setClassInfo(String classInfo) {
this.classInfo = classInfo;
}
public String getCodeSource() {
return codeSource;
}
public void setCodeSource(String codeSource) {
this.codeSource = codeSource;
}
public boolean isInterface() {
return isInterface;
}
public void setInterface(boolean anInterface) {
isInterface = anInterface;
}
public boolean isAnnotation() {
return isAnnotation;
}
public void setAnnotation(boolean annotation) {
isAnnotation = annotation;
}
public boolean isEnum() {
return isEnum;
}
public void setEnum(boolean anEnum) {
isEnum = anEnum;
}
public boolean isAnonymousClass() {
return isAnonymousClass;
}
public void setAnonymousClass(boolean anonymousClass) {
isAnonymousClass = anonymousClass;
}
public boolean isArray() {
return isArray;
}
public void setArray(boolean array) {
isArray = array;
}
public boolean isLocalClass() {
return isLocalClass;
}
public void setLocalClass(boolean localClass) {
isLocalClass = localClass;
}
public boolean isMemberClass() {
return isMemberClass;
}
public void setMemberClass(boolean memberClass) {
isMemberClass = memberClass;
}
public boolean isPrimitive() {
return isPrimitive;
}
public void setPrimitive(boolean primitive) {
isPrimitive = primitive;
}
public boolean isSynthetic() {
return isSynthetic;
}
public void setSynthetic(boolean synthetic) {
isSynthetic = synthetic;
}
public String getSimpleName() {
return simpleName;
}
public void setSimpleName(String simpleName) {
this.simpleName = simpleName;
}
public String getModifier() {
return modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
public String[] getAnnotations() {
return annotations;
}
public void setAnnotations(String[] annotations) {
this.annotations = annotations;
}
public String[] getInterfaces() {
return interfaces;
}
public void setInterfaces(String[] interfaces) {
this.interfaces = interfaces;
}
public String[] getSuperClass() {
return superClass;
}
public void setSuperClass(String[] superClass) {
this.superClass = superClass;
}
public FieldVO[] getFields() {
return fields;
}
public void setFields(FieldVO[] fields) {
this.fields = fields;
}
}
package com.taobao.arthas.core.command.model;
import com.taobao.arthas.core.command.klass100.ClassLoaderCommand.ClassLoaderStat;
import com.taobao.arthas.core.command.klass100.ClassLoaderCommand.ClassLoaderUrlStat;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* @author gongdewei 2020/4/21
*/
public class ClassLoaderModel extends ResultModel {
private ClassSetVO classSet;
private List<String> resources;
private ClassDetailVO loadClass;
private List<String> urls;
//classloader -l -t
private List<ClassLoaderVO> classLoaders;
private Boolean tree;
private Map<String, ClassLoaderStat> classLoaderStats;
private Collection<ClassLoaderVO> matchedClassLoaders;
private String classLoaderClass;
//urls stat
private Map<ClassLoaderVO, ClassLoaderUrlStat> urlStats;
public ClassLoaderModel() {
}
@Override
public String getType() {
return "classloader";
}
public ClassSetVO getClassSet() {
return classSet;
}
public ClassLoaderModel setClassSet(ClassSetVO classSet) {
this.classSet = classSet;
return this;
}
public List<String> getResources() {
return resources;
}
public ClassLoaderModel setResources(List<String> resources) {
this.resources = resources;
return this;
}
public ClassDetailVO getLoadClass() {
return loadClass;
}
public ClassLoaderModel setLoadClass(ClassDetailVO loadClass) {
this.loadClass = loadClass;
return this;
}
public List<String> getUrls() {
return urls;
}
public ClassLoaderModel setUrls(List<String> urls) {
this.urls = urls;
return this;
}
public List<ClassLoaderVO> getClassLoaders() {
return classLoaders;
}
public ClassLoaderModel setClassLoaders(List<ClassLoaderVO> classLoaders) {
this.classLoaders = classLoaders;
return this;
}
public Boolean getTree() {
return tree;
}
public ClassLoaderModel setTree(Boolean tree) {
this.tree = tree;
return this;
}
public Map<String, ClassLoaderStat> getClassLoaderStats() {
return classLoaderStats;
}
public ClassLoaderModel setClassLoaderStats(Map<String, ClassLoaderStat> classLoaderStats) {
this.classLoaderStats = classLoaderStats;
return this;
}
public String getClassLoaderClass() {
return classLoaderClass;
}
public ClassLoaderModel setClassLoaderClass(String classLoaderClass) {
this.classLoaderClass = classLoaderClass;
return this;
}
public Collection<ClassLoaderVO> getMatchedClassLoaders() {
return matchedClassLoaders;
}
public ClassLoaderModel setMatchedClassLoaders(Collection<ClassLoaderVO> matchedClassLoaders) {
this.matchedClassLoaders = matchedClassLoaders;
return this;
}
public Map<ClassLoaderVO, ClassLoaderUrlStat> getUrlStats() {
return urlStats;
}
public void setUrlStats(Map<ClassLoaderVO, ClassLoaderUrlStat> urlStats) {
this.urlStats = urlStats;
}
}
package com.taobao.arthas.core.command.model;
import java.util.ArrayList;
import java.util.List;
/**
* @author gongdewei 2020/4/21
*/
public class ClassLoaderVO {
private String name;
private String hash;
private String parent;
private Integer loadedCount;
private Integer numberOfInstances;
private List<ClassLoaderVO> children;
public ClassLoaderVO() {
}
public void addChild(ClassLoaderVO child){
if (this.children == null){
this.children = new ArrayList<ClassLoaderVO>();
}
this.children.add(child);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getHash() {
return hash;
}
public void setHash(String hash) {
this.hash = hash;
}
public String getParent() {
return parent;
}
public void setParent(String parent) {
this.parent = parent;
}
public Integer getLoadedCount() {
return loadedCount;
}
public void setLoadedCount(Integer loadedCount) {
this.loadedCount = loadedCount;
}
public Integer getNumberOfInstances() {
return numberOfInstances;
}
public void setNumberOfInstances(Integer numberOfInstances) {
this.numberOfInstances = numberOfInstances;
}
public List<ClassLoaderVO> getChildren() {
return children;
}
public void setChildren(List<ClassLoaderVO> children) {
this.children = children;
}
}
package com.taobao.arthas.core.command.model;
import java.util.Collection;
/**
* @author gongdewei 2020/4/21
*/
public class ClassSetVO implements Countable {
private ClassLoaderVO classloader;
private Collection<String> classes;
private int segment;
public ClassSetVO(ClassLoaderVO classloader, Collection<String> classes) {
this(classloader, classes, 0);
}
public ClassSetVO(ClassLoaderVO classloader, Collection<String> classes, int segment) {
this.classloader = classloader;
this.classes = classes;
this.segment = segment;
}
public ClassLoaderVO getClassloader() {
return classloader;
}
public void setClassloader(ClassLoaderVO classloader) {
this.classloader = classloader;
}
public Collection<String> getClasses() {
return classes;
}
public void setClasses(Collection<String> classes) {
this.classes = classes;
}
public int getSegment() {
return segment;
}
public void setSegment(int segment) {
this.segment = segment;
}
@Override
public int size() {
return classes != null ? classes.size() : 1;
}
}
package com.taobao.arthas.core.command.model;
/**
* @author gongdewei 2020/4/8
*/
public class ClassVO {
private String name;
private String[] classloader;
private String classLoaderHash;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String[] getClassloader() {
return classloader;
}
public void setClassloader(String[] classloader) {
this.classloader = classloader;
}
public String getClassLoaderHash() {
return classLoaderHash;
}
public void setClassLoaderHash(String classLoaderHash) {
this.classLoaderHash = classLoaderHash;
}
}
package com.taobao.arthas.core.command.model;
/**
* @author gongdewei 2020/4/3
*/
public class CommandOptionVO {
/**
* the option long name.
*/
private String longName;
/**
* the option short name.
*/
private String shortName;
/**
* The option description.
*/
private String description;
/**
* whether or not the option receives a single value or multiple values.
*/
private boolean acceptValue;
public CommandOptionVO() {
}
public String getLongName() {
return longName;
}
public void setLongName(String longName) {
this.longName = longName;
}
public String getShortName() {
return shortName;
}
public void setShortName(String shortName) {
this.shortName = shortName;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public boolean isAcceptValue() {
return acceptValue;
}
public void setAcceptValue(boolean acceptValue) {
this.acceptValue = acceptValue;
}
}
package com.taobao.arthas.core.command.model;
import com.taobao.arthas.core.shell.term.impl.http.api.ApiState;
/**
* Command async exec process result, not the command exec result
* @author gongdewei 2020/4/2
*/
public class CommandRequestModel extends ResultModel {
private ApiState state;
private String command;
private String message;
public CommandRequestModel(String command, ApiState state) {
this.command = command;
this.state = state;
}
public CommandRequestModel(String command, ApiState state, String message) {
this.state = state;
this.command = command;
this.message = message;
}
public String getCommand() {
return command;
}
public void setCommand(String command) {
this.command = command;
}
public ApiState getState() {
return state;
}
public void setState(ApiState state) {
this.state = state;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public String getType() {
return "command";
}
}
package com.taobao.arthas.core.command.model;
import com.taobao.middleware.cli.CLI;
import java.util.ArrayList;
import java.util.List;
/**
* @author gongdewei 2020/4/3
*/
public class CommandVO {
//TODO remove cli
private transient CLI cli;
private String name;
private String description;
private String usage;
private String summary;
private List<CommandOptionVO> options = new ArrayList<CommandOptionVO>();
private List<ArgumentVO> arguments = new ArrayList<ArgumentVO>();
public CommandVO() {
}
public CommandVO(String name, String description) {
this.name = name;
this.description = description;
}
public CommandVO addOption(CommandOptionVO optionVO){
this.options.add(optionVO);
return this;
}
public CommandVO addArgument(ArgumentVO argumentVO){
this.arguments.add(argumentVO);
return this;
}
public CLI cli() {
return cli;
}
public void setCli(CLI cli) {
this.cli = cli;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getUsage() {
return usage;
}
public void setUsage(String usage) {
this.usage = usage;
}
public String getSummary() {
return summary;
}
public void setSummary(String summary) {
this.summary = summary;
}
public List<CommandOptionVO> getOptions() {
return options;
}
public void setOptions(List<CommandOptionVO> options) {
this.options = options;
}
public List<ArgumentVO> getArguments() {
return arguments;
}
public void setArguments(List<ArgumentVO> arguments) {
this.arguments = arguments;
}
}
package com.taobao.arthas.core.command.model;
/**
* Item countable for ResultModel
* @author gongdewei 2020/6/8
*/
public interface Countable {
/**
* Get item size of this result model, the value of size is greater than or equal to 1
* @return item size of this result model
*/
int size();
}
package com.taobao.arthas.core.command.model;
import java.util.List;
import java.util.Map;
/**
* Model of 'dashboard' command
* @author gongdewei 2020/4/22
*/
public class DashboardModel extends ResultModel {
private List<ThreadVO> threads;
private Map<String, List<MemoryEntryVO>> memoryInfo;
private List<GcInfoVO> gcInfos;
private RuntimeInfoVO runtimeInfo;
private TomcatInfoVO tomcatInfo;
@Override
public String getType() {
return "dashboard";
}
public List<ThreadVO> getThreads() {
return threads;
}
public void setThreads(List<ThreadVO> threads) {
this.threads = threads;
}
public Map<String, List<MemoryEntryVO>> getMemoryInfo() {
return memoryInfo;
}
public void setMemoryInfo(Map<String, List<MemoryEntryVO>> memoryInfo) {
this.memoryInfo = memoryInfo;
}
public List<GcInfoVO> getGcInfos() {
return gcInfos;
}
public void setGcInfos(List<GcInfoVO> gcInfos) {
this.gcInfos = gcInfos;
}
public RuntimeInfoVO getRuntimeInfo() {
return runtimeInfo;
}
public void setRuntimeInfo(RuntimeInfoVO runtimeInfo) {
this.runtimeInfo = runtimeInfo;
}
public TomcatInfoVO getTomcatInfo() {
return tomcatInfo;
}
public void setTomcatInfo(TomcatInfoVO tomcatInfo) {
this.tomcatInfo = tomcatInfo;
}
}
package com.taobao.arthas.core.command.model;
import java.util.Collection;
import java.util.List;
/**
* @author gongdewei 2020/4/21
*/
public class DumpClassModel extends ResultModel {
private List<DumpClassVO> dumpedClasses;
private Collection<ClassVO> matchedClasses;
private Collection<ClassLoaderVO> matchedClassLoaders;
private String classLoaderClass;
public DumpClassModel() {
}
@Override
public String getType() {
return "dump";
}
public List<DumpClassVO> getDumpedClasses() {
return dumpedClasses;
}
public DumpClassModel setDumpedClasses(List<DumpClassVO> dumpedClasses) {
this.dumpedClasses = dumpedClasses;
return this;
}
public Collection<ClassVO> getMatchedClasses() {
return matchedClasses;
}
public DumpClassModel setMatchedClasses(Collection<ClassVO> matchedClasses) {
this.matchedClasses = matchedClasses;
return this;
}
public String getClassLoaderClass() {
return classLoaderClass;
}
public DumpClassModel setClassLoaderClass(String classLoaderClass) {
this.classLoaderClass = classLoaderClass;
return this;
}
public Collection<ClassLoaderVO> getMatchedClassLoaders() {
return matchedClassLoaders;
}
public DumpClassModel setMatchedClassLoaders(Collection<ClassLoaderVO> matchedClassLoaders) {
this.matchedClassLoaders = matchedClassLoaders;
return this;
}
}
package com.taobao.arthas.core.command.model;
/**
* Dumped class VO
* @author gongdewei 2020/7/9
*/
public class DumpClassVO extends ClassVO {
private String location;
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
package com.taobao.arthas.core.command.model;
/**
* @author gongdewei 2020/5/11
*/
public class EchoModel extends ResultModel {
private String content;
public EchoModel() {
}
public EchoModel(String content) {
this.content = content;
}
@Override
public String getType() {
return "echo";
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
package com.taobao.arthas.core.command.model;
import com.taobao.arthas.core.GlobalOptions;
import com.taobao.arthas.core.util.affect.EnhancerAffect;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* Class enhance affect vo
* @author gongdewei 2020/6/22
*/
public class EnhancerAffectVO {
private final long cost;
private final int methodCount;
private final int classCount;
private final long listenerId;
private Throwable throwable;
private List<String> classDumpFiles;
private List<String> methods;
public EnhancerAffectVO(EnhancerAffect affect) {
this.cost = affect.cost();
this.classCount = affect.cCnt();
this.methodCount = affect.mCnt();
this.listenerId = affect.getListenerId();
this.throwable = affect.getThrowable();
if (GlobalOptions.isDump) {
classDumpFiles = new ArrayList<String>();
for (File classDumpFile : affect.getClassDumpFiles()) {
classDumpFiles.add(classDumpFile.getAbsolutePath());
}
}
if (GlobalOptions.verbose) {
methods = new ArrayList<String>();
methods.addAll(affect.getMethods());
}
}
public EnhancerAffectVO(long cost, int methodCount, int classCount, long listenerId) {
this.cost = cost;
this.methodCount = methodCount;
this.classCount = classCount;
this.listenerId = listenerId;
}
public long getCost() {
return cost;
}
public int getClassCount() {
return classCount;
}
public int getMethodCount() {
return methodCount;
}
public long getListenerId() {
return listenerId;
}
public Throwable getThrowable() {
return throwable;
}
public void setThrowable(Throwable throwable) {
this.throwable = throwable;
}
public List<String> getClassDumpFiles() {
return classDumpFiles;
}
public void setClassDumpFiles(List<String> classDumpFiles) {
this.classDumpFiles = classDumpFiles;
}
public List<String> getMethods() {
return methods;
}
public void setMethods(List<String> methods) {
this.methods = methods;
}
}
package com.taobao.arthas.core.command.model;
import com.taobao.arthas.core.util.affect.EnhancerAffect;
/**
* Data model of EnhancerCommand
*
* @author gongdewei 2020/7/20
*/
public class EnhancerModel extends ResultModel {
private final EnhancerAffectVO effect;
private boolean success;
private String message;
public EnhancerModel(EnhancerAffect effect, boolean success) {
if (effect != null) {
this.effect = new EnhancerAffectVO(effect);
this.success = success;
} else {
this.effect = new EnhancerAffectVO(-1, 0, 0, -1);
this.success = false;
}
}
public EnhancerModel(EnhancerAffect effect, boolean success, String message) {
this(effect, success);
this.message = message;
}
@Override
public String getType() {
return "enhancer";
}
public EnhancerAffectVO getEffect() {
return effect;
}
public boolean isSuccess() {
return success;
}
public String getMessage() {
return message;
}
}
package com.taobao.arthas.core.command.model;
/**
* @author gongdewei 2020/4/8
*/
public class FieldVO {
private String name;
private String type;
private String modifier;
private String[] annotations;
private ObjectVO value;
private boolean isStatic;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getModifier() {
return modifier;
}
public void setModifier(String modifier) {
this.modifier = modifier;
}
public ObjectVO getValue() {
return value;
}
public void setValue(ObjectVO value) {
this.value = value;
}
public String[] getAnnotations() {
return annotations;
}
public void setAnnotations(String[] annotations) {
this.annotations = annotations;
}
public boolean isStatic() {
return isStatic;
}
public void setStatic(boolean aStatic) {
isStatic = aStatic;
}
}
package com.taobao.arthas.core.command.model;
/**
* GC info of dashboard
* @author gongdewei 2020/4/23
*/
public class GcInfoVO {
private String name;
private long collectionCount;
private long collectionTime;
public GcInfoVO(String name, long collectionCount, long collectionTime) {
this.name = name;
this.collectionCount = collectionCount;
this.collectionTime = collectionTime;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public long getCollectionCount() {
return collectionCount;
}
public void setCollectionCount(long collectionCount) {
this.collectionCount = collectionCount;
}
public long getCollectionTime() {
return collectionTime;
}
public void setCollectionTime(long collectionTime) {
this.collectionTime = collectionTime;
}
}
package com.taobao.arthas.core.command.model;
import java.util.Collection;
/**
* Data model of GetStaticCommand
* @author gongdewei 2020/4/20
*/
public class GetStaticModel extends ResultModel {
private Collection<ClassVO> matchedClasses;
private String fieldName;
private ObjectVO field;
private Collection<ClassLoaderVO> matchedClassLoaders;
private String classLoaderClass;
public GetStaticModel() {
}
public GetStaticModel(String fieldName, Object fieldValue, int expand) {
this.fieldName = fieldName;
this.field = new ObjectVO(fieldValue, expand);
}
public GetStaticModel(Collection<ClassVO> matchedClasses) {
this.matchedClasses = matchedClasses;
}
public ObjectVO getField() {
return field;
}
public void setField(ObjectVO field) {
this.field = field;
}
public String getFieldName() {
return fieldName;
}
public void setFieldName(String fieldName) {
this.fieldName = fieldName;
}
public Collection<ClassVO> getMatchedClasses() {
return matchedClasses;
}
public void setMatchedClasses(Collection<ClassVO> matchedClasses) {
this.matchedClasses = matchedClasses;
}
public String getClassLoaderClass() {
return classLoaderClass;
}
public GetStaticModel setClassLoaderClass(String classLoaderClass) {
this.classLoaderClass = classLoaderClass;
return this;
}
public Collection<ClassLoaderVO> getMatchedClassLoaders() {
return matchedClassLoaders;
}
public GetStaticModel setMatchedClassLoaders(Collection<ClassLoaderVO> matchedClassLoaders) {
this.matchedClassLoaders = matchedClassLoaders;
return this;
}
@Override
public String getType() {
return "getstatic";
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment