mirror of
https://github.com/wahyd4/pinpoint.git
synced 2026-08-23 19:56:59 +10:00
[강운덕] [LUCYSUS-1744] agent의 config 파일 수정.
git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@718 84d0f5b1-2673-498c-a247-62c4ff18d310
This commit is contained in:
@@ -1,8 +1,6 @@
|
||||
package com.profiler.modifier;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.profiler.config.ProfilerConfig;
|
||||
import com.profiler.interceptor.bci.ByteCodeInstrumentor;
|
||||
import com.profiler.modifier.arcus.ArcusClientModifier;
|
||||
import com.profiler.modifier.connector.HTTPClientModifier;
|
||||
@@ -25,135 +23,153 @@ import com.profiler.modifier.tomcat.StandardHostValveInvokeInterceptor;
|
||||
import com.profiler.modifier.tomcat.TomcatConnectorModifier;
|
||||
import com.profiler.modifier.tomcat.TomcatStandardServiceModifier;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class DefaultModifierRegistry implements ModifierRegistry {
|
||||
// TODO 혹시 동시성을 고려 해야 되는지 검토.
|
||||
// TODO 혹시 동시성을 고려 해야 되는지 검토.
|
||||
// 왠간해서는 동시성 상황이 안나올것으로 보임.
|
||||
private Map<String, Modifier> registry = new HashMap<String, Modifier>();
|
||||
private Map<String, Modifier> registry = new HashMap<String, Modifier>();
|
||||
|
||||
private final ByteCodeInstrumentor byteCodeInstrumentor;
|
||||
private final ByteCodeInstrumentor byteCodeInstrumentor;
|
||||
private final ProfilerConfig profilerConfig;
|
||||
|
||||
public DefaultModifierRegistry(ByteCodeInstrumentor byteCodeInstrumentor) {
|
||||
this.byteCodeInstrumentor = byteCodeInstrumentor;
|
||||
}
|
||||
public DefaultModifierRegistry(ByteCodeInstrumentor byteCodeInstrumentor, ProfilerConfig profilerConfig) {
|
||||
this.byteCodeInstrumentor = byteCodeInstrumentor;
|
||||
this.profilerConfig = profilerConfig;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Modifier findModifier(String className) {
|
||||
return registry.get(className);
|
||||
}
|
||||
@Override
|
||||
public Modifier findModifier(String className) {
|
||||
return registry.get(className);
|
||||
}
|
||||
|
||||
private void addModifier(Modifier modifier) {
|
||||
Modifier old = registry.put(modifier.getTargetClass(), modifier);
|
||||
if (old != null) {
|
||||
throw new IllegalStateException("Modifier already exist new:" + modifier.getClass() + " old:" + old.getTargetClass());
|
||||
}
|
||||
}
|
||||
private void addModifier(Modifier modifier) {
|
||||
Modifier old = registry.put(modifier.getTargetClass(), modifier);
|
||||
if (old != null) {
|
||||
throw new IllegalStateException("Modifier already exist new:" + modifier.getClass() + " old:" + old.getTargetClass());
|
||||
}
|
||||
}
|
||||
|
||||
public void addConnectorModifier() {
|
||||
HTTPClientModifier httpClientModifier = new HTTPClientModifier(byteCodeInstrumentor);
|
||||
addModifier(httpClientModifier);
|
||||
public void addConnectorModifier() {
|
||||
HTTPClientModifier httpClientModifier = new HTTPClientModifier(byteCodeInstrumentor);
|
||||
addModifier(httpClientModifier);
|
||||
|
||||
ArcusClientModifier arcusClientModifier = new ArcusClientModifier(byteCodeInstrumentor);
|
||||
addModifier(arcusClientModifier);
|
||||
}
|
||||
ArcusClientModifier arcusClientModifier = new ArcusClientModifier(byteCodeInstrumentor);
|
||||
addModifier(arcusClientModifier);
|
||||
}
|
||||
|
||||
public void addTomcatModifier() {
|
||||
public void addTomcatModifier() {
|
||||
StandardHostValveInvokeInterceptor standardHostValveInvokeInterceptor = new StandardHostValveInvokeInterceptor(byteCodeInstrumentor);
|
||||
addModifier(standardHostValveInvokeInterceptor);
|
||||
addModifier(standardHostValveInvokeInterceptor);
|
||||
|
||||
Modifier tomcatStandardServiceModifier = new TomcatStandardServiceModifier(byteCodeInstrumentor);
|
||||
addModifier(tomcatStandardServiceModifier);
|
||||
Modifier tomcatStandardServiceModifier = new TomcatStandardServiceModifier(byteCodeInstrumentor);
|
||||
addModifier(tomcatStandardServiceModifier);
|
||||
|
||||
Modifier tomcatConnectorModifier = new TomcatConnectorModifier(byteCodeInstrumentor);
|
||||
addModifier(tomcatConnectorModifier);
|
||||
Modifier tomcatConnectorModifier = new TomcatConnectorModifier(byteCodeInstrumentor);
|
||||
addModifier(tomcatConnectorModifier);
|
||||
|
||||
Modifier tomcatCatalinaModifier = new CatalinaModifier(byteCodeInstrumentor);
|
||||
addModifier(tomcatCatalinaModifier);
|
||||
}
|
||||
Modifier tomcatCatalinaModifier = new CatalinaModifier(byteCodeInstrumentor);
|
||||
addModifier(tomcatCatalinaModifier);
|
||||
}
|
||||
|
||||
public void addJdbcModifier() {
|
||||
// TODO 드라이버 존재 체크 로직을 앞단으로 이동 시킬수 없는지 검토
|
||||
addMySqlDriver();
|
||||
public void addJdbcModifier() {
|
||||
// TODO 드라이버 존재 체크 로직을 앞단으로 이동 시킬수 없는지 검토
|
||||
if (!profilerConfig.isJdbcProfile()) {
|
||||
return;
|
||||
}
|
||||
|
||||
addMsSqlDriver();
|
||||
if (profilerConfig.isJdbcProfileMySql()) {
|
||||
addMySqlDriver();
|
||||
}
|
||||
|
||||
addOracleDriver();
|
||||
if (profilerConfig.isJdbcProfileMsSql()) {
|
||||
addMsSqlDriver();
|
||||
}
|
||||
|
||||
addCubridDriver();
|
||||
if (profilerConfig.isJdbcProfileOracle()) {
|
||||
addOracleDriver();
|
||||
}
|
||||
if(profilerConfig.isJdbcProfileCubrid()) {
|
||||
addCubridDriver();
|
||||
}
|
||||
|
||||
addDbcpDriver();
|
||||
}
|
||||
if(profilerConfig.isJdbcProfileDbcp()) {
|
||||
addDbcpDriver();
|
||||
}
|
||||
}
|
||||
|
||||
private void addMySqlDriver() {
|
||||
// TODO MySqlDriver는 버전별로 Connection이 interface인지 class인지가 다름. 문제 없는지
|
||||
// 확인필요.
|
||||
Modifier mysqlConnectionImplModifier = new MySQLConnectionImplModifier(byteCodeInstrumentor);
|
||||
addModifier(mysqlConnectionImplModifier);
|
||||
private void addMySqlDriver() {
|
||||
// TODO MySqlDriver는 버전별로 Connection이 interface인지 class인지가 다름. 문제 없는지
|
||||
// 확인필요.
|
||||
Modifier mysqlConnectionImplModifier = new MySQLConnectionImplModifier(byteCodeInstrumentor);
|
||||
addModifier(mysqlConnectionImplModifier);
|
||||
|
||||
Modifier mysqlStatementModifier = new MySQLStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(mysqlStatementModifier);
|
||||
Modifier mysqlStatementModifier = new MySQLStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(mysqlStatementModifier);
|
||||
|
||||
Modifier mysqlPreparedStatementModifier = new MySQLPreparedStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(mysqlPreparedStatementModifier);
|
||||
Modifier mysqlPreparedStatementModifier = new MySQLPreparedStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(mysqlPreparedStatementModifier);
|
||||
|
||||
MySQLPreparedStatementJDBC4Modifier myqlPreparedStatementJDBC4Modifier = new MySQLPreparedStatementJDBC4Modifier(byteCodeInstrumentor);
|
||||
addModifier(myqlPreparedStatementJDBC4Modifier);
|
||||
addModifier(myqlPreparedStatementJDBC4Modifier);
|
||||
|
||||
Modifier mysqlResultSetModifier = new MySQLResultSetModifier(byteCodeInstrumentor);
|
||||
addModifier(mysqlResultSetModifier);
|
||||
}
|
||||
Modifier mysqlResultSetModifier = new MySQLResultSetModifier(byteCodeInstrumentor);
|
||||
addModifier(mysqlResultSetModifier);
|
||||
}
|
||||
|
||||
private void addMsSqlDriver() {
|
||||
private void addMsSqlDriver() {
|
||||
|
||||
Modifier mssqlConnectionModifier = new MSSQLConnectionModifier(byteCodeInstrumentor);
|
||||
addModifier(mssqlConnectionModifier);
|
||||
Modifier mssqlConnectionModifier = new MSSQLConnectionModifier(byteCodeInstrumentor);
|
||||
addModifier(mssqlConnectionModifier);
|
||||
|
||||
Modifier mssqlStatementModifier = new MSSQLStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(mssqlStatementModifier);
|
||||
Modifier mssqlStatementModifier = new MSSQLStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(mssqlStatementModifier);
|
||||
|
||||
Modifier mssqlPreparedStatementModifier = new MSSQLPreparedStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(mssqlPreparedStatementModifier);
|
||||
Modifier mssqlPreparedStatementModifier = new MSSQLPreparedStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(mssqlPreparedStatementModifier);
|
||||
|
||||
Modifier mssqlResultSetModifier = new MSSQLResultSetModifier(byteCodeInstrumentor);
|
||||
addModifier(mssqlResultSetModifier);
|
||||
Modifier mssqlResultSetModifier = new MSSQLResultSetModifier(byteCodeInstrumentor);
|
||||
addModifier(mssqlResultSetModifier);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private void addOracleDriver() {
|
||||
private void addOracleDriver() {
|
||||
|
||||
// TODO oracle의 경우 connection에 대한 impl이 없음. 확인필요.
|
||||
Modifier oraclePreparedStatementModifier = new OraclePreparedStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(oraclePreparedStatementModifier);
|
||||
// TODO oracle의 경우 connection에 대한 impl이 없음. 확인필요.
|
||||
Modifier oraclePreparedStatementModifier = new OraclePreparedStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(oraclePreparedStatementModifier);
|
||||
|
||||
Modifier oracleStatement = new OracleStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(oracleStatement);
|
||||
Modifier oracleStatement = new OracleStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(oracleStatement);
|
||||
|
||||
Modifier oracleResultSetModifier = new OracleResultSetModifier(byteCodeInstrumentor);
|
||||
addModifier(oracleResultSetModifier);
|
||||
}
|
||||
Modifier oracleResultSetModifier = new OracleResultSetModifier(byteCodeInstrumentor);
|
||||
addModifier(oracleResultSetModifier);
|
||||
}
|
||||
|
||||
private void addCubridDriver() {
|
||||
private void addCubridDriver() {
|
||||
|
||||
// TODO cubrid의 경우도 connection에 대한 impl이 없음. 확인필요.
|
||||
Modifier cubridStatementModifier = new CubridStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(cubridStatementModifier);
|
||||
// TODO cubrid의 경우도 connection에 대한 impl이 없음. 확인필요.
|
||||
Modifier cubridStatementModifier = new CubridStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(cubridStatementModifier);
|
||||
|
||||
Modifier cubridPreparedStatementModifier = new CubridPreparedStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(cubridPreparedStatementModifier);
|
||||
Modifier cubridPreparedStatementModifier = new CubridPreparedStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(cubridPreparedStatementModifier);
|
||||
|
||||
Modifier cubridResultSetModifier = new CubridResultSetModifier(byteCodeInstrumentor);
|
||||
addModifier(cubridResultSetModifier);
|
||||
Modifier cubridResultSetModifier = new CubridResultSetModifier(byteCodeInstrumentor);
|
||||
addModifier(cubridResultSetModifier);
|
||||
|
||||
Modifier cubridUStatementModifier = new CubridUStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(cubridUStatementModifier);
|
||||
}
|
||||
Modifier cubridUStatementModifier = new CubridUStatementModifier(byteCodeInstrumentor);
|
||||
addModifier(cubridUStatementModifier);
|
||||
}
|
||||
|
||||
private void addDbcpDriver() {
|
||||
private void addDbcpDriver() {
|
||||
|
||||
// TODO cubrid의 경우도 connection에 대한 impl이 없음. 확인필요.
|
||||
Modifier dbcpBasicDataSourceModifier = new DBCPBasicDataSourceModifier(byteCodeInstrumentor);
|
||||
addModifier(dbcpBasicDataSourceModifier);
|
||||
// TODO cubrid의 경우도 connection에 대한 impl이 없음. 확인필요.
|
||||
Modifier dbcpBasicDataSourceModifier = new DBCPBasicDataSourceModifier(byteCodeInstrumentor);
|
||||
addModifier(dbcpBasicDataSourceModifier);
|
||||
|
||||
Modifier dbcpPoolModifier = new DBCPPoolModifier(byteCodeInstrumentor);
|
||||
addModifier(dbcpPoolModifier);
|
||||
}
|
||||
Modifier dbcpPoolModifier = new DBCPPoolModifier(byteCodeInstrumentor);
|
||||
addModifier(dbcpPoolModifier);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user