Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
e4d68b40
C
cat
项目概览
梦中观雨
/
cat
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
cat
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e4d68b40
编写于
6月 07, 2013
作者:
A
ainilife
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add HttpServletResponse into ABTestContext
上级
e06a14aa
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
94 addition
and
49 deletion
+94
-49
abtest-sample/src/test/java/com/dianping/abtest/sample/ABTestServerConfigurator.java
.../com/dianping/abtest/sample/ABTestServerConfigurator.java
+7
-0
abtest-sample/src/test/resources/com/dianping/abtest/sample/ABTestServer.xml
...est/resources/com/dianping/abtest/sample/ABTestServer.xml
+12
-0
cat-core/src/main/java/com/dianping/cat/abtest/ABTestManager.java
.../src/main/java/com/dianping/cat/abtest/ABTestManager.java
+3
-2
cat-core/src/main/java/com/dianping/cat/abtest/spi/ABTestContext.java
.../main/java/com/dianping/cat/abtest/spi/ABTestContext.java
+3
-0
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/ABTestContextManager.java
...ianping/cat/abtest/spi/internal/ABTestContextManager.java
+2
-1
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestContext.java
...ianping/cat/abtest/spi/internal/DefaultABTestContext.java
+15
-4
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestContextManager.java
.../cat/abtest/spi/internal/DefaultABTestContextManager.java
+21
-13
cat-core/src/main/java/com/dianping/cat/build/ABTestComponentConfigurator.java
...a/com/dianping/cat/build/ABTestComponentConfigurator.java
+1
-1
cat-core/src/main/java/com/dianping/cat/servlet/CatFilter.java
...ore/src/main/java/com/dianping/cat/servlet/CatFilter.java
+3
-1
cat-core/src/main/resources/META-INF/plexus/components.xml
cat-core/src/main/resources/META-INF/plexus/components.xml
+1
-1
cat-core/src/test/java/com/dianping/cat/abtest/demo/roundrobin/ABTestServerConfigurator.java
.../cat/abtest/demo/roundrobin/ABTestServerConfigurator.java
+4
-4
cat-core/src/test/resources/com/dianping/cat/abtest/demo/roundrobin/ABTestServer.xml
.../com/dianping/cat/abtest/demo/roundrobin/ABTestServer.xml
+7
-7
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+15
-15
未找到文件。
abtest-sample/src/test/java/com/dianping/abtest/sample/ABTestServerConfigurator.java
浏览文件 @
e4d68b40
...
...
@@ -6,7 +6,10 @@ import java.util.List;
import
org.unidal.lookup.configuration.AbstractResourceConfigurator
;
import
org.unidal.lookup.configuration.Component
;
import
com.dianping.cat.abtest.repository.ABTestEntityRepository
;
import
com.dianping.cat.abtest.repository.HttpABTestEntityRepository
;
import
com.dianping.cat.abtest.spi.ABTestGroupStrategy
;
import
com.dianping.cat.configuration.ClientConfigManager
;
public
class
ABTestServerConfigurator
extends
AbstractResourceConfigurator
{
@Override
...
...
@@ -15,6 +18,10 @@ public class ABTestServerConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
ABTestGroupStrategy
.
class
,
IPDistributionStrategy
.
ID
,
IPDistributionStrategy
.
class
)
.
is
(
PER_LOOKUP
));
all
.
add
(
C
(
ABTestEntityRepository
.
class
,
HttpABTestEntityRepository
.
class
)
//
.
req
(
ClientConfigManager
.
class
)
.
config
(
E
(
"refreshTimeInSeconds"
).
value
(
"6"
)));
return
all
;
}
...
...
abtest-sample/src/test/resources/com/dianping/abtest/sample/ABTestServer.xml
浏览文件 @
e4d68b40
...
...
@@ -6,5 +6,17 @@
<implementation>
com.dianping.abtest.sample.IPDistributionStrategy
</implementation>
<instantiation-strategy>
per-lookup
</instantiation-strategy>
</component>
<component>
<role>
com.dianping.cat.abtest.repository.ABTestEntityRepository
</role>
<implementation>
com.dianping.cat.abtest.repository.HttpABTestEntityRepository
</implementation>
<configuration>
<refreshTimeInSeconds>
6
</refreshTimeInSeconds>
</configuration>
<requirements>
<requirement>
<role>
com.dianping.cat.configuration.ClientConfigManager
</role>
</requirement>
</requirements>
</component>
</components>
</plexus>
cat-core/src/main/java/com/dianping/cat/abtest/ABTestManager.java
浏览文件 @
e4d68b40
package
com.dianping.cat.abtest
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.codehaus.plexus.PlexusContainer
;
import
org.unidal.helper.Threads
;
...
...
@@ -43,10 +44,10 @@ public final class ABTestManager {
}
}
public
static
void
onRequestBegin
(
HttpServletRequest
req
)
{
public
static
void
onRequestBegin
(
HttpServletRequest
req
uest
,
HttpServletResponse
response
)
{
initialize
();
s_contextManager
.
onRequestBegin
(
req
);
s_contextManager
.
onRequestBegin
(
req
uest
,
response
);
}
public
static
void
onRequestEnd
()
{
...
...
cat-core/src/main/java/com/dianping/cat/abtest/spi/ABTestContext.java
浏览文件 @
e4d68b40
package
com.dianping.cat.abtest.spi
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
public
interface
ABTestContext
{
public
final
String
DEFAULT_GROUP
=
"default"
;
...
...
@@ -12,4 +13,6 @@ public interface ABTestContext {
public
void
setGroupName
(
String
groupName
);
public
HttpServletRequest
getHttpServletRequest
();
public
HttpServletResponse
getHttpServletResponse
();
}
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/ABTestContextManager.java
浏览文件 @
e4d68b40
...
...
@@ -3,6 +3,7 @@ package com.dianping.cat.abtest.spi.internal;
import
java.util.List
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dianping.cat.abtest.ABTestName
;
import
com.dianping.cat.abtest.spi.ABTestContext
;
...
...
@@ -12,7 +13,7 @@ public interface ABTestContextManager {
public
List
<
ABTestContext
>
getContexts
();
public
void
onRequestBegin
(
HttpServletRequest
req
);
public
void
onRequestBegin
(
HttpServletRequest
req
uest
,
HttpServletResponse
response
);
public
void
onRequestEnd
();
}
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestContext.java
浏览文件 @
e4d68b40
...
...
@@ -3,6 +3,7 @@ package com.dianping.cat.abtest.spi.internal;
import
java.util.Date
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.abtest.spi.ABTestContext
;
...
...
@@ -16,7 +17,9 @@ public class DefaultABTestContext implements ABTestContext {
private
ABTestEntity
m_entity
;
private
HttpServletRequest
m_req
;
private
HttpServletRequest
m_request
;
private
HttpServletResponse
m_response
;
private
ABTestGroupStrategy
m_groupStrategy
;
...
...
@@ -61,15 +64,21 @@ public class DefaultABTestContext implements ABTestContext {
m_groupName
=
groupName
;
}
public
void
setup
(
HttpServletRequest
req
)
{
m_req
=
req
;
public
void
setup
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
m_request
=
request
;
m_response
=
response
;
}
@Override
public
HttpServletRequest
getHttpServletRequest
()
{
return
m_req
;
return
m_req
uest
;
}
@Override
public
HttpServletResponse
getHttpServletResponse
()
{
return
m_response
;
}
@Override
public
ABTestEntity
getEntity
()
{
return
m_entity
;
...
...
@@ -78,4 +87,6 @@ public class DefaultABTestContext implements ABTestContext {
public
void
setGroupStrategy
(
ABTestGroupStrategy
groupStrategy
)
{
m_groupStrategy
=
groupStrategy
;
}
}
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestContextManager.java
浏览文件 @
e4d68b40
...
...
@@ -7,6 +7,7 @@ import java.util.List;
import
java.util.Map
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
org.unidal.lookup.ContainerHolder
;
import
org.unidal.lookup.annotation.Inject
;
...
...
@@ -37,20 +38,20 @@ public class DefaultABTestContextManager extends ContainerHolder implements ABTe
if
(
ctx
==
null
)
{
ABTestEntity
entity
=
m_entityManager
.
getEntity
(
testName
);
ctx
=
createContext
(
entity
,
entry
.
getHttpServletRequest
());
ctx
=
createContext
(
entity
,
entry
.
getHttpServletRequest
()
,
entry
.
getHttpServletResponse
()
);
map
.
put
(
name
,
ctx
);
}
return
ctx
;
}
private
DefaultABTestContext
createContext
(
ABTestEntity
entity
,
HttpServletRequest
req
)
{
private
DefaultABTestContext
createContext
(
ABTestEntity
entity
,
HttpServletRequest
req
uest
,
HttpServletResponse
response
)
{
DefaultABTestContext
ctx
=
new
DefaultABTestContext
(
entity
);
if
(!
entity
.
isDisabled
())
{
ABTestGroupStrategy
groupStrategy
=
entity
.
getGroupStrategy
();
ctx
.
setup
(
req
);
ctx
.
setup
(
req
uest
,
response
);
ctx
.
setGroupStrategy
(
groupStrategy
);
}
...
...
@@ -73,7 +74,7 @@ public class DefaultABTestContextManager extends ContainerHolder implements ABTe
DefaultABTestContext
ctx
=
ctxMap
.
get
(
name
);
if
(
ctx
==
null
)
{
ctx
=
createContext
(
entity
,
entry
.
getHttpServletRequest
());
ctx
=
createContext
(
entity
,
entry
.
getHttpServletRequest
()
,
entry
.
getHttpServletResponse
()
);
ctxMap
.
put
(
name
,
ctx
);
}
...
...
@@ -95,14 +96,14 @@ public class DefaultABTestContextManager extends ContainerHolder implements ABTe
}
@Override
public
void
onRequestBegin
(
HttpServletRequest
req
)
{
public
void
onRequestBegin
(
HttpServletRequest
req
uest
,
HttpServletResponse
response
)
{
Entry
entry
=
m_threadLocal
.
get
();
entry
.
set
HttpServletRequest
(
req
);
entry
.
set
up
(
request
,
response
);
Map
<
String
,
DefaultABTestContext
>
map
=
entry
.
getContextMap
();
for
(
DefaultABTestContext
ctx
:
map
.
values
())
{
ctx
.
setup
(
req
);
ctx
.
setup
(
req
uest
,
response
);
}
}
...
...
@@ -111,12 +112,23 @@ public class DefaultABTestContextManager extends ContainerHolder implements ABTe
private
List
<
ABTestContext
>
m_list
;
private
HttpServletRequest
m_req
;
private
HttpServletRequest
m_request
;
private
HttpServletResponse
m_response
;
public
Map
<
String
,
DefaultABTestContext
>
getContextMap
()
{
return
m_map
;
}
public
void
setup
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
m_request
=
request
;
m_response
=
response
;
}
public
HttpServletResponse
getHttpServletResponse
()
{
return
m_response
;
}
public
void
setContextList
(
List
<
ABTestContext
>
ctxList
)
{
m_list
=
ctxList
;
}
...
...
@@ -126,11 +138,7 @@ public class DefaultABTestContextManager extends ContainerHolder implements ABTe
}
public
HttpServletRequest
getHttpServletRequest
()
{
return
m_req
;
}
public
void
setHttpServletRequest
(
HttpServletRequest
req
)
{
m_req
=
req
;
return
m_request
;
}
}
}
cat-core/src/main/java/com/dianping/cat/build/ABTestComponentConfigurator.java
浏览文件 @
e4d68b40
...
...
@@ -24,7 +24,7 @@ class ABTestComponentConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
ABTestEntityRepository
.
class
,
HttpABTestEntityRepository
.
class
)
//
.
req
(
ClientConfigManager
.
class
)
.
config
(
E
(
"refreshTime
"
).
value
(
"6
"
)));
.
config
(
E
(
"refreshTime
InSeconds"
).
value
(
"60
"
)));
all
.
add
(
C
(
ABTestEntityManager
.
class
,
DefaultABTestEntityManager
.
class
)
//
.
req
(
ABTestEntityRepository
.
class
));
...
...
cat-core/src/main/java/com/dianping/cat/servlet/CatFilter.java
浏览文件 @
e4d68b40
...
...
@@ -10,6 +10,7 @@ import javax.servlet.ServletRequest;
import
javax.servlet.ServletResponse
;
import
javax.servlet.http.Cookie
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.CatConstants
;
...
...
@@ -28,6 +29,7 @@ public class CatFilter implements Filter {
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
HttpServletRequest
req
=
(
HttpServletRequest
)
request
;
HttpServletResponse
resp
=
(
HttpServletResponse
)
response
;
boolean
isRoot
=
!
Cat
.
getManager
().
hasContext
();
if
(
isRoot
)
{
...
...
@@ -41,7 +43,7 @@ public class CatFilter implements Filter {
if
(
isRoot
)
{
t
=
Cat
.
newTransaction
(
getTypeName
(),
getOriginalUrl
(
request
));
logRequestClientInfo
(
cat
,
req
);
ABTestManager
.
onRequestBegin
(
req
);
ABTestManager
.
onRequestBegin
(
req
,
resp
);
}
else
{
t
=
Cat
.
newTransaction
(
getTypeName
()
+
".Forward"
,
getOriginalUrl
(
request
));
}
...
...
cat-core/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
e4d68b40
...
...
@@ -315,7 +315,7 @@
<role>
com.dianping.cat.abtest.repository.ABTestEntityRepository
</role>
<implementation>
com.dianping.cat.abtest.repository.HttpABTestEntityRepository
</implementation>
<configuration>
<refreshTime
>
6
</refreshTime
>
<refreshTime
InSeconds>
60
</refreshTimeInSeconds
>
</configuration>
<requirements>
<requirement>
...
...
cat-core/src/test/java/com/dianping/cat/abtest/demo/roundrobin/ABTestServerConfigurator.java
浏览文件 @
e4d68b40
...
...
@@ -6,17 +6,17 @@ import java.util.List;
import
org.unidal.lookup.configuration.AbstractResourceConfigurator
;
import
org.unidal.lookup.configuration.Component
;
import
com.dianping.cat.abtest.spi.
ABTestGroupStrategy
;
import
com.dianping.cat.abtest.spi.
internal.ABTestContextManager
;
import
com.dianping.cat.abtest.spi.internal.ABTestEntityManager
;
import
com.dianping.cat.abtest.spi.internal.DefaultABTest
Entity
Manager
;
import
com.dianping.cat.abtest.spi.internal.DefaultABTest
Context
Manager
;
public
class
ABTestServerConfigurator
extends
AbstractResourceConfigurator
{
@Override
public
List
<
Component
>
defineComponents
()
{
List
<
Component
>
all
=
new
ArrayList
<
Component
>();
all
.
add
(
C
(
ABTest
EntityManager
.
class
,
DefaultABTestEntityManager
.
class
));
all
.
add
(
C
(
ABTestGroupStrategy
.
class
,
"roundrobin"
,
RoundRobinGroupStrategy
.
class
));
all
.
add
(
C
(
ABTest
ContextManager
.
class
,
DefaultABTestContextManager
.
class
)
//
.
req
(
ABTestEntityManager
.
class
));
return
all
;
}
...
...
cat-core/src/test/resources/com/dianping/cat/abtest/demo/roundrobin/ABTestServer.xml
浏览文件 @
e4d68b40
<plexus>
<components>
<component>
<role>
com.dianping.cat.abtest.spi.
ABTestEntity
Manager
</role>
<implementation>
com.dianping.cat.abtest.spi.internal.DefaultABTest
Entity
Manager
</implementation>
</component
>
<compon
ent>
<role>
com.dianping.cat.abtest.spi.ABTestGroupStrategy
</role>
<role-hint>
roundrobin
</role-hi
nt>
<
implementation>
com.dianping.cat.abtest.demo.roundrobin.RoundRobinGroupStrategy
</implementation
>
<role>
com.dianping.cat.abtest.spi.
internal.ABTestContext
Manager
</role>
<implementation>
com.dianping.cat.abtest.spi.internal.DefaultABTest
Context
Manager
</implementation>
<requirements
>
<requirem
ent>
<role>
com.dianping.cat.abtest.spi.internal.ABTestEntityManager
</role>
</requireme
nt>
<
/requirements
>
</component>
</components>
</plexus>
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
e4d68b40
...
...
@@ -1160,9 +1160,9 @@
<statement-cache-size>
1000
</statement-cache-size>
<properties>
<driver>
com.mysql.jdbc.Driver
</driver>
<URL>
jdbc:mysql://1
92.168.7.43
:3306/cat
</URL>
<user>
binlog
</user>
<password>
binlog
</password>
<URL>
jdbc:mysql://1
27.0.0.1
:3306/cat
</URL>
<user>
root
</user>
<password></password>
<connectionProperties>
<![CDATA[useUnicode=true&autoReconnect=true]]>
</connectionProperties>
</properties>
</configuration>
...
...
@@ -3156,9 +3156,6 @@
<role>
com.dianping.cat.system.page.abtest.Handler
</role>
<implementation>
com.dianping.cat.system.page.abtest.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.page.abtest.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.abtest.AbtestDao
</role>
</requirement>
...
...
@@ -3166,19 +3163,13 @@
<role>
com.dianping.cat.home.dal.abtest.AbtestRunDao
</role>
</requirement>
<requirement>
<role>
com.d
ainping.cat.consumer.dal.report.Project
Dao
</role>
<role>
com.d
ianping.cat.home.dal.abtest.GroupStrategy
Dao
</role>
</requirement>
<requirement>
<role>
com.d
ianping.cat.home.dal.abtest.GroupStrategy
Dao
</role>
<role>
com.d
ainping.cat.consumer.dal.report.Project
Dao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.abtest.JspViewer
</role>
<implementation>
com.dianping.cat.system.page.abtest.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandl
er
</role>
<role>
com.dianping.cat.system.page.abtest.JspView
er
</role>
</requirement>
</requirements>
</component>
...
...
@@ -3209,6 +3200,15 @@
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.abtest.JspViewer
</role>
<implementation>
com.dianping.cat.system.page.abtest.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.alarm.AlarmRuleCreator
</role>
<implementation>
com.dianping.cat.system.alarm.AlarmRuleCreator
</implementation>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录