Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
720c4ced
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 1 年多
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
720c4ced
编写于
3月 17, 2016
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.增加拦截器实例化的判断,#36。
2.httpClient-4.x-plugin,全面支持4.0版本。完成4.2和4.3差异化API测试。
上级
83659644
变更
8
隐藏空白更改
内联
并排
Showing
8 changed file
with
114 addition
and
15 deletion
+114
-15
skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceClazz4Interceptor.java
...ywalking/plugin/interceptor/EnhanceClazz4Interceptor.java
+4
-1
skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceException.java
...cloud/skywalking/plugin/interceptor/EnhanceException.java
+13
-0
skywalking-sdk-plugin/httpClient-4.x-plugin/pom.xml
skywalking-sdk-plugin/httpClient-4.x-plugin/pom.xml
+9
-0
skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java
...ng/httpClient/v4/plugin/HttpClientExecuteInterceptor.java
+3
-3
skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/define/AbstractHttpClientPluginDefine.java
...ient/v4/plugin/define/AbstractHttpClientPluginDefine.java
+1
-10
skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/define/DefaultRequestDirectorPluginDefine.java
.../v4/plugin/define/DefaultRequestDirectorPluginDefine.java
+22
-0
skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/resources/skywalking-plugin.def
...lient-4.x-plugin/src/main/resources/skywalking-plugin.def
+2
-1
skywalking-sdk-plugin/httpClient-4.x-plugin/src/test/java/org/skywalking/httpClient/v4/plugin/TestHttpClientV42.java
...rg/skywalking/httpClient/v4/plugin/TestHttpClientV42.java
+60
-0
未找到文件。
skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceClazz4Interceptor.java
浏览文件 @
720c4ced
...
...
@@ -50,7 +50,7 @@ public class EnhanceClazz4Interceptor {
private
void
enhance0
(
String
interceptorDefineClassName
)
throws
InstantiationException
,
IllegalAccessException
,
ClassNotFoundException
{
ClassNotFoundException
,
EnhanceException
{
logger
.
debug
(
"prepare to enhance class by {}."
,
interceptorDefineClassName
);
InterceptorDefine
define
=
(
InterceptorDefine
)
Class
.
forName
(
...
...
@@ -94,6 +94,9 @@ public class EnhanceClazz4Interceptor {
* required by interceptorDefineClass. <br/>
*/
IAroundInterceptor
interceptor
=
define
.
instance
();
if
(
interceptor
==
null
){
throw
new
EnhanceException
(
"no IAroundInterceptor instance. "
);
}
DynamicType
.
Builder
<?>
newClassBuilder
=
new
ByteBuddy
().
subclass
(
originClass
,
ConstructorStrategy
.
Default
.
IMITATE_SUPER_CLASS
);
...
...
skywalking-api/src/main/java/com/ai/cloud/skywalking/plugin/interceptor/EnhanceException.java
0 → 100644
浏览文件 @
720c4ced
package
com.ai.cloud.skywalking.plugin.interceptor
;
public
class
EnhanceException
extends
Exception
{
private
static
final
long
serialVersionUID
=
-
2234782755784217255L
;
public
EnhanceException
(
String
message
)
{
super
(
message
);
}
public
EnhanceException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
skywalking-sdk-plugin/httpClient-4.x-plugin/pom.xml
浏览文件 @
720c4ced
...
...
@@ -23,12 +23,21 @@
<version>
1.0-SNAPSHOT
</version>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpclient
</artifactId>
<version>
4.3
</version>
<scope>
test
</scope>
</dependency>
<!--
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.2</version>
<scope>test</scope>
</dependency>
-->
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
...
...
skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/HttpClientExecuteInterceptor.java
浏览文件 @
720c4ced
...
...
@@ -12,9 +12,9 @@ import com.ai.cloud.skywalking.plugin.interceptor.MethodInvokeContext;
public
class
HttpClientExecuteInterceptor
implements
IAroundInterceptor
{
/**
*
TODO: need laod from config
*
default headname of sky walking context<br/>
*/
public
static
String
traceHearName
=
"
"
;
public
static
String
TRACE_HEAD_NAME
=
"SkyWalking-TRACING-NAME
"
;
private
static
RPCBuriedPointSender
sender
=
new
RPCBuriedPointSender
();
...
...
@@ -35,7 +35,7 @@ public class HttpClientExecuteInterceptor implements IAroundInterceptor {
HttpRequest
httpRequest
=
(
HttpRequest
)
allArguments
[
1
];
httpRequest
.
setHeader
(
traceHearName
,
TRACE_HEAD_NAME
,
"ContextData="
+
sender
.
beforeSend
(
Identification
...
...
skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/define/AbstractHttpClientPluginDefine.java
浏览文件 @
720c4ced
package
org.skywalking.httpClient.v4.plugin.define
;
import
io.netty.handler.codec.http.HttpRequest
;
import
javax.xml.ws.spi.http.HttpContext
;
import
org.apache.http.HttpHost
;
import
com.ai.cloud.skywalking.plugin.interceptor.InterceptPoint
;
public
class
AbstractHttpClientPluginDefine
extends
HttpClientPluginDefine
{
...
...
@@ -20,13 +14,10 @@ public class AbstractHttpClientPluginDefine extends HttpClientPluginDefine {
* public final HttpResponse execute(HttpHost target, HttpRequest request,
* HttpContext context)<br/>
*
* since version 4.3,intercept method: doExecute<br/>
*/
@Override
public
InterceptPoint
[]
getBeInterceptedMethods
()
{
return
new
InterceptPoint
[]
{
new
InterceptPoint
(
"doExecute"
),
new
InterceptPoint
(
"execute"
,
HttpHost
.
class
,
HttpRequest
.
class
,
HttpContext
.
class
)
};
new
InterceptPoint
(
"doExecute"
)};
}
}
skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/java/org/skywalking/httpClient/v4/plugin/define/DefaultRequestDirectorPluginDefine.java
0 → 100644
浏览文件 @
720c4ced
package
org.skywalking.httpClient.v4.plugin.define
;
import
com.ai.cloud.skywalking.plugin.interceptor.InterceptPoint
;
public
class
DefaultRequestDirectorPluginDefine
extends
HttpClientPluginDefine
{
/**
* DefaultRequestDirector is default implement.<br/>
* usually use in version 4.0-4.2<br/>
* since 4.3, this class is Deprecated.
*/
@Override
public
String
getBeInterceptedClassName
()
{
return
"org.apache.http.impl.client.DefaultRequestDirector"
;
}
@Override
public
InterceptPoint
[]
getBeInterceptedMethods
()
{
return
new
InterceptPoint
[]
{
new
InterceptPoint
(
"execute"
)};
}
}
skywalking-sdk-plugin/httpClient-4.x-plugin/src/main/resources/skywalking-plugin.def
浏览文件 @
720c4ced
org.skywalking.httpClient.v4.plugin.define.AbstractHttpClientPluginDefine
org.skywalking.httpClient.v4.plugin.define.InternalHttpClientPluginDefine
org.skywalking.httpClient.v4.plugin.define.MinimalHttpClientPluginDefine
\ No newline at end of file
org.skywalking.httpClient.v4.plugin.define.MinimalHttpClientPluginDefine
org.skywalking.httpClient.v4.plugin.define.DefaultRequestDirectorPluginDefine
\ No newline at end of file
skywalking-sdk-plugin/httpClient-4.x-plugin/src/test/java/org/skywalking/httpClient/v4/plugin/TestHttpClientV42.java
0 → 100644
浏览文件 @
720c4ced
package
org.skywalking.httpClient.v4.plugin
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.lang.reflect.InvocationTargetException
;
import
java.sql.SQLException
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.client.ClientProtocolException
;
import
org.apache.http.client.HttpClient
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.impl.client.DefaultHttpClient
;
import
org.junit.Test
;
import
com.ai.cloud.skywalking.plugin.TracingBootstrap
;
public
class
TestHttpClientV42
{
@Test
public
void
testsql
()
throws
IllegalAccessException
,
IllegalArgumentException
,
InvocationTargetException
,
NoSuchMethodException
,
SecurityException
,
ClassNotFoundException
{
TracingBootstrap
.
main
(
new
String
[]
{
"org.skywalking.httpClient.v4.plugin.TestHttpClientV42"
});
}
public
static
void
main
(
String
[]
args
)
throws
ClassNotFoundException
,
SQLException
,
InterruptedException
,
ClientProtocolException
,
IOException
{
// 默认的client类。
HttpClient
client
=
new
DefaultHttpClient
();
// 设置为get取连接的方式.
HttpGet
get
=
new
HttpGet
(
"http://www.baidu.com"
);
// 得到返回的response.
HttpResponse
response
=
client
.
execute
(
get
);
// 得到返回的client里面的实体对象信息.
HttpEntity
entity
=
response
.
getEntity
();
if
(
entity
!=
null
)
{
System
.
out
.
println
(
"内容编码是:"
+
entity
.
getContentEncoding
());
System
.
out
.
println
(
"内容类型是:"
+
entity
.
getContentType
());
// 得到返回的主体内容.
InputStream
instream
=
entity
.
getContent
();
try
{
BufferedReader
reader
=
new
BufferedReader
(
new
InputStreamReader
(
instream
,
"UTF-8"
));
System
.
out
.
println
(
reader
.
readLine
());
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
finally
{
instream
.
close
();
}
}
// 关闭连接.
client
.
getConnectionManager
().
shutdown
();
Thread
.
sleep
(
5
*
1000
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录