diff --git a/src/main/java/com/profiler/modifier/DefaultModifierRegistry.java b/src/main/java/com/profiler/modifier/DefaultModifierRegistry.java index 5d4c0cfa8..b36ad77b5 100644 --- a/src/main/java/com/profiler/modifier/DefaultModifierRegistry.java +++ b/src/main/java/com/profiler/modifier/DefaultModifierRegistry.java @@ -44,13 +44,13 @@ public class DefaultModifierRegistry implements ModifierRegistry { public void addTomcatModifier() { Map registry = this.registry; Modifier entryPointStandardHostValveModifier = new EntryPointStandardHostValveModifier(classPool); - registry.put("org/apache/catalina/core/StandardHostValve", entryPointStandardHostValveModifier); + registry.put(entryPointStandardHostValveModifier.getTargetClass(), entryPointStandardHostValveModifier); Modifier tomcatStandardServiceModifier = new TomcatStandardServiceModifier(classPool); - registry.put("org/apache/catalina/core/StandardService", tomcatStandardServiceModifier); + registry.put(tomcatStandardServiceModifier.getTargetClass(), tomcatStandardServiceModifier); Modifier tomcatConnectorModifier = new TomcatConnectorModifier(classPool); - registry.put("org/apache/catalina/connector/Connector", tomcatConnectorModifier); + registry.put(tomcatConnectorModifier.getTargetClass(), tomcatConnectorModifier); } public void addJdbcModifier() { @@ -70,31 +70,31 @@ public class DefaultModifierRegistry implements ModifierRegistry { // TODO MySqlDriver는 버전별로 Connection이 interface인지 class인지가 다름. 문제 없는지 // 확인필요. Modifier mysqlConnectionImplModifier = new MySQLConnectionImplModifier(classPool); - registry.put("com/mysql/jdbc/ConnectionImpl", mysqlConnectionImplModifier); + registry.put(mysqlConnectionImplModifier.getTargetClass(), mysqlConnectionImplModifier); Modifier mysqlStatementModifier = new MySQLStatementModifier(classPool); - registry.put("com/mysql/jdbc/StatementImpl", mysqlStatementModifier); + registry.put(mysqlStatementModifier.getTargetClass(), mysqlStatementModifier); Modifier mysqlPreparedStatementModifier = new MySQLPreparedStatementModifier(classPool); - registry.put("com/mysql/jdbc/PreparedStatement", mysqlPreparedStatementModifier); + registry.put(mysqlPreparedStatementModifier.getTargetClass(), mysqlPreparedStatementModifier); Modifier mysqlResultSetModifier = new MySQLResultSetModifier(classPool); - registry.put("com/mysql/jdbc/ResultSetImpl", mysqlResultSetModifier); + registry.put(mysqlResultSetModifier.getTargetClass(), mysqlResultSetModifier); } private void addMsSqlDriver() { Map registry = this.registry; Modifier mssqlConnectionModifier = new MSSQLConnectionModifier(classPool); - registry.put("net/sourceforge/jtds/jdbc/ConnectionJDBC2", mssqlConnectionModifier); + registry.put(mssqlConnectionModifier.getTargetClass(), mssqlConnectionModifier); Modifier mssqlStatementModifier = new MSSQLStatementModifier(classPool); - registry.put("net/sourceforge/jtds/jdbc/JtdsStatement", mssqlStatementModifier); + registry.put(mssqlStatementModifier.getTargetClass(), mssqlStatementModifier); Modifier mssqlPreparedStatementModifier = new MSSQLPreparedStatementModifier(classPool); - registry.put("net/sourceforge/jtds/jdbc/JtdsPreparedStatement", mssqlPreparedStatementModifier); + registry.put(mssqlPreparedStatementModifier.getTargetClass(), mssqlPreparedStatementModifier); Modifier mssqlResultSetModifier = new MSSQLResultSetModifier(classPool); - registry.put("net/sourceforge/jtds/jdbc/JtdsResultSet", mssqlResultSetModifier); + registry.put(mssqlResultSetModifier.getTargetClass(), mssqlResultSetModifier); } @@ -102,38 +102,38 @@ public class DefaultModifierRegistry implements ModifierRegistry { Map registry = this.registry; // TODO oracle의 경우 connection에 대한 impl이 없음. 확인필요. Modifier oraclePreparedStatementModifier = new OraclePreparedStatementModifier(classPool); - registry.put("oracle/jdbc/driver/OraclePreparedStatement", oraclePreparedStatementModifier); + registry.put(oraclePreparedStatementModifier.getTargetClass(), oraclePreparedStatementModifier); Modifier oracleStatement = new OracleStatementModifier(classPool); - registry.put("oracle/jdbc/driver/OracleStatement", oracleStatement); + registry.put(oracleStatement.getTargetClass(), oracleStatement); Modifier oracleResultSetModifier = new OracleResultSetModifier(classPool); - registry.put("oracle/jdbc/driver/OracleResultSetImpl", oracleResultSetModifier); + registry.put(oracleResultSetModifier.getTargetClass(), oracleResultSetModifier); } private void addCubridDriver() { Map registry = this.registry; // TODO cubrid의 경우도 connection에 대한 impl이 없음. 확인필요. Modifier cubridStatementModifier = new CubridStatementModifier(classPool); - registry.put("cubrid/jdbc/driver/CUBRIDStatement", cubridStatementModifier); + registry.put(cubridStatementModifier.getTargetClass(), cubridStatementModifier); Modifier cubridPreparedStatementModifier = new CubridPreparedStatementModifier(classPool); - registry.put("cubrid/jdbc/driver/CUBRIDPreparedStatement", cubridPreparedStatementModifier); + registry.put(cubridPreparedStatementModifier.getTargetClass(), cubridPreparedStatementModifier); Modifier cubridResultSetModifier = new CubridResultSetModifier(classPool); - registry.put("cubrid/jdbc/driver/CUBRIDResultSet", cubridResultSetModifier); + registry.put(cubridResultSetModifier.getTargetClass(), cubridResultSetModifier); Modifier cubridUStatementModifier = new CubridUStatementModifier(classPool); - registry.put("cubrid/jdbc/jci/UStatement", cubridUStatementModifier); + registry.put(cubridStatementModifier.getTargetClass(), cubridUStatementModifier); } private void addDbcpDriver() { Map registry = this.registry; // TODO cubrid의 경우도 connection에 대한 impl이 없음. 확인필요. Modifier dbcpBasicDataSourceModifier = new DBCPBasicDataSourceModifier(classPool); - registry.put("org/apache/commons/dbcp/BasicDataSource", dbcpBasicDataSourceModifier); + registry.put(dbcpBasicDataSourceModifier.getTargetClass(), dbcpBasicDataSourceModifier); Modifier dbcpPoolModifier = new DBCPPoolModifier(classPool); - registry.put("org/apache/commons/dbcp/PoolingDataSource$PoolGuardConnectionWrapper", dbcpPoolModifier); + registry.put(dbcpPoolModifier.getTargetClass(), dbcpPoolModifier); } } diff --git a/src/main/java/com/profiler/modifier/Modifier.java b/src/main/java/com/profiler/modifier/Modifier.java index 1c0cf5e16..b4ef07116 100644 --- a/src/main/java/com/profiler/modifier/Modifier.java +++ b/src/main/java/com/profiler/modifier/Modifier.java @@ -2,4 +2,5 @@ package com.profiler.modifier; public interface Modifier { byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer); + String getTargetClass(); } diff --git a/src/main/java/com/profiler/modifier/db/cubrid/CubridPreparedStatementModifier.java b/src/main/java/com/profiler/modifier/db/cubrid/CubridPreparedStatementModifier.java index 294136666..ef7631303 100644 --- a/src/main/java/com/profiler/modifier/db/cubrid/CubridPreparedStatementModifier.java +++ b/src/main/java/com/profiler/modifier/db/cubrid/CubridPreparedStatementModifier.java @@ -19,6 +19,10 @@ public class CubridPreparedStatementModifier extends AbstractModifier { public CubridPreparedStatementModifier(ClassPool classPool) { super(classPool); } + + public String getTargetClass() { + return "cubrid/jdbc/driver/CUBRIDPreparedStatement"; + } public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ diff --git a/src/main/java/com/profiler/modifier/db/cubrid/CubridResultSetModifier.java b/src/main/java/com/profiler/modifier/db/cubrid/CubridResultSetModifier.java index 515d899fd..773001c94 100644 --- a/src/main/java/com/profiler/modifier/db/cubrid/CubridResultSetModifier.java +++ b/src/main/java/com/profiler/modifier/db/cubrid/CubridResultSetModifier.java @@ -17,6 +17,10 @@ public class CubridResultSetModifier extends AbstractModifier { public CubridResultSetModifier(ClassPool classPool) { super(classPool); } + + public String getTargetClass() { + return "cubrid/jdbc/driver/CUBRIDResultSet"; + } public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)) { diff --git a/src/main/java/com/profiler/modifier/db/cubrid/CubridStatementModifier.java b/src/main/java/com/profiler/modifier/db/cubrid/CubridStatementModifier.java index 5def04aed..71edf7f87 100644 --- a/src/main/java/com/profiler/modifier/db/cubrid/CubridStatementModifier.java +++ b/src/main/java/com/profiler/modifier/db/cubrid/CubridStatementModifier.java @@ -18,6 +18,10 @@ public class CubridStatementModifier extends AbstractModifier { public CubridStatementModifier(ClassPool classPool) { super(classPool); } + + public String getTargetClass() { + return "cubrid/jdbc/driver/CUBRIDStatement"; + } public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)) { diff --git a/src/main/java/com/profiler/modifier/db/cubrid/CubridUStatementModifier.java b/src/main/java/com/profiler/modifier/db/cubrid/CubridUStatementModifier.java index 5d14183ef..fc2d0711c 100644 --- a/src/main/java/com/profiler/modifier/db/cubrid/CubridUStatementModifier.java +++ b/src/main/java/com/profiler/modifier/db/cubrid/CubridUStatementModifier.java @@ -17,6 +17,10 @@ public class CubridUStatementModifier extends AbstractModifier { public CubridUStatementModifier(ClassPool classPool) { super(classPool); } + + public String getTargetClass() { + return "cubrid/jdbc/jci/UStatement"; + } public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ diff --git a/src/main/java/com/profiler/modifier/db/dbcp/DBCPBasicDataSourceModifier.java b/src/main/java/com/profiler/modifier/db/dbcp/DBCPBasicDataSourceModifier.java index 590623610..9cd25aee0 100644 --- a/src/main/java/com/profiler/modifier/db/dbcp/DBCPBasicDataSourceModifier.java +++ b/src/main/java/com/profiler/modifier/db/dbcp/DBCPBasicDataSourceModifier.java @@ -19,6 +19,10 @@ public class DBCPBasicDataSourceModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "org/apache/commons/dbcp/BasicDataSource"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/db/dbcp/DBCPPoolModifier.java b/src/main/java/com/profiler/modifier/db/dbcp/DBCPPoolModifier.java index c60fd076a..3075cd70f 100644 --- a/src/main/java/com/profiler/modifier/db/dbcp/DBCPPoolModifier.java +++ b/src/main/java/com/profiler/modifier/db/dbcp/DBCPPoolModifier.java @@ -18,6 +18,10 @@ public class DBCPPoolModifier extends AbstractModifier { public DBCPPoolModifier(ClassPool classPool) { super(classPool); } + + public String getTargetClass() { + return "org/apache/commons/dbcp/PoolingDataSource$PoolGuardConnectionWrapper"; + } public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ diff --git a/src/main/java/com/profiler/modifier/db/mssql/MSSQLConnectionModifier.java b/src/main/java/com/profiler/modifier/db/mssql/MSSQLConnectionModifier.java index 2545a0cb2..c53a1173d 100644 --- a/src/main/java/com/profiler/modifier/db/mssql/MSSQLConnectionModifier.java +++ b/src/main/java/com/profiler/modifier/db/mssql/MSSQLConnectionModifier.java @@ -18,6 +18,10 @@ public class MSSQLConnectionModifier extends AbstractModifier { public MSSQLConnectionModifier(ClassPool classPool) { super(classPool); } + + public String getTargetClass() { + return "net/sourceforge/jtds/jdbc/ConnectionJDBC2"; + } public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ diff --git a/src/main/java/com/profiler/modifier/db/mssql/MSSQLPreparedStatementModifier.java b/src/main/java/com/profiler/modifier/db/mssql/MSSQLPreparedStatementModifier.java index 3ccc9cd0e..60de06f2f 100644 --- a/src/main/java/com/profiler/modifier/db/mssql/MSSQLPreparedStatementModifier.java +++ b/src/main/java/com/profiler/modifier/db/mssql/MSSQLPreparedStatementModifier.java @@ -20,6 +20,10 @@ public class MSSQLPreparedStatementModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "net/sourceforge/jtds/jdbc/JtdsPreparedStatement"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/db/mssql/MSSQLResultSetModifier.java b/src/main/java/com/profiler/modifier/db/mssql/MSSQLResultSetModifier.java index b1f29394a..646f1a721 100644 --- a/src/main/java/com/profiler/modifier/db/mssql/MSSQLResultSetModifier.java +++ b/src/main/java/com/profiler/modifier/db/mssql/MSSQLResultSetModifier.java @@ -18,6 +18,10 @@ public class MSSQLResultSetModifier extends AbstractModifier { public MSSQLResultSetModifier(ClassPool classPool) { super(classPool); } + + public String getTargetClass() { + return "net/sourceforge/jtds/jdbc/JtdsResultSet"; + } public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ diff --git a/src/main/java/com/profiler/modifier/db/mssql/MSSQLStatementModifier.java b/src/main/java/com/profiler/modifier/db/mssql/MSSQLStatementModifier.java index 0c802e17b..be3b23965 100644 --- a/src/main/java/com/profiler/modifier/db/mssql/MSSQLStatementModifier.java +++ b/src/main/java/com/profiler/modifier/db/mssql/MSSQLStatementModifier.java @@ -18,6 +18,10 @@ public class MSSQLStatementModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "net/sourceforge/jtds/jdbc/JtdsStatement"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/db/mysql/MySQLConnectionImplModifier.java b/src/main/java/com/profiler/modifier/db/mysql/MySQLConnectionImplModifier.java index 0202d5b59..59d0b3ba1 100644 --- a/src/main/java/com/profiler/modifier/db/mysql/MySQLConnectionImplModifier.java +++ b/src/main/java/com/profiler/modifier/db/mysql/MySQLConnectionImplModifier.java @@ -19,6 +19,10 @@ public class MySQLConnectionImplModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "com/mysql/jdbc/ConnectionImpl"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/db/mysql/MySQLPreparedStatementModifier.java b/src/main/java/com/profiler/modifier/db/mysql/MySQLPreparedStatementModifier.java index 6d3df9272..7b49e6903 100644 --- a/src/main/java/com/profiler/modifier/db/mysql/MySQLPreparedStatementModifier.java +++ b/src/main/java/com/profiler/modifier/db/mysql/MySQLPreparedStatementModifier.java @@ -19,6 +19,10 @@ public class MySQLPreparedStatementModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "com/mysql/jdbc/PreparedStatement"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/db/mysql/MySQLResultSetModifier.java b/src/main/java/com/profiler/modifier/db/mysql/MySQLResultSetModifier.java index a4ebb40af..ca76f4c38 100644 --- a/src/main/java/com/profiler/modifier/db/mysql/MySQLResultSetModifier.java +++ b/src/main/java/com/profiler/modifier/db/mysql/MySQLResultSetModifier.java @@ -18,6 +18,10 @@ public class MySQLResultSetModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "com/mysql/jdbc/ResultSetImpl"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/db/mysql/MySQLStatementModifier.java b/src/main/java/com/profiler/modifier/db/mysql/MySQLStatementModifier.java index a38dcec86..e1ba2129b 100644 --- a/src/main/java/com/profiler/modifier/db/mysql/MySQLStatementModifier.java +++ b/src/main/java/com/profiler/modifier/db/mysql/MySQLStatementModifier.java @@ -19,6 +19,10 @@ public class MySQLStatementModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "com/mysql/jdbc/StatementImpl"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/db/oracle/OraclePreparedStatementModifier.java b/src/main/java/com/profiler/modifier/db/oracle/OraclePreparedStatementModifier.java index fb388d926..8cb8a5c72 100644 --- a/src/main/java/com/profiler/modifier/db/oracle/OraclePreparedStatementModifier.java +++ b/src/main/java/com/profiler/modifier/db/oracle/OraclePreparedStatementModifier.java @@ -21,6 +21,10 @@ public class OraclePreparedStatementModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "oracle/jdbc/driver/OraclePreparedStatement"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/db/oracle/OracleResultSetModifier.java b/src/main/java/com/profiler/modifier/db/oracle/OracleResultSetModifier.java index 425f21345..535d3aeeb 100644 --- a/src/main/java/com/profiler/modifier/db/oracle/OracleResultSetModifier.java +++ b/src/main/java/com/profiler/modifier/db/oracle/OracleResultSetModifier.java @@ -18,6 +18,10 @@ public class OracleResultSetModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "oracle/jdbc/driver/OracleResultSetImpl"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/db/oracle/OracleStatementModifier.java b/src/main/java/com/profiler/modifier/db/oracle/OracleStatementModifier.java index ad6bef9e7..230645c34 100644 --- a/src/main/java/com/profiler/modifier/db/oracle/OracleStatementModifier.java +++ b/src/main/java/com/profiler/modifier/db/oracle/OracleStatementModifier.java @@ -17,6 +17,10 @@ public class OracleStatementModifier extends AbstractModifier { public OracleStatementModifier(ClassPool classPool) { super(classPool); } + + public String getTargetClass() { + return "oracle/jdbc/driver/OracleStatement"; + } public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ diff --git a/src/main/java/com/profiler/modifier/tomcat/EntryPointStandardHostValveModifier.java b/src/main/java/com/profiler/modifier/tomcat/EntryPointStandardHostValveModifier.java index 1b48075c4..9e0eab144 100644 --- a/src/main/java/com/profiler/modifier/tomcat/EntryPointStandardHostValveModifier.java +++ b/src/main/java/com/profiler/modifier/tomcat/EntryPointStandardHostValveModifier.java @@ -26,6 +26,10 @@ public class EntryPointStandardHostValveModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "org/apache/catalina/core/StandardHostValve"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/tomcat/TomcatConnectorModifier.java b/src/main/java/com/profiler/modifier/tomcat/TomcatConnectorModifier.java index f27d4c04e..325621d38 100644 --- a/src/main/java/com/profiler/modifier/tomcat/TomcatConnectorModifier.java +++ b/src/main/java/com/profiler/modifier/tomcat/TomcatConnectorModifier.java @@ -24,6 +24,10 @@ public class TomcatConnectorModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "org/apache/catalina/connector/Connector"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName); diff --git a/src/main/java/com/profiler/modifier/tomcat/TomcatStandardServiceModifier.java b/src/main/java/com/profiler/modifier/tomcat/TomcatStandardServiceModifier.java index f35064172..db8e3cc26 100644 --- a/src/main/java/com/profiler/modifier/tomcat/TomcatStandardServiceModifier.java +++ b/src/main/java/com/profiler/modifier/tomcat/TomcatStandardServiceModifier.java @@ -25,6 +25,10 @@ public class TomcatStandardServiceModifier extends AbstractModifier { super(classPool); } + public String getTargetClass() { + return "org/apache/catalina/core/StandardService"; + } + public byte[] modify(ClassLoader classLoader, String javassistClassName, byte[] classFileBuffer) { if (logger.isLoggable(Level.INFO)){ logger.info("Modifing. " + javassistClassName);