[유치수] [NOBTS] refactoring

git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@1159 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
Chisu Yu
2013-02-06 07:29:24 +00:00
parent 55f70e037b
commit b29d780efa
28 changed files with 75 additions and 182 deletions
+2 -3
View File
@@ -6,8 +6,8 @@ import java.util.logging.Level;
import java.util.logging.Logger;
import com.profiler.common.dto.thrift.AgentInfo;
import com.profiler.common.hbase.HBaseTables;
import com.profiler.common.mapping.ApiMappingTable;
import com.profiler.common.util.SpanUtils;
import com.profiler.config.ProfilerConfig;
import com.profiler.context.BypassStorageFactory;
import com.profiler.context.TimeBaseStorageFactory;
@@ -92,7 +92,7 @@ public class Agent {
private void validateId(String id, String idName) {
try {
byte[] bytes = id.getBytes("UTF-8");
if (bytes.length > SpanUtils.AGENT_NAME_LIMIT) {
if (bytes.length > HBaseTables.AGENT_NAME_MAX_LEN) {
logger.warning(idName + " is too long(1~24). value=" + id);
}
// validate = false;
@@ -100,7 +100,6 @@ public class Agent {
} catch (UnsupportedEncodingException e) {
logger.log(Level.WARNING, "invalid agentId. Cause:" + e.getMessage(), e);
}
}
private static class SingletonHolder {
@@ -82,7 +82,7 @@ public class TomcatProfiler implements ClassFileTransformer {
private ModifierRegistry createModifierRegistry() {
DefaultModifierRegistry modifierRepository = new DefaultModifierRegistry(byteCodeInstrumentor, agent, profilerConfig);
modifierRepository.addDummyModifier();
modifierRepository.addMethodModifier();
modifierRepository.addTomcatModifier();
@@ -1,12 +1,10 @@
package com.profiler;
import java.lang.instrument.ClassFileTransformer;
import java.lang.instrument.IllegalClassFormatException;
import java.lang.instrument.Instrumentation;
import java.security.ProtectionDomain;
import javassist.ByteArrayClassPath;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtMethod;
@@ -1,7 +1,5 @@
package com.profiler.context;
import com.profiler.sender.DataSender;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
@@ -1,31 +1,26 @@
package com.profiler.interceptor;
import java.lang.reflect.Method;
/**
*
*/
public interface MethodDescriptor {
String getMethodName();
String getMethodName();
String getClassName();
String getClassName();
String[] getParameterTypes();
String[] getParameterTypes();
String[] getParameterVariableName();
String[] getParameterVariableName();
String getParameterDescriptor();
int getLineNumber();
String getParameterDescriptor();
String getFullName();
void setApiId(int apiId);
int getLineNumber();
int getApiId();
String getFullName();
void setApiId(int apiId);
int getApiId();
String getApiDescriptor();
String getApiDescriptor();
}
@@ -3,18 +3,20 @@ package com.profiler.interceptor.bci;
// TODO 추후 별도 계층구조가 필요하면 분화 필요.
public class InstrumentException extends Exception {
public InstrumentException() {
}
private static final long serialVersionUID = 7594176009977030312L;
public InstrumentException(String message) {
super(message);
}
public InstrumentException() {
}
public InstrumentException(String message, Throwable cause) {
super(message, cause);
}
public InstrumentException(String message) {
super(message);
}
public InstrumentException(Throwable cause) {
super(cause);
}
public InstrumentException(String message, Throwable cause) {
super(message, cause);
}
public InstrumentException(Throwable cause) {
super(cause);
}
}
@@ -2,7 +2,9 @@ package com.profiler.interceptor.bci;
public class NotFoundInstrumentException extends InstrumentException {
public NotFoundInstrumentException() {
private static final long serialVersionUID = -9079014055408569735L;
public NotFoundInstrumentException() {
}
public NotFoundInstrumentException(String message) {
@@ -31,7 +31,6 @@ import com.profiler.modifier.db.mysql.MySQLStatementModifier;
import com.profiler.modifier.db.oracle.OraclePreparedStatementModifier;
import com.profiler.modifier.db.oracle.OracleResultSetModifier;
import com.profiler.modifier.db.oracle.OracleStatementModifier;
import com.profiler.modifier.dummy.DummyModifier;
import com.profiler.modifier.method.MethodModifier;
import com.profiler.modifier.servlet.FilterModifier;
import com.profiler.modifier.servlet.HttpServletModifier;
@@ -68,10 +67,7 @@ public class DefaultModifierRegistry implements ModifierRegistry {
}
}
public void addDummyModifier() {
DummyModifier dummyModifier = new DummyModifier(byteCodeInstrumentor, agent);
addModifier(dummyModifier);
public void addMethodModifier() {
MethodModifier methodModifier = new MethodModifier(byteCodeInstrumentor, agent);
addModifier(methodModifier);
}
@@ -1,15 +1,13 @@
package com.profiler.modifier.arcus.interceptors;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.logging.LoggingUtils;
import net.spy.memcached.MemcachedClient;
import net.spy.memcached.ops.Operation;
import com.profiler.interceptor.StaticBeforeInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.MetaObject;
import com.profiler.util.StringUtils;
/**
*
@@ -1,15 +1,13 @@
package com.profiler.modifier.arcus.interceptors;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.logging.LoggingUtils;
import net.spy.memcached.protocol.BaseOperationImpl;
import com.profiler.context.AsyncTrace;
import com.profiler.interceptor.StaticBeforeInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.MetaObject;
import com.profiler.util.StringUtils;
/**
*
@@ -1,13 +1,13 @@
package com.profiler.modifier.arcus.interceptors;
import com.profiler.context.*;
import java.util.logging.Logger;
import com.profiler.context.AsyncTrace;
import com.profiler.context.Trace;
import com.profiler.context.TraceContext;
import com.profiler.interceptor.StaticAfterInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.MetaObject;
import com.profiler.util.StringUtils;
import java.util.Arrays;
import java.util.logging.Logger;
/**
*
@@ -1,12 +1,10 @@
package com.profiler.modifier.arcus.interceptors;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.interceptor.StaticAfterInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.MetaObject;
import com.profiler.util.StringUtils;
/**
*
@@ -1,15 +1,13 @@
package com.profiler.modifier.arcus.interceptors;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.logging.LoggingUtils;
import net.spy.memcached.CacheManager;
import net.spy.memcached.MemcachedClient;
import com.profiler.interceptor.StaticBeforeInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.MetaObject;
import com.profiler.util.StringUtils;
/**
*
@@ -1,6 +1,5 @@
package com.profiler.modifier.bloc.handler.interceptors;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.UUID;
import java.util.logging.Level;
@@ -18,7 +17,6 @@ import com.profiler.interceptor.MethodDescriptor;
import com.profiler.interceptor.StaticAroundInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.NumberUtils;
import com.profiler.util.StringUtils;
/**
* @author netspider
@@ -1,10 +1,8 @@
package com.profiler.modifier.connector.interceptors;
import java.net.URI;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.logging.LoggingUtils;
import org.apache.http.HttpHost;
import org.apache.http.client.methods.HttpUriRequest;
@@ -17,7 +15,7 @@ import com.profiler.context.TraceID;
import com.profiler.interceptor.ByteCodeMethodDescriptorSupport;
import com.profiler.interceptor.MethodDescriptor;
import com.profiler.interceptor.StaticAroundInterceptor;
import com.profiler.util.StringUtils;
import com.profiler.logging.LoggingUtils;
/**
* Method interceptor
@@ -1,9 +1,7 @@
package com.profiler.modifier.connector.interceptors;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.logging.LoggingUtils;
import org.apache.http.HttpHost;
import org.apache.http.HttpRequest;
@@ -13,11 +11,10 @@ import com.profiler.context.Header;
import com.profiler.context.Trace;
import com.profiler.context.TraceContext;
import com.profiler.context.TraceID;
import com.profiler.interceptor.ApiIdSupport;
import com.profiler.interceptor.ByteCodeMethodDescriptorSupport;
import com.profiler.interceptor.MethodDescriptor;
import com.profiler.interceptor.StaticAroundInterceptor;
import com.profiler.util.StringUtils;
import com.profiler.logging.LoggingUtils;
/**
* Method interceptor
@@ -1,71 +0,0 @@
package com.profiler.modifier.dummy;
import java.security.ProtectionDomain;
import java.util.logging.Logger;
import com.profiler.Agent;
import com.profiler.interceptor.Interceptor;
import com.profiler.interceptor.bci.ByteCodeInstrumentor;
import com.profiler.interceptor.bci.InstrumentClass;
import com.profiler.interceptor.bci.InstrumentException;
import com.profiler.logging.LoggingUtils;
import com.profiler.modifier.AbstractModifier;
/**
* @author netspider
*/
public class DummyModifier extends AbstractModifier {
private final Logger logger = Logger.getLogger(DummyModifier.class.getName());
private final boolean isDebug = LoggingUtils.isDebug(logger);
public DummyModifier(ByteCodeInstrumentor byteCodeInstrumentor, Agent agent) {
super(byteCodeInstrumentor, agent);
}
public String getTargetClass() {
return "com/nhn/hippo/testweb/service/DummyService";
}
public byte[] modify(ClassLoader classLoader, String javassistClassName, ProtectionDomain protectedDomain, byte[] classFileBuffer) {
if (isDebug) {
logger.fine("Modifing. " + javassistClassName);
}
byteCodeInstrumentor.checkLibrary(classLoader, javassistClassName);
try {
Interceptor doSomethingInterceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.method.interceptors.MethodInterceptor");
Interceptor aInterceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.method.interceptors.MethodInterceptor");
Interceptor bInterceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.method.interceptors.MethodInterceptor");
Interceptor baInterceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.method.interceptors.MethodInterceptor");
Interceptor bbInterceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.method.interceptors.MethodInterceptor");
Interceptor baaInterceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.method.interceptors.MethodInterceptor");
Interceptor cInterceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.method.interceptors.MethodInterceptor");
Interceptor caInterceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.method.interceptors.MethodInterceptor");
setTraceContext(doSomethingInterceptor);
setTraceContext(aInterceptor);
setTraceContext(bInterceptor);
setTraceContext(baInterceptor);
setTraceContext(bbInterceptor);
setTraceContext(baaInterceptor);
setTraceContext(cInterceptor);
setTraceContext(caInterceptor);
InstrumentClass dummyService = byteCodeInstrumentor.getClass(javassistClassName);
dummyService.addInterceptor("doSomething", null, doSomethingInterceptor);
dummyService.addInterceptor("a", null, aInterceptor);
dummyService.addInterceptor("b", null, bInterceptor);
dummyService.addInterceptor("ba", null, baInterceptor);
dummyService.addInterceptor("bb", null, bbInterceptor);
dummyService.addInterceptor("baa", null, baaInterceptor);
dummyService.addInterceptor("c", null, cInterceptor);
dummyService.addInterceptor("ca", null, caInterceptor);
return dummyService.toBytecode();
} catch (InstrumentException e) {
return null;
}
}
}
@@ -1,6 +1,5 @@
package com.profiler.modifier.servlet.interceptors;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.UUID;
import java.util.logging.Level;
@@ -21,7 +20,6 @@ import com.profiler.interceptor.StaticAroundInterceptor;
import com.profiler.interceptor.TraceContextSupport;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.NumberUtils;
import com.profiler.util.StringUtils;
public class DoXXXInterceptor implements StaticAroundInterceptor, ByteCodeMethodDescriptorSupport, TraceContextSupport {
@@ -1,13 +1,11 @@
package com.profiler.modifier.tomcat.interceptors;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.Agent;
import com.profiler.interceptor.StaticBeforeInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.Assert;
import com.profiler.util.StringUtils;
/**
*
@@ -1,15 +1,13 @@
package com.profiler.modifier.tomcat.interceptors;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.logging.LoggingUtils;
import org.apache.catalina.connector.Connector;
import com.profiler.Agent;
import com.profiler.interceptor.StaticAfterInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.Assert;
import com.profiler.util.StringUtils;
/**
*
@@ -1,6 +1,5 @@
package com.profiler.modifier.tomcat.interceptors;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.UUID;
import java.util.logging.Level;
@@ -21,7 +20,6 @@ import com.profiler.interceptor.StaticAroundInterceptor;
import com.profiler.interceptor.TraceContextSupport;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.NumberUtils;
import com.profiler.util.StringUtils;
public class StandardHostValveInvokeInterceptor implements StaticAroundInterceptor, ByteCodeMethodDescriptorSupport, TraceContextSupport {
@@ -1,12 +1,10 @@
package com.profiler.modifier.tomcat.interceptors;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.LifeCycleEventListener;
import com.profiler.interceptor.StaticAfterInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.StringUtils;
/**
*
@@ -1,12 +1,10 @@
package com.profiler.modifier.tomcat.interceptors;
import java.util.Arrays;
import java.util.logging.Logger;
import com.profiler.LifeCycleEventListener;
import com.profiler.interceptor.StaticAfterInterceptor;
import com.profiler.logging.LoggingUtils;
import com.profiler.util.StringUtils;
/**
*
@@ -1,18 +1,19 @@
package com.profiler.trace;
import com.profiler.Agent;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import com.profiler.common.dto.thrift.RequestDataListThriftDTO;
import com.profiler.common.dto.thrift.RequestDataThriftDTO;
import com.profiler.config.ProfilerConfig;
import com.profiler.config.ProfilerConstant;
import com.profiler.util.NamedThreadLocal;
import com.profiler.util.QueryStringUtil;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.CopyOnWriteArraySet;
@Deprecated
public class DatabaseRequestTracer {
@@ -1,16 +1,15 @@
package com.profiler.trace;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
import com.profiler.Agent;
import com.profiler.common.dto.thrift.RequestDataListThriftDTO;
import com.profiler.common.dto.thrift.RequestThriftDTO;
import com.profiler.config.ProfilerConstant;
import com.profiler.sender.UdpDataSender;
import com.profiler.util.SystemUtils;
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
@Deprecated
public class RequestTracer {
@@ -1,7 +1,6 @@
package com.profiler.util;
import java.beans.IntrospectionException;
import java.lang.reflect.Method;
import java.sql.PreparedStatement;
import java.sql.SQLException;
@@ -1,11 +1,15 @@
package com.profiler.util.bindvalue;
import com.profiler.util.BindVariableFilter;
import com.profiler.util.bindvalue.converter.*;
import java.util.HashMap;
import java.util.Map;
import com.profiler.util.bindvalue.converter.BytesConverter;
import com.profiler.util.bindvalue.converter.ClassNameConverter;
import com.profiler.util.bindvalue.converter.Converter;
import com.profiler.util.bindvalue.converter.NullTypeConterver;
import com.profiler.util.bindvalue.converter.ObjectConverter;
import com.profiler.util.bindvalue.converter.SimpleTypeConverter;
public class BindValueConverter {
private static final BindValueConverter converter;
static {
@@ -1,23 +1,21 @@
package com.profiler.util.bindvalue.converter;
import com.profiler.util.ArrayUtils;
import com.profiler.util.StringUtils;
public class BytesConverter implements Converter {
@Override
public String convert(Object[] args) {
if (args == null) {
return "null";
}
if (args.length == 2) {
byte[] bytes = (byte[]) args[1];
if (bytes == null) {
return "null";
} else {
return ArrayUtils.dropToString(bytes);
}
}
return "error";
}
@Override
public String convert(Object[] args) {
if (args == null) {
return "null";
}
if (args.length == 2) {
byte[] bytes = (byte[]) args[1];
if (bytes == null) {
return "null";
} else {
return ArrayUtils.dropToString(bytes);
}
}
return "error";
}
}