From 9ccdf0da008f7ea467e2672eedcb1afdf6a438e7 Mon Sep 17 00:00:00 2001 From: Woonduk Kang Date: Tue, 1 Oct 2013 10:33:12 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B0=95=EC=9A=B4=EB=8D=95]=20[LUCYSUS-1744]?= =?UTF-8?q?=20byteCodeInstrumentor.newInterceptor()=EB=A5=BC=20=ED=86=B5?= =?UTF-8?q?=ED=95=B4=EC=84=9C=20=EC=83=9D=EC=84=B1=ED=95=98=EB=8D=98=20int?= =?UTF-8?q?erceptor=EB=A5=BC=20=EC=A7=81=EC=A0=91=20=EC=83=9D=EC=84=B1?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95=ED=95=A8.=20jd?= =?UTF-8?q?bc=20interceptor=EC=9D=80=20cl=EA=B4=80=EB=A0=A8=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=EB=A5=BC=20=EB=A1=9C=EB=93=9C=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EC=9C=BC=EB=AF=80=EB=A1=9C=20=EA=B7=B8?= =?UTF-8?q?=EB=83=A5=20=EC=83=9D=EC=84=B1=ED=95=B4=EB=8F=84=20=EB=90=A8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://svn.bds.nhncorp.com/pe/hippo-tomcat-profiler/trunk@2385 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../db/cubrid/CubridStatementModifier.java | 19 +++++++------------ .../mysql/MySQLPreparedStatementModifier.java | 12 ------------ .../db/mysql/MySQLStatementModifier.java | 14 +++++--------- .../db/oracle/OracleDriverModifier.java | 8 +++----- .../OracleStatementWrapperModifier.java | 14 +++++--------- 5 files changed, 20 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/cubrid/CubridStatementModifier.java b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/cubrid/CubridStatementModifier.java index b938d1f18..a3a194ffa 100644 --- a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/cubrid/CubridStatementModifier.java +++ b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/cubrid/CubridStatementModifier.java @@ -5,13 +5,13 @@ import java.security.ProtectionDomain; import com.nhn.pinpoint.profiler.Agent; import com.nhn.pinpoint.profiler.interceptor.Interceptor; import com.nhn.pinpoint.profiler.interceptor.ScopeDelegateSimpleInterceptor; -import com.nhn.pinpoint.profiler.interceptor.SimpleAroundInterceptor; import com.nhn.pinpoint.profiler.interceptor.bci.ByteCodeInstrumentor; import com.nhn.pinpoint.profiler.interceptor.bci.InstrumentClass; import com.nhn.pinpoint.profiler.interceptor.bci.InstrumentException; import com.nhn.pinpoint.profiler.modifier.AbstractModifier; import com.nhn.pinpoint.profiler.modifier.db.interceptor.JDBCScope; import com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteQueryInterceptor; +import com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,21 +38,16 @@ public class CubridStatementModifier extends AbstractModifier { Interceptor executeQueryInterceptor = new ScopeDelegateSimpleInterceptor(new StatementExecuteQueryInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("executeQuery", new String[] { "java.lang.String" }, executeQueryInterceptor); - // TODO 이거 고쳐야 됨. - // 주석을 풀고 뭔가 고칠경우 ScopeDelegateSimpleInterceptor 로 감싸야한다. - // Interceptor executeUpdate1 = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - // statementClass.addInterceptor("executeUpdate", new String[] { "java.lang.String" }, executeUpdate1); + // 이거는 안해도 되나? + // "executeUpdate", new String[] { "java.lang.String" } - SimpleAroundInterceptor executeUpdate = (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeUpdateInterceptor = new ScopeDelegateSimpleInterceptor(executeUpdate, JDBCScope.SCOPE); + Interceptor executeUpdateInterceptor = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("executeUpdate", new String[] { "java.lang.String", "int" }, executeUpdateInterceptor); - // 주석을 풀고 뭔가 고칠경우 ScopeDelegateSimpleInterceptor 로 감싸야한다. - // Interceptor executeUpdate3 = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - // statementClass.addInterceptor("execute", new String[] { "java.lang.String" }, executeUpdate3); + // 이거는 안해도 되나? + // "execute", new String[] { "java.lang.String" } - SimpleAroundInterceptor execute = (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeInterceptor = new ScopeDelegateSimpleInterceptor(execute, JDBCScope.SCOPE); + Interceptor executeInterceptor = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("execute", new String[] { "java.lang.String", "int" }, executeInterceptor); statementClass.addTraceVariable("__url", "__setUrl", "__getUrl", "java.lang.Object"); diff --git a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/mysql/MySQLPreparedStatementModifier.java b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/mysql/MySQLPreparedStatementModifier.java index 0bc787444..240f52d19 100644 --- a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/mysql/MySQLPreparedStatementModifier.java +++ b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/mysql/MySQLPreparedStatementModifier.java @@ -66,18 +66,6 @@ public class MySQLPreparedStatementModifier extends AbstractModifier { } return null; } - -// Interceptor interceptor = newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.mysql.interceptor.ExecuteMethodInterceptor"); -// if (interceptor == null) { -// return null; -// } -// -// byteCodeInstrumentor.checkLibrary(classLoader, javassistClassName); -// -// InstrumentClass aClass = byteCodeInstrumentor.getClass(javassistClassName); -// aClass.addInterceptor("executeQuery", null, interceptor); - -// return changeMethod(javassistClassName, classFileBuffer); } private void bindVariableIntercept(InstrumentClass preparedStatement, ClassLoader classLoader, ProtectionDomain protectedDomain) throws InstrumentException { diff --git a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/mysql/MySQLStatementModifier.java b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/mysql/MySQLStatementModifier.java index 545cfc248..c0aa3cd6b 100644 --- a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/mysql/MySQLStatementModifier.java +++ b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/mysql/MySQLStatementModifier.java @@ -5,7 +5,6 @@ import java.security.ProtectionDomain; import com.nhn.pinpoint.profiler.Agent; import com.nhn.pinpoint.profiler.interceptor.Interceptor; import com.nhn.pinpoint.profiler.interceptor.ScopeDelegateSimpleInterceptor; -import com.nhn.pinpoint.profiler.interceptor.SimpleAroundInterceptor; import com.nhn.pinpoint.profiler.interceptor.bci.InstrumentException; import com.nhn.pinpoint.profiler.modifier.db.interceptor.JDBCScope; import com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteQueryInterceptor; @@ -13,6 +12,7 @@ import com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteQueryIn import com.nhn.pinpoint.profiler.interceptor.bci.ByteCodeInstrumentor; import com.nhn.pinpoint.profiler.interceptor.bci.InstrumentClass; import com.nhn.pinpoint.profiler.modifier.AbstractModifier; +import com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -42,20 +42,16 @@ public class MySQLStatementModifier extends AbstractModifier { statementClass.addInterceptor("executeQuery", new String[]{"java.lang.String"}, interceptor); // TODO 이거 고쳐야 됨. - SimpleAroundInterceptor executeUpdate1 = (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeUpdateInterceptor1 = new ScopeDelegateSimpleInterceptor(executeUpdate1, JDBCScope.SCOPE); + Interceptor executeUpdateInterceptor1 = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("executeUpdate", new String[]{"java.lang.String"}, executeUpdateInterceptor1); - SimpleAroundInterceptor executeUpdate2 = (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeUpdateInterceptor2 = new ScopeDelegateSimpleInterceptor(executeUpdate2, JDBCScope.SCOPE); + Interceptor executeUpdateInterceptor2 = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("executeUpdate", new String[]{"java.lang.String", "int"}, executeUpdateInterceptor2); - SimpleAroundInterceptor executeUpdate3 = (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeUpdateInterceptor3 = new ScopeDelegateSimpleInterceptor(executeUpdate3, JDBCScope.SCOPE); + Interceptor executeUpdateInterceptor3 = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("execute", new String[]{"java.lang.String"}, executeUpdateInterceptor3); - SimpleAroundInterceptor executeUpdate4 = (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeUpdateInterceptor4 = new ScopeDelegateSimpleInterceptor(executeUpdate4, JDBCScope.SCOPE); + Interceptor executeUpdateInterceptor4 = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("execute", new String[]{"java.lang.String", "int"}, executeUpdateInterceptor4); statementClass.addTraceVariable("__url", "__setUrl", "__getUrl", "java.lang.Object"); diff --git a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/oracle/OracleDriverModifier.java b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/oracle/OracleDriverModifier.java index d59a34fb5..7276b2d64 100644 --- a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/oracle/OracleDriverModifier.java +++ b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/oracle/OracleDriverModifier.java @@ -39,13 +39,11 @@ public class OracleDriverModifier extends AbstractModifier { Interceptor createConnection = new DriverConnectInterceptor(); - String[] params = new String[]{ - "java.lang.String", "java.util.Properties" - }; + String[] params = new String[]{ "java.lang.String", "java.util.Properties" }; oracleDriver.addInterceptor("connect", params, createConnection); - if (this.logger.isInfoEnabled()) { - this.logger.info("{} class is converted.", javassistClassName); + if (logger.isInfoEnabled()) { + logger.info("{} class is converted.", javassistClassName); } return oracleDriver.toBytecode(); diff --git a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/oracle/OracleStatementWrapperModifier.java b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/oracle/OracleStatementWrapperModifier.java index aa13b95ca..be3cba7a8 100644 --- a/src/main/java/com/nhn/pinpoint/profiler/modifier/db/oracle/OracleStatementWrapperModifier.java +++ b/src/main/java/com/nhn/pinpoint/profiler/modifier/db/oracle/OracleStatementWrapperModifier.java @@ -3,13 +3,13 @@ package com.nhn.pinpoint.profiler.modifier.db.oracle; import com.nhn.pinpoint.profiler.Agent; import com.nhn.pinpoint.profiler.interceptor.Interceptor; import com.nhn.pinpoint.profiler.interceptor.ScopeDelegateSimpleInterceptor; -import com.nhn.pinpoint.profiler.interceptor.SimpleAroundInterceptor; import com.nhn.pinpoint.profiler.interceptor.bci.ByteCodeInstrumentor; import com.nhn.pinpoint.profiler.interceptor.bci.InstrumentClass; import com.nhn.pinpoint.profiler.interceptor.bci.InstrumentException; import com.nhn.pinpoint.profiler.modifier.AbstractModifier; import com.nhn.pinpoint.profiler.modifier.db.interceptor.JDBCScope; import com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteQueryInterceptor; +import com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,21 +40,17 @@ public class OracleStatementWrapperModifier extends AbstractModifier { statementClass.addInterceptor("executeQuery", new String[]{"java.lang.String"}, executeQuery); // TODO 이거 고쳐야 됨. - SimpleAroundInterceptor executeUpdate1 = (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeUpdateInterceptor1 = new ScopeDelegateSimpleInterceptor(executeUpdate1, JDBCScope.SCOPE); + Interceptor executeUpdateInterceptor1 = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("executeUpdate", new String[]{"java.lang.String"}, executeUpdateInterceptor1); - SimpleAroundInterceptor executeUpdate2= (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeUpdateInterceptor2 = new ScopeDelegateSimpleInterceptor(executeUpdate2, JDBCScope.SCOPE); + Interceptor executeUpdateInterceptor2 = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("executeUpdate", new String[]{"java.lang.String", "int"}, executeUpdateInterceptor2); - SimpleAroundInterceptor execute1 = (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeInterceptor1 = new ScopeDelegateSimpleInterceptor(execute1, JDBCScope.SCOPE); + Interceptor executeInterceptor1 = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("execute", new String[]{"java.lang.String"}, executeInterceptor1); - SimpleAroundInterceptor execute2 = (SimpleAroundInterceptor) byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.nhn.pinpoint.profiler.modifier.db.interceptor.StatementExecuteUpdateInterceptor"); - Interceptor executeInterceptor2 = new ScopeDelegateSimpleInterceptor(execute2, JDBCScope.SCOPE); + Interceptor executeInterceptor2 = new ScopeDelegateSimpleInterceptor(new StatementExecuteUpdateInterceptor(), JDBCScope.SCOPE); statementClass.addInterceptor("execute", new String[]{"java.lang.String", "int"}, executeInterceptor2); statementClass.addTraceVariable("__url", "__setUrl", "__getUrl", "java.lang.Object");