Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
60f337ef
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,发现更多精彩内容 >>
提交
60f337ef
编写于
5月 14, 2013
作者:
A
ainilife
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor cat-core according to the change of abtest model
上级
9ebf6bf3
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
80 addition
and
95 deletion
+80
-95
cat-core/src/main/java/com/dianping/cat/abtest/spi/ABTestEntity.java
...c/main/java/com/dianping/cat/abtest/spi/ABTestEntity.java
+30
-32
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestEntityManager.java
...g/cat/abtest/spi/internal/DefaultABTestEntityManager.java
+11
-9
cat-core/src/main/resources/META-INF/dal/model/abtest-codegen.xml
.../src/main/resources/META-INF/dal/model/abtest-codegen.xml
+15
-9
cat-core/src/main/resources/META-INF/dal/model/abtest-model.xml
...re/src/main/resources/META-INF/dal/model/abtest-model.xml
+4
-3
cat-core/src/test/java/com/dianping/cat/abtest/spi/internal/AbtestModelTest.java
...com/dianping/cat/abtest/spi/internal/AbtestModelTest.java
+2
-2
cat-core/src/test/resources/com/dianping/cat/abtest/spi/internal/abtest.xml
...resources/com/dianping/cat/abtest/spi/internal/abtest.xml
+18
-40
未找到文件。
cat-core/src/main/java/com/dianping/cat/abtest/spi/ABTestEntity.java
浏览文件 @
60f337ef
...
...
@@ -2,60 +2,64 @@ package com.dianping.cat.abtest.spi;
import
java.util.Date
;
import
com.dianping.cat.abtest.model.entity.
Entity
;
import
com.dianping.cat.abtest.model.entity.
GroupStrategy
;
import
com.dianping.cat.abtest.model.entity.
Case
;
import
com.dianping.cat.abtest.model.entity.
Run
;
public
class
ABTestEntity
{
private
Entity
m_entity
;
private
Case
m_case
;
private
ABTestGroupStrategy
m_groupStrategy
;
private
Run
m_run
;
private
ABTestGroupStrategy
m_groupStrategy
;
public
ABTestEntity
()
{
m_entity
=
new
Entity
();
m_entity
.
setDisabled
(
true
);
m_case
=
new
Case
();
m_run
=
new
Run
();
m_run
.
setDisabled
(
true
);
}
public
ABTestEntity
(
Entity
entity
)
{
m_entity
=
entity
;
public
ABTestEntity
(
Case
_case
,
Run
run
)
{
m_case
=
_case
;
m_run
=
run
;
}
public
String
getGroupStrategyName
()
{
return
m_
entity
.
getGroupStrategy
()
!=
null
?
m_entity
.
getGroupStrategy
().
getName
()
:
null
;
return
m_
case
.
getGroupStrategy
()
!=
null
?
m_case
.
getGroupStrategy
()
:
null
;
}
public
String
getGroupStrategyConfiguration
()
{
return
m_
entity
.
getGroupStrategy
()
!=
null
?
m_entity
.
getGroupStrategy
().
get
Configuration
()
:
null
;
return
m_
run
.
getGroupStrategyConfiguration
()
!=
null
?
m_run
.
getGroupStrategy
Configuration
()
:
null
;
}
public
int
getId
()
{
return
m_
entity
.
getId
();
return
m_
case
.
getId
();
}
public
String
getName
()
{
return
m_
entity
.
getName
();
return
m_
case
.
getName
();
}
public
Date
getEndDate
()
{
return
m_entity
.
getEndDate
();
}
return
m_run
.
getEndDate
();
}
public
Date
getStartDate
()
{
return
m_entity
.
getStartDate
();
}
return
m_run
.
getStartDate
();
}
public
boolean
isEligible
(
Date
date
)
{
if
(
m_
entity
.
getDisabled
()
!=
null
&&
m_entity
.
getDisabled
())
{
if
(
m_
run
.
getDisabled
()
!=
null
&&
m_run
.
getDisabled
())
{
return
false
;
}
Date
startDate
=
m_
entity
.
getStartDate
();
Date
startDate
=
m_
run
.
getStartDate
();
if
(
startDate
!=
null
)
{
if
(
date
.
before
(
startDate
))
{
return
false
;
}
}
Date
endDate
=
m_
entity
.
getEndDate
();
Date
endDate
=
m_
run
.
getEndDate
();
if
(
endDate
!=
null
)
{
if
(
date
.
after
(
endDate
))
{
return
false
;
...
...
@@ -66,33 +70,27 @@ public class ABTestEntity {
}
public
boolean
isDisabled
()
{
return
m_
entity
.
isDisabled
();
return
m_
run
.
isDisabled
();
}
public
void
setDisabled
(
boolean
disabled
)
{
m_
entity
.
setDisabled
(
disabled
);
m_
run
.
setDisabled
(
disabled
);
}
public
void
setGroupStrategyName
(
String
groupStrategy
)
{
if
(
m_entity
.
getGroupStrategy
()
==
null
)
{
m_entity
.
setGroupStrategy
(
new
GroupStrategy
());
}
m_entity
.
getGroupStrategy
().
setName
(
groupStrategy
);
m_case
.
setGroupStrategy
(
groupStrategy
);
}
public
void
setGroupStrategyConfiguration
(
String
groupStrategyConfiguration
)
{
if
(
m_entity
.
getGroupStrategy
()
==
null
)
{
m_entity
.
setGroupStrategy
(
new
GroupStrategy
());
}
m_entity
.
getGroupStrategy
().
setConfiguration
(
groupStrategyConfiguration
);
m_run
.
setGroupStrategyConfiguration
(
groupStrategyConfiguration
);
}
public
void
setId
(
int
id
)
{
m_
entity
.
setId
(
id
);
m_
case
.
setId
(
id
);
}
public
void
setName
(
String
name
)
{
m_
entity
.
setName
(
name
);
m_
case
.
setName
(
name
);
}
public
ABTestGroupStrategy
getGroupStrategy
()
{
...
...
cat-core/src/main/java/com/dianping/cat/abtest/spi/internal/DefaultABTestEntityManager.java
浏览文件 @
60f337ef
...
...
@@ -12,8 +12,9 @@ import org.unidal.lookup.ContainerHolder;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.abtest.ABTestId
;
import
com.dianping.cat.abtest.model.entity.Abtest
;
import
com.dianping.cat.abtest.model.entity.Entity
;
import
com.dianping.cat.abtest.model.entity.AbtestModel
;
import
com.dianping.cat.abtest.model.entity.Case
;
import
com.dianping.cat.abtest.model.entity.Run
;
import
com.dianping.cat.abtest.model.transform.BaseVisitor
;
import
com.dianping.cat.abtest.model.transform.DefaultSaxParser
;
import
com.dianping.cat.abtest.spi.ABTestEntity
;
...
...
@@ -48,7 +49,7 @@ public class DefaultABTestEntityManager extends ContainerHolder implements ABTes
public
void
initialize
()
throws
InitializationException
{
try
{
InputStream
in
=
getClass
().
getResourceAsStream
(
"abtest.xml"
);
Abtest
abtest
=
DefaultSaxParser
.
parse
(
in
);
Abtest
Model
abtest
=
DefaultSaxParser
.
parse
(
in
);
ABTestVisitor
visitor
=
new
ABTestVisitor
(
m_entities
,
m_entityList
);
abtest
.
accept
(
visitor
);
...
...
@@ -60,8 +61,7 @@ public class DefaultABTestEntityManager extends ContainerHolder implements ABTes
entity
.
setGroupStrategy
(
groupStrategy
);
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
//TODO un-comment the following line later!
//entity.setDisabled(true);
entity
.
setDisabled
(
true
);
}
}
}
catch
(
Exception
e
)
{
...
...
@@ -80,11 +80,13 @@ public class DefaultABTestEntityManager extends ContainerHolder implements ABTes
}
@Override
public
void
visitEntity
(
Entity
entity
)
{
ABTestEntity
abTestEntity
=
new
ABTestEntity
(
entity
);
public
void
visitCase
(
Case
_case
)
{
for
(
Run
run
:
_case
.
getRuns
())
{
ABTestEntity
abTestEntity
=
new
ABTestEntity
(
_case
,
run
);
m_entities
.
put
(
abTestEntity
.
getId
(),
abTestEntity
);
m_entityList
.
add
(
abTestEntity
);
m_entities
.
put
(
abTestEntity
.
getId
(),
abTestEntity
);
m_entityList
.
add
(
abTestEntity
);
}
}
}
...
...
cat-core/src/main/resources/META-INF/dal/model/abtest-codegen.xml
浏览文件 @
60f337ef
<?xml version="1.0" encoding="UTF-8"?>
<model>
<entity
name=
"abtest"
root=
"true"
>
<entity-ref
name=
"
entity"
type=
"list"
names=
"entiti
es"
/>
<entity
name=
"abtest
-model
"
root=
"true"
>
<entity-ref
name=
"
case"
type=
"list"
names=
"cas
es"
/>
</entity>
<entity
name=
"
entity
"
>
<entity
name=
"
case
"
>
<attribute
name=
"id"
value-type=
"int"
/>
<attribute
name=
"name"
value-type=
"String"
/>
<attribute
name=
"created-date"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
<attribute
name=
"last-modified-date"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
<element
name=
"description"
value-type=
"String"
/>
<element
name=
"owner"
value-type=
"String"
/>
<element
name=
"group-strategy"
value-type=
"String"
/>
<element
name=
"domain"
value-type=
"String"
type=
"list"
names=
"domains"
/>
<entity-ref
name=
"run"
type=
"list"
names=
"runs"
xml-indent=
"true"
/>
</entity>
<entity
name=
"run"
>
<attribute
name=
"id"
value-type=
"int"
/>
<attribute
name=
"start-date"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
<attribute
name=
"end-date"
value-type=
"Date"
format=
"yyyy-MM-dd HH:mm:ss"
/>
<attribute
name=
"disabled"
value-type=
"boolean"
/>
<element
name=
"
description
"
value-type=
"String"
/>
<element
name=
"
creator
"
value-type=
"String"
/>
<element
name=
"domain"
value-type=
"String"
type=
"list"
names=
"domains"
/>
<entity-ref
name=
"group-strategy"
/>
</entity>
<entity
name=
"group-strategy"
>
<attribute
name=
"name"
value-type=
"String"
/>
<element
name=
"configuration"
value-type=
"String"
/>
<element
name=
"group-strategy-configuration"
value-type=
"String"
/>
</entity>
</model>
cat-core/src/main/resources/META-INF/dal/model/abtest-model.xml
浏览文件 @
60f337ef
<?xml version="1.0" encoding="UTF-8"?>
<model
model-package=
"com.dianping.cat.abtest.model"
enable-sax-parser=
"true"
enable-base-visitor=
"true"
>
<entity
name=
"abtest"
root=
"true"
>
<entity-ref
name=
"entity"
type=
"map"
names=
"entities"
/>
<entity
name=
"case"
>
<attribute
name=
"id"
value-type=
"int"
key=
"true"
primitive=
"true"
/>
<element
name=
"domain"
value-type=
"String"
type=
"set"
names=
"domains"
/>
</entity>
<entity
name=
"
entity
"
>
<entity
name=
"
run
"
>
<attribute
name=
"id"
value-type=
"int"
key=
"true"
primitive=
"true"
/>
<element
name=
"domain"
value-type=
"String"
type=
"set"
names=
"domains"
/>
</entity>
...
...
cat-core/src/test/java/com/dianping/cat/abtest/spi/internal/AbtestModelTest.java
浏览文件 @
60f337ef
...
...
@@ -6,14 +6,14 @@ import java.io.InputStream;
import
org.junit.Test
;
import
org.xml.sax.SAXException
;
import
com.dianping.cat.abtest.model.entity.Abtest
;
import
com.dianping.cat.abtest.model.entity.Abtest
Model
;
import
com.dianping.cat.abtest.model.transform.DefaultSaxParser
;
public
class
AbtestModelTest
{
@Test
public
void
test
()
throws
SAXException
,
IOException
{
InputStream
in
=
getClass
().
getResourceAsStream
(
"abtest.xml"
);
Abtest
abtest
=
DefaultSaxParser
.
parse
(
in
);
Abtest
Model
abtest
=
DefaultSaxParser
.
parse
(
in
);
System
.
out
.
println
(
abtest
);
}
...
...
cat-core/src/test/resources/com/dianping/cat/abtest/spi/internal/abtest.xml
浏览文件 @
60f337ef
<abtest>
<
entity
id=
"1001"
name=
"Mock1"
start-date=
"2013-04-10 17:00:00"
end-date=
"2013-12-30 18:00:00"
disabled=
"false
"
>
<abtest
-model
>
<
case
id=
"1001"
name=
"mock"
created-date=
"2013-04-10 17:00:00"
last-modified-date=
"2013-04-10 17:00:00
"
>
<description>
This is a mock ABTest for test
</description>
<group-strategy
name=
"roundrobin"
>
<configuration>
<![CDATA[This is the configuration]]>
</configuration>
</group-strategy>
<domain>
Cat
</domain>
<owner>
hao.zhu@dianping.com,kezhu.wu@dianping.com
</owner>
<group-strategy>
roundrobin
</group-strategy>
<domain>
TuanGouApi
</domain>
<domain>
TuanGouWeb
</domain>
</entity>
<entity
id=
"1002"
name=
"Mock2"
start-date=
"2013-04-11 17:00:00"
disabled=
"true"
>
</entity>
<entity
id=
"1003"
name=
"Mock3"
start-date=
"2013-12-30 17:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1004"
name=
"Mock4"
end-date=
"2013-04-03 18:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1005"
name=
"Mock5"
start-date=
"2013-04-11 17:00:00"
disabled=
"true"
>
</entity>
<entity
id=
"1006"
name=
"Mock6"
start-date=
"2013-12-30 17:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1007"
name=
"Mock7"
end-date=
"2013-04-03 18:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1008"
name=
"Mock8"
start-date=
"2013-04-11 17:00:00"
disabled=
"true"
>
</entity>
<entity
id=
"1009"
name=
"Mock9"
start-date=
"2013-12-30 17:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1010"
name=
"Mock10"
end-date=
"2013-04-03 18:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1011"
name=
"Mock11"
start-date=
"2013-04-11 17:00:00"
disabled=
"true"
>
</entity>
<entity
id=
"1012"
name=
"Mock12"
start-date=
"2013-12-30 17:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1013"
name=
"Mock13"
end-date=
"2013-04-03 18:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1014"
name=
"Mock14"
start-date=
"2013-12-30 17:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1015"
name=
"Mock15"
end-date=
"2013-04-03 18:00:00"
disabled=
"false"
>
</entity>
<entity
id=
"1016"
name=
"Mock16"
start-date=
"2013-04-11 17:00:00"
disabled=
"true"
>
</entity>
<entity
id=
"1017"
name=
"Mock17"
start-date=
"2013-12-30 17:00:00"
disabled=
"false"
>
</entity>
</abtest>
\ No newline at end of file
<domain>
TuanGouRemote
</domain>
<runs>
<run
id=
"1"
start-date=
"2013-04-10 17:00:00"
end-date=
"2013-12-30 18:00:00"
disabled=
"false"
>
<creator>
hao.zhu@dianping.com
</creator>
<domain>
TuanGouWeb
</domain>
<domain>
TuanGouRemote
</domain>
<group-strategy-configuration>
<![CDATA[This is the configuration]]>
</group-strategy-configuration>
</run>
<run
/>
</runs>
</case>
<case
/>
</abtest-model>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录