From 4aa1ad63eac97ac763569bc4da74960f65feec56 Mon Sep 17 00:00:00 2001 From: Woonduk Kang Date: Tue, 12 Mar 2013 05:12:48 +0000 Subject: [PATCH] =?UTF-8?q?[=EA=B0=95=EC=9A=B4=EB=8D=95]=20[LUCYSUS-1744]?= =?UTF-8?q?=20rpc=20client=EC=AA=BD=EC=9D=98=20interceptor=EC=97=90?= =?UTF-8?q?=EC=84=9C=20rpcName=20=EC=A0=80=EC=9E=A5=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EC=A0=9C=EA=B1=B0.?= 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@1325 84d0f5b1-2673-498c-a247-62c4ff18d310 --- .../interceptor/bci/InstrumentClass.java | 2 +- .../interceptor/bci/JavaAssistClass.java | 2 +- .../modifier/DefaultModifierRegistry.java | 8 ++++---- .../HttpClient4Modifier.java} | 16 ++++++++-------- .../interceptor}/Execute2MethodInterceptor.java | 3 +-- .../interceptor}/ExecuteMethodInterceptor.java | 3 +-- .../HttpURLConnectionModifier.java | 9 +++++---- .../interceptor}/ConnectMethodInterceptor.java | 3 +-- .../interceptor/bci/JavaAssistClassTest.java | 4 ++-- 9 files changed, 24 insertions(+), 26 deletions(-) rename src/main/java/com/profiler/modifier/connector/{HTTPClientModifier.java => httpclient4/HttpClient4Modifier.java} (75%) rename src/main/java/com/profiler/modifier/connector/{interceptors => httpclient4/interceptor}/Execute2MethodInterceptor.java (98%) rename src/main/java/com/profiler/modifier/connector/{interceptors => httpclient4/interceptor}/ExecuteMethodInterceptor.java (97%) rename src/main/java/com/profiler/modifier/connector/{ => jdkhttpconnector}/HttpURLConnectionModifier.java (74%) rename src/main/java/com/profiler/modifier/connector/{interceptors => jdkhttpconnector/interceptor}/ConnectMethodInterceptor.java (97%) diff --git a/src/main/java/com/profiler/interceptor/bci/InstrumentClass.java b/src/main/java/com/profiler/interceptor/bci/InstrumentClass.java index e7dad80aa..1ae8ffc01 100644 --- a/src/main/java/com/profiler/interceptor/bci/InstrumentClass.java +++ b/src/main/java/com/profiler/interceptor/bci/InstrumentClass.java @@ -17,7 +17,7 @@ public interface InstrumentClass { int addInterceptor(String methodName, String[] args, Interceptor interceptor) throws InstrumentException, NotFoundInstrumentException; - int addInterceptorFromContextClassLoader(String methodName, String[] args, Interceptor interceptor) throws InstrumentException, NotFoundInstrumentException; + int addInterceptorCallByContextClassLoader(String methodName, String[] args, Interceptor interceptor) throws InstrumentException, NotFoundInstrumentException; int addInterceptor(String methodName, String[] args, Interceptor interceptor, Type type) throws InstrumentException, NotFoundInstrumentException; diff --git a/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java b/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java index 157a2fd24..a011b2969 100644 --- a/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java +++ b/src/main/java/com/profiler/interceptor/bci/JavaAssistClass.java @@ -123,7 +123,7 @@ public class JavaAssistClass implements InstrumentClass { @Override - public int addInterceptorFromContextClassLoader(String methodName, String[] args, Interceptor interceptor) throws InstrumentException, NotFoundInstrumentException { + public int addInterceptorCallByContextClassLoader(String methodName, String[] args, Interceptor interceptor) throws InstrumentException, NotFoundInstrumentException { if (interceptor == null) { throw new IllegalArgumentException("interceptor is null"); } diff --git a/src/main/java/com/profiler/modifier/DefaultModifierRegistry.java b/src/main/java/com/profiler/modifier/DefaultModifierRegistry.java index ffcc1162c..0488a8280 100644 --- a/src/main/java/com/profiler/modifier/DefaultModifierRegistry.java +++ b/src/main/java/com/profiler/modifier/DefaultModifierRegistry.java @@ -11,8 +11,8 @@ import com.profiler.modifier.arcus.BaseOperationModifier; import com.profiler.modifier.arcus.CacheManagerModifier; import com.profiler.modifier.arcus.MemcachedClientModifier; import com.profiler.modifier.bloc.handler.HTTPHandlerModifier; -import com.profiler.modifier.connector.HTTPClientModifier; -import com.profiler.modifier.connector.HttpURLConnectionModifier; +import com.profiler.modifier.connector.httpclient4.HttpClient4Modifier; +import com.profiler.modifier.connector.jdkhttpconnector.HttpURLConnectionModifier; import com.profiler.modifier.db.cubrid.CubridPreparedStatementModifier; import com.profiler.modifier.db.cubrid.CubridResultSetModifier; import com.profiler.modifier.db.cubrid.CubridStatementModifier; @@ -77,8 +77,8 @@ public class DefaultModifierRegistry implements ModifierRegistry { FilterModifier filterModifier = new FilterModifier(byteCodeInstrumentor, agent); addModifier(filterModifier); - HTTPClientModifier httpClientModifier = new HTTPClientModifier(byteCodeInstrumentor, agent); - addModifier(httpClientModifier); + HttpClient4Modifier httpClient4Modifier = new HttpClient4Modifier(byteCodeInstrumentor, agent); + addModifier(httpClient4Modifier); MemcachedClientModifier memcachedClientModifier = new MemcachedClientModifier(byteCodeInstrumentor, agent); addModifier(memcachedClientModifier); diff --git a/src/main/java/com/profiler/modifier/connector/HTTPClientModifier.java b/src/main/java/com/profiler/modifier/connector/httpclient4/HttpClient4Modifier.java similarity index 75% rename from src/main/java/com/profiler/modifier/connector/HTTPClientModifier.java rename to src/main/java/com/profiler/modifier/connector/httpclient4/HttpClient4Modifier.java index 8d19e144c..573ae7643 100644 --- a/src/main/java/com/profiler/modifier/connector/HTTPClientModifier.java +++ b/src/main/java/com/profiler/modifier/connector/httpclient4/HttpClient4Modifier.java @@ -1,4 +1,4 @@ -package com.profiler.modifier.connector; +package com.profiler.modifier.connector.httpclient4; import java.security.ProtectionDomain; import java.util.logging.Level; @@ -12,11 +12,11 @@ import com.profiler.interceptor.bci.InstrumentException; import com.profiler.modifier.AbstractModifier; /** - * Apache httpclient modifier + * Apache httpclient4 modifier *

*

*

- * http://grepcode.com/file/repo1.maven.org/maven2/org.apache.httpcomponents/httpclient/4.0.3/org/apache/http/impl/client/AbstractHttpClient.java#AbstractHttpClient.execute%28org.apache.http.HttpHost%2Corg.apache.http.HttpRequest%2Corg.apache.http.client.ResponseHandler%2Corg.apache.http.protocol.HttpContext%29
+ * http://grepcode.com/file/repo1.maven.org/maven2/org.apache.httpcomponents/httpclient4/4.0.3/org/apache/http/impl/client/AbstractHttpClient.java#AbstractHttpClient.execute%28org.apache.http.HttpHost%2Corg.apache.http.HttpRequest%2Corg.apache.http.client.ResponseHandler%2Corg.apache.http.protocol.HttpContext%29
  *
  * Hooking
  * org.apache.http.impl.client.AbstractHttpClient.
@@ -30,11 +30,11 @@ import com.profiler.modifier.AbstractModifier;
  *
  * @author netspider
  */
-public class HTTPClientModifier extends AbstractModifier {
+public class HttpClient4Modifier extends AbstractModifier {
 
-    private final Logger logger = Logger.getLogger(HTTPClientModifier.class.getName());
+    private final Logger logger = Logger.getLogger(HttpClient4Modifier.class.getName());
 
-    public HTTPClientModifier(ByteCodeInstrumentor byteCodeInstrumentor, Agent agent) {
+    public HttpClient4Modifier(ByteCodeInstrumentor byteCodeInstrumentor, Agent agent) {
         super(byteCodeInstrumentor, agent);
     }
 
@@ -50,10 +50,10 @@ public class HTTPClientModifier extends AbstractModifier {
         byteCodeInstrumentor.checkLibrary(classLoader, javassistClassName);
         try {
             InstrumentClass aClass = byteCodeInstrumentor.getClass(javassistClassName);
-            Interceptor interceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.connector.interceptors.ExecuteMethodInterceptor");
+            Interceptor interceptor = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.connector.httpclient4.interceptor.ExecuteMethodInterceptor");
             aClass.addInterceptor("execute", new String[]{"org.apache.http.HttpHost", "org.apache.http.HttpRequest", "org.apache.http.client.ResponseHandler", "org.apache.http.protocol.HttpContext"}, interceptor);
 
-            Interceptor interceptor2 = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.connector.interceptors.Execute2MethodInterceptor");
+            Interceptor interceptor2 = byteCodeInstrumentor.newInterceptor(classLoader, protectedDomain, "com.profiler.modifier.connector.httpclient4.interceptor.Execute2MethodInterceptor");
             aClass.addInterceptor("execute", new String[]{"org.apache.http.client.methods.HttpUriRequest"}, interceptor2);
 
             return aClass.toBytecode();
diff --git a/src/main/java/com/profiler/modifier/connector/interceptors/Execute2MethodInterceptor.java b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java
similarity index 98%
rename from src/main/java/com/profiler/modifier/connector/interceptors/Execute2MethodInterceptor.java
rename to src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java
index 84c26d487..e9ac7ba52 100644
--- a/src/main/java/com/profiler/modifier/connector/interceptors/Execute2MethodInterceptor.java
+++ b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/Execute2MethodInterceptor.java
@@ -1,4 +1,4 @@
-package com.profiler.modifier.connector.interceptors;
+package com.profiler.modifier.connector.httpclient4.interceptor;
 
 import java.net.URI;
 import java.util.logging.Logger;
@@ -62,7 +62,6 @@ public class Execute2MethodInterceptor implements StaticAroundInterceptor, ByteC
 		HttpHost host = extractHost(request.getURI());
 
         trace.recordServiceType(ServiceType.HTTP_CLIENT);
-        trace.recordRpcName("CLIENT");
 
 		int port = host.getPort();
 		trace.recordEndPoint(host.getHostName() + ((port > 0) ? ":" + port : ""));
diff --git a/src/main/java/com/profiler/modifier/connector/interceptors/ExecuteMethodInterceptor.java b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java
similarity index 97%
rename from src/main/java/com/profiler/modifier/connector/interceptors/ExecuteMethodInterceptor.java
rename to src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java
index 704b63e28..d06b1d3e8 100644
--- a/src/main/java/com/profiler/modifier/connector/interceptors/ExecuteMethodInterceptor.java
+++ b/src/main/java/com/profiler/modifier/connector/httpclient4/interceptor/ExecuteMethodInterceptor.java
@@ -1,4 +1,4 @@
-package com.profiler.modifier.connector.interceptors;
+package com.profiler.modifier.connector.httpclient4.interceptor;
 
 import java.util.logging.Logger;
 
@@ -63,7 +63,6 @@ public class ExecuteMethodInterceptor implements StaticAroundInterceptor, ByteCo
         request.addHeader(Header.HTTP_FLAGS.toString(), String.valueOf(nextId.getFlags()));
 
         trace.recordServiceType(ServiceType.HTTP_CLIENT);
-        trace.recordRpcName("CLIENT");
 
 		int port = host.getPort();
 		trace.recordEndPoint(host.getHostName() +  ((port > 0) ? ":" + port : ""));
diff --git a/src/main/java/com/profiler/modifier/connector/HttpURLConnectionModifier.java b/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/HttpURLConnectionModifier.java
similarity index 74%
rename from src/main/java/com/profiler/modifier/connector/HttpURLConnectionModifier.java
rename to src/main/java/com/profiler/modifier/connector/jdkhttpconnector/HttpURLConnectionModifier.java
index 729f03bd8..9d83c6286 100644
--- a/src/main/java/com/profiler/modifier/connector/HttpURLConnectionModifier.java
+++ b/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/HttpURLConnectionModifier.java
@@ -1,4 +1,4 @@
-package com.profiler.modifier.connector;
+package com.profiler.modifier.connector.jdkhttpconnector;
 
 import java.security.ProtectionDomain;
 import java.util.logging.Level;
@@ -9,7 +9,8 @@ import com.profiler.interceptor.bci.ByteCodeInstrumentor;
 import com.profiler.interceptor.bci.InstrumentClass;
 import com.profiler.interceptor.bci.InstrumentException;
 import com.profiler.modifier.AbstractModifier;
-import com.profiler.modifier.connector.interceptors.ConnectMethodInterceptor;
+import com.profiler.modifier.connector.httpclient4.HttpClient4Modifier;
+import com.profiler.modifier.connector.jdkhttpconnector.interceptor.ConnectMethodInterceptor;
 
 /**
  * TODO classloader문제 있음.
@@ -18,7 +19,7 @@ import com.profiler.modifier.connector.interceptors.ConnectMethodInterceptor;
  */
 public class HttpURLConnectionModifier extends AbstractModifier {
 
-	private final Logger logger = Logger.getLogger(HTTPClientModifier.class.getName());
+	private final Logger logger = Logger.getLogger(HttpClient4Modifier.class.getName());
 
 	public HttpURLConnectionModifier(ByteCodeInstrumentor byteCodeInstrumentor, Agent agent) {
 		super(byteCodeInstrumentor, agent);
@@ -37,7 +38,7 @@ public class HttpURLConnectionModifier extends AbstractModifier {
 		try {
 			InstrumentClass aClass = byteCodeInstrumentor.getClass(javassistClassName);
             ConnectMethodInterceptor connectMethodInterceptor = new ConnectMethodInterceptor();
-            aClass.addInterceptorFromContextClassLoader("connect", null, connectMethodInterceptor);
+            aClass.addInterceptorCallByContextClassLoader("connect", null, connectMethodInterceptor);
 
 			return aClass.toBytecode();
 		} catch (InstrumentException e) {
diff --git a/src/main/java/com/profiler/modifier/connector/interceptors/ConnectMethodInterceptor.java b/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java
similarity index 97%
rename from src/main/java/com/profiler/modifier/connector/interceptors/ConnectMethodInterceptor.java
rename to src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java
index 2019ec75a..762867b3e 100644
--- a/src/main/java/com/profiler/modifier/connector/interceptors/ConnectMethodInterceptor.java
+++ b/src/main/java/com/profiler/modifier/connector/jdkhttpconnector/interceptor/ConnectMethodInterceptor.java
@@ -1,4 +1,4 @@
-package com.profiler.modifier.connector.interceptors;
+package com.profiler.modifier.connector.jdkhttpconnector.interceptor;
 
 import java.net.HttpURLConnection;
 import java.util.logging.Logger;
@@ -52,7 +52,6 @@ public class ConnectMethodInterceptor implements StaticAroundInterceptor, ByteCo
 		request.setRequestProperty(Header.HTTP_FLAGS.toString(), String.valueOf(nextId.getFlags()));
 
 		trace.recordServiceType(ServiceType.JDK_HTTPURLCONNECTOR);
-		trace.recordRpcName("CLIENT");
 
 		String host = request.getURL().getHost();
 		int port = request.getURL().getPort();
diff --git a/src/test/java/com/profiler/interceptor/bci/JavaAssistClassTest.java b/src/test/java/com/profiler/interceptor/bci/JavaAssistClassTest.java
index 2d8c9afe1..48d2419f8 100644
--- a/src/test/java/com/profiler/interceptor/bci/JavaAssistClassTest.java
+++ b/src/test/java/com/profiler/interceptor/bci/JavaAssistClassTest.java
@@ -47,7 +47,7 @@ public class JavaAssistClassTest {
         TestBeforeInterceptor interceptor = new TestBeforeInterceptor();
         String methodName = "callA";
 
-        aClass.addInterceptorFromContextClassLoader(methodName, null, interceptor);
+        aClass.addInterceptorCallByContextClassLoader(methodName, null, interceptor);
 
         Object testObject = aClass.toClass().newInstance();
         Method callA = testObject.getClass().getMethod(methodName);
@@ -63,7 +63,7 @@ public class JavaAssistClassTest {
 
     @Test
     public void testAddAfterInterceptor() throws Exception {
-        // TODO aClass.addInterceptorFromContextClassLoader 코드의 테스트 케이스도 추가해야함.
+        // TODO aClass.addInterceptorCallByContextClassLoader 코드의 테스트 케이스도 추가해야함.
 
         ByteCodeInstrumentor javaAssistByteCodeInstrumentor = new JavaAssistByteCodeInstrumentor();
         InstrumentClass aClass = javaAssistByteCodeInstrumentor.getClass("com.profiler.interceptor.bci.TestObject2");