Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
33560f1b
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,发现更多精彩内容 >>
提交
33560f1b
编写于
7月 24, 2014
作者:
Y
youyong205
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify the config
上级
c9154779
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
275 addition
and
3840 deletion
+275
-3840
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
...n/java/com/dianping/cat/build/ComponentsConfigurator.java
+4
-69
cat-home/src/main/java/com/dianping/cat/report/task/router/RouterBuilder.java
...va/com/dianping/cat/report/task/router/RouterBuilder.java
+84
-0
cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java
...n/java/com/dianping/cat/report/task/spi/ReportFacade.java
+0
-2
cat-home/src/main/java/com/dianping/cat/system/config/RouterConfigManager.java
...a/com/dianping/cat/system/config/RouterConfigManager.java
+108
-0
cat-home/src/main/resources/META-INF/dal/model/router-codegen.xml
.../src/main/resources/META-INF/dal/model/router-codegen.xml
+7
-0
cat-home/src/main/resources/META-INF/plexus/components.xml
cat-home/src/main/resources/META-INF/plexus/components.xml
+66
-3766
cat-home/src/test/resources/config/router-config.xml
cat-home/src/test/resources/config/router-config.xml
+6
-3
未找到文件。
cat-home/src/main/java/com/dianping/cat/build/ComponentsConfigurator.java
浏览文件 @
33560f1b
...
@@ -69,7 +69,6 @@ import com.dianping.cat.report.task.alert.exception.ExceptionAlertConfig;
...
@@ -69,7 +69,6 @@ import com.dianping.cat.report.task.alert.exception.ExceptionAlertConfig;
import
com.dianping.cat.report.task.alert.manager.AlertManager
;
import
com.dianping.cat.report.task.alert.manager.AlertManager
;
import
com.dianping.cat.report.task.alert.network.NetworkAlert
;
import
com.dianping.cat.report.task.alert.network.NetworkAlert
;
import
com.dianping.cat.report.task.alert.network.NetworkAlertConfig
;
import
com.dianping.cat.report.task.alert.network.NetworkAlertConfig
;
import
com.dianping.cat.report.task.alert.sender.ExceptionPostman
;
import
com.dianping.cat.report.task.alert.sender.MailSender
;
import
com.dianping.cat.report.task.alert.sender.MailSender
;
import
com.dianping.cat.report.task.alert.sender.Postman
;
import
com.dianping.cat.report.task.alert.sender.Postman
;
import
com.dianping.cat.report.task.alert.sender.SmsSender
;
import
com.dianping.cat.report.task.alert.sender.SmsSender
;
...
@@ -97,6 +96,7 @@ import com.dianping.cat.system.config.ExceptionConfigManager;
...
@@ -97,6 +96,7 @@ import com.dianping.cat.system.config.ExceptionConfigManager;
import
com.dianping.cat.system.config.MetricGroupConfigManager
;
import
com.dianping.cat.system.config.MetricGroupConfigManager
;
import
com.dianping.cat.system.config.NetGraphConfigManager
;
import
com.dianping.cat.system.config.NetGraphConfigManager
;
import
com.dianping.cat.system.config.NetworkRuleConfigManager
;
import
com.dianping.cat.system.config.NetworkRuleConfigManager
;
import
com.dianping.cat.system.config.RouterConfigManager
;
import
com.dianping.cat.system.config.SystemRuleConfigManager
;
import
com.dianping.cat.system.config.SystemRuleConfigManager
;
import
com.dianping.cat.system.config.ThirdPartyConfigManager
;
import
com.dianping.cat.system.config.ThirdPartyConfigManager
;
import
com.dianping.cat.system.tool.DefaultMailImpl
;
import
com.dianping.cat.system.tool.DefaultMailImpl
;
...
@@ -233,6 +233,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
...
@@ -233,6 +233,7 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
AlertConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
AlertConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
NetGraphConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
NetGraphConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
ThirdPartyConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
ThirdPartyConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
RouterConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
ConfigReloadTask
.
class
).
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
));
all
.
add
(
C
(
ConfigReloadTask
.
class
).
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
));
return
all
;
return
all
;
...
@@ -266,29 +267,9 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
...
@@ -266,29 +267,9 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
AppGraphCreator
.
class
).
req
(
AppDataService
.
class
,
CachedMetricReportService
.
class
,
DataExtractor
.
class
,
all
.
add
(
C
(
AppGraphCreator
.
class
).
req
(
AppDataService
.
class
,
CachedMetricReportService
.
class
,
DataExtractor
.
class
,
MetricDataFetcher
.
class
).
req
(
BaselineService
.
class
,
MetricConfigManager
.
class
,
MetricDataFetcher
.
class
).
req
(
BaselineService
.
class
,
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
,
MetricGroupConfigManager
.
class
,
AlertInfo
.
class
));
ProductLineConfigManager
.
class
,
MetricGroupConfigManager
.
class
,
AlertInfo
.
class
));
// report serivce
all
.
addAll
(
new
ReportServiceComponentConfigurator
().
defineComponents
());
// task
all
.
addAll
(
new
TaskComponentConfigurator
().
defineComponents
());
// model service
all
.
addAll
(
new
ServiceComponentConfigurator
().
defineComponents
());
all
.
add
(
C
(
RemoteMetricReportService
.
class
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
BusinessAlertConfig
.
class
).
req
(
AlertConfigManager
.
class
));
all
.
add
(
C
(
NetworkAlertConfig
.
class
).
req
(
AlertConfigManager
.
class
));
all
.
add
(
C
(
SystemAlertConfig
.
class
).
req
(
AlertConfigManager
.
class
));
all
.
add
(
C
(
ExceptionAlertConfig
.
class
).
req
(
AlertConfigManager
.
class
));
all
.
add
(
C
(
AlertInfo
.
class
));
all
.
add
(
C
(
DefaultMailImpl
.
class
).
req
(
ServerConfigManager
.
class
));
all
.
add
(
C
(
DataChecker
.
class
,
DefaultDataChecker
.
class
));
all
.
add
(
C
(
NetGraphManager
.
class
).
req
(
ServerConfigManager
.
class
,
RemoteMetricReportService
.
class
).
req
(
ReportService
.
class
,
NetGraphBuilder
.
class
,
AlertInfo
.
class
,
NetGraphConfigManager
.
class
));
all
.
add
(
C
(
MailSender
.
class
).
req
(
MailSMS
.
class
));
all
.
add
(
C
(
MailSender
.
class
).
req
(
MailSMS
.
class
));
...
@@ -301,33 +282,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
...
@@ -301,33 +282,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
Postman
.
class
).
req
(
ProjectDao
.
class
,
MailSMS
.
class
,
MailSender
.
class
,
WeixinSender
.
class
,
all
.
add
(
C
(
Postman
.
class
).
req
(
ProjectDao
.
class
,
MailSMS
.
class
,
MailSender
.
class
,
WeixinSender
.
class
,
SmsSender
.
class
,
AlertTypeManager
.
class
));
SmsSender
.
class
,
AlertTypeManager
.
class
));
all
.
add
(
C
(
BusinessAlert
.
class
)
.
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
,
BaselineService
.
class
,
MailSMS
.
class
,
BusinessAlertConfig
.
class
,
AlertInfo
.
class
,
AlertDao
.
class
)
//
.
req
(
RemoteMetricReportService
.
class
,
BusinessRuleConfigManager
.
class
,
DataChecker
.
class
)
.
req
(
Postman
.
class
,
AlertManager
.
class
));
all
.
add
(
C
(
NetworkAlert
.
class
)
.
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
,
BaselineService
.
class
,
MailSMS
.
class
,
NetworkAlertConfig
.
class
,
AlertInfo
.
class
,
AlertDao
.
class
)
//
.
req
(
RemoteMetricReportService
.
class
,
NetworkRuleConfigManager
.
class
,
DataChecker
.
class
)
.
req
(
Postman
.
class
,
AlertManager
.
class
));
all
.
add
(
C
(
SystemAlert
.
class
)
.
req
(
MetricConfigManager
.
class
,
ProductLineConfigManager
.
class
,
BaselineService
.
class
,
MailSMS
.
class
,
SystemAlertConfig
.
class
,
AlertInfo
.
class
,
AlertDao
.
class
)
//
.
req
(
RemoteMetricReportService
.
class
,
SystemRuleConfigManager
.
class
,
DataChecker
.
class
)
.
req
(
Postman
.
class
,
AlertManager
.
class
));
all
.
add
(
C
(
AlertExceptionBuilder
.
class
).
req
(
ExceptionConfigManager
.
class
));
all
.
add
(
C
(
AlertExceptionBuilder
.
class
).
req
(
ExceptionConfigManager
.
class
));
all
.
add
(
C
(
ExceptionAlert
.
class
)
.
req
(
ExceptionAlertConfig
.
class
,
ExceptionConfigManager
.
class
,
AlertExceptionBuilder
.
class
)
.
req
(
ModelService
.
class
,
TopAnalyzer
.
ID
).
req
(
ExceptionPostman
.
class
,
AlertManager
.
class
));
all
.
add
(
C
(
AlertSummaryExecutor
.
class
).
req
(
AlertSummaryGenerator
.
class
,
AlertSummaryManager
.
class
,
MailSMS
.
class
)
all
.
add
(
C
(
AlertSummaryExecutor
.
class
).
req
(
AlertSummaryGenerator
.
class
,
AlertSummaryManager
.
class
,
MailSMS
.
class
)
.
req
(
AlertSummaryDecorator
.
class
,
AlertSummaryFTLDecorator
.
ID
));
.
req
(
AlertSummaryDecorator
.
class
,
AlertSummaryFTLDecorator
.
ID
));
...
@@ -337,29 +293,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
...
@@ -337,29 +293,8 @@ public class ComponentsConfigurator extends AbstractResourceConfigurator {
all
.
add
(
C
(
AlertSummaryManager
.
class
).
req
(
AlertSummaryDao
.
class
));
all
.
add
(
C
(
AlertSummaryManager
.
class
).
req
(
AlertSummaryDao
.
class
));
all
.
add
(
C
(
NetGraphConfigManager
.
class
).
req
(
ConfigDao
.
class
));
all
.
add
(
C
(
NetGraphBuilder
.
class
));
all
.
add
(
C
(
NetGraphBuilder
.
class
));
all
.
add
(
C
(
NetGraphManager
.
class
).
req
(
ServerConfigManager
.
class
,
RemoteMetricReportService
.
class
).
req
(
ReportService
.
class
,
NetGraphBuilder
.
class
,
AlertInfo
.
class
,
NetGraphConfigManager
.
class
));
// database
all
.
add
(
C
(
JdbcDataSourceDescriptorManager
.
class
)
//
.
config
(
E
(
"datasourceFile"
).
value
(
"/data/appdatas/cat/datasources.xml"
)));
all
.
addAll
(
new
CatDatabaseConfigurator
().
defineComponents
());
all
.
addAll
(
new
UserDatabaseConfigurator
().
defineComponents
());
// update project database
all
.
add
(
C
(
ProjectUpdateTask
.
class
)
//
.
req
(
ProjectDao
.
class
,
HostinfoDao
.
class
));
// web, please keep it last
all
.
addAll
(
new
WebComponentConfigurator
().
defineComponents
());
// for alarm module
all
.
addAll
(
new
AlarmComponentConfigurator
().
defineComponents
());
return
all
;
return
all
;
}
}
}
}
cat-home/src/main/java/com/dianping/cat/report/task/router/RouterBuilder.java
0 → 100644
浏览文件 @
33560f1b
package
com.dianping.cat.report.task.router
;
import
java.util.Comparator
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Constants
;
import
com.dianping.cat.consumer.state.model.entity.ProcessDomain
;
import
com.dianping.cat.consumer.state.model.entity.StateReport
;
import
com.dianping.cat.consumer.state.model.transform.BaseVisitor
;
import
com.dianping.cat.helper.MapUtils
;
import
com.dianping.cat.helper.TimeUtil
;
import
com.dianping.cat.report.service.ReportService
;
import
com.dianping.cat.report.task.spi.ReportTaskBuilder
;
public
class
RouterBuilder
implements
ReportTaskBuilder
{
@Inject
private
ReportService
m_reportService
;
@Override
public
boolean
buildDailyTask
(
String
name
,
String
domain
,
Date
period
)
{
Date
start
=
period
;
Date
end
=
new
Date
(
start
.
getTime
()
+
TimeUtil
.
ONE_DAY
);
StateReport
report
=
m_reportService
.
queryStateReport
(
Constants
.
CAT
,
start
,
end
);
StateReportVisitor
visitor
=
new
StateReportVisitor
();
visitor
.
visitStateReport
(
report
);
Map
<
String
,
Long
>
numbers
=
visitor
.
getNumbers
();
Comparator
<
Entry
<
String
,
Long
>>
compator
=
new
Comparator
<
Map
.
Entry
<
String
,
Long
>>()
{
@Override
public
int
compare
(
Entry
<
String
,
Long
>
o1
,
Entry
<
String
,
Long
>
o2
)
{
return
(
int
)
(
o1
.
getValue
()
-
o2
.
getValue
());
}
};
numbers
=
MapUtils
.
sortMap
(
numbers
,
compator
);
return
false
;
}
public
static
class
StateReportVisitor
extends
BaseVisitor
{
private
Map
<
String
,
Long
>
m_numbers
=
new
HashMap
<
String
,
Long
>();
@Override
public
void
visitProcessDomain
(
ProcessDomain
processDomain
)
{
String
domain
=
processDomain
.
getName
();
long
total
=
processDomain
.
getTotal
();
Long
count
=
m_numbers
.
get
(
domain
);
if
(
count
==
null
)
{
m_numbers
.
put
(
domain
,
total
);
}
else
{
m_numbers
.
put
(
domain
,
total
+
count
);
}
}
public
Map
<
String
,
Long
>
getNumbers
()
{
return
m_numbers
;
}
}
@Override
public
boolean
buildHourlyTask
(
String
name
,
String
domain
,
Date
period
)
{
throw
new
RuntimeException
(
"router builder don't support hourly task"
);
}
@Override
public
boolean
buildMonthlyTask
(
String
name
,
String
domain
,
Date
period
)
{
throw
new
RuntimeException
(
"router builder don't support monthly task"
);
}
@Override
public
boolean
buildWeeklyTask
(
String
name
,
String
domain
,
Date
period
)
{
throw
new
RuntimeException
(
"router builder don't support weekly task"
);
}
}
cat-home/src/main/java/com/dianping/cat/report/task/spi/ReportFacade.java
浏览文件 @
33560f1b
...
@@ -76,8 +76,6 @@ public class ReportFacade extends ContainerHolder implements LogEnabled, Initial
...
@@ -76,8 +76,6 @@ public class ReportFacade extends ContainerHolder implements LogEnabled, Initial
@Override
@Override
public
void
initialize
()
throws
InitializationException
{
public
void
initialize
()
throws
InitializationException
{
m_reportBuilders
=
lookupMap
(
ReportTaskBuilder
.
class
);
m_reportBuilders
=
lookupMap
(
ReportTaskBuilder
.
class
);
System
.
out
.
println
(
m_reportBuilders
.
size
());
}
}
}
}
cat-home/src/main/java/com/dianping/cat/system/config/RouterConfigManager.java
0 → 100644
浏览文件 @
33560f1b
package
com.dianping.cat.system.config
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Set
;
import
org.codehaus.plexus.logging.LogEnabled
;
import
org.codehaus.plexus.logging.Logger
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable
;
import
org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException
;
import
org.unidal.dal.jdbc.DalNotFoundException
;
import
org.unidal.helper.Files
;
import
org.unidal.lookup.annotation.Inject
;
import
com.dianping.cat.Cat
;
import
com.dianping.cat.core.config.Config
;
import
com.dianping.cat.core.config.ConfigDao
;
import
com.dianping.cat.core.config.ConfigEntity
;
import
com.dianping.cat.home.router.entity.RouterConfig
;
import
com.dianping.cat.home.router.transform.DefaultSaxParser
;
public
class
RouterConfigManager
implements
Initializable
,
LogEnabled
{
@Inject
private
ConfigDao
m_configDao
;
private
int
m_configId
;
private
RouterConfig
m_routerConfig
;
private
Logger
m_logger
;
private
static
final
String
CONFIG_NAME
=
"routerConfig"
;
private
Map
<
String
,
Set
<
String
>>
m_configs
=
new
HashMap
<
String
,
Set
<
String
>>();
@Override
public
void
enableLogging
(
Logger
logger
)
{
m_logger
=
logger
;
}
public
RouterConfig
getRouterConfig
()
{
return
m_routerConfig
;
}
@Override
public
void
initialize
()
throws
InitializationException
{
try
{
Config
config
=
m_configDao
.
findByName
(
CONFIG_NAME
,
ConfigEntity
.
READSET_FULL
);
String
content
=
config
.
getContent
();
m_configId
=
config
.
getId
();
m_routerConfig
=
DefaultSaxParser
.
parse
(
content
);
}
catch
(
DalNotFoundException
e
)
{
try
{
String
content
=
Files
.
forIO
().
readFrom
(
this
.
getClass
().
getResourceAsStream
(
"/config/default-router-config.xml"
),
"utf-8"
);
Config
config
=
m_configDao
.
createLocal
();
config
.
setName
(
CONFIG_NAME
);
config
.
setContent
(
content
);
m_configDao
.
insert
(
config
);
m_configId
=
config
.
getId
();
m_routerConfig
=
DefaultSaxParser
.
parse
(
content
);
}
catch
(
Exception
ex
)
{
Cat
.
logError
(
ex
);
}
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
}
if
(
m_routerConfig
==
null
)
{
m_routerConfig
=
new
RouterConfig
();
}
}
public
boolean
insert
(
String
xml
)
{
try
{
m_routerConfig
=
DefaultSaxParser
.
parse
(
xml
);
boolean
result
=
storeConfig
();
m_configs
.
clear
();
return
result
;
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
m_logger
.
error
(
e
.
getMessage
(),
e
);
return
false
;
}
}
private
boolean
storeConfig
()
{
synchronized
(
this
)
{
try
{
Config
config
=
m_configDao
.
createLocal
();
config
.
setId
(
m_configId
);
config
.
setKeyId
(
m_configId
);
config
.
setName
(
CONFIG_NAME
);
config
.
setContent
(
m_routerConfig
.
toString
());
m_configDao
.
updateByPK
(
config
,
ConfigEntity
.
UPDATESET_FULL
);
}
catch
(
Exception
e
)
{
Cat
.
logError
(
e
);
return
false
;
}
}
return
true
;
}
}
\ No newline at end of file
cat-home/src/main/resources/META-INF/dal/model/router-codegen.xml
浏览文件 @
33560f1b
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<model>
<model>
<entity
name=
"router-config"
root=
"true"
>
<entity
name=
"router-config"
root=
"true"
>
<entity-ref
name=
"default-server"
type=
"list"
names=
"default-servers"
/>
<entity-ref
name=
"domain"
type=
"list"
names=
"domains"
/>
<entity-ref
name=
"domain"
type=
"list"
names=
"domains"
/>
</entity>
</entity>
<entity
name=
"default-server"
>
<attribute
name=
"id"
value-type=
"String"
/>
<attribute
name=
"weight"
value-type=
"int"
/>
<attribute
name=
"port"
value-type=
"int"
/>
<attribute
name=
"enable"
value-type=
"boolean"
/>
</entity>
<entity
name=
"domain"
>
<entity
name=
"domain"
>
<attribute
name=
"id"
value-type=
"String"
/>
<attribute
name=
"id"
value-type=
"String"
/>
<entity-ref
name=
"server"
type=
"list"
names=
"servers"
/>
<entity-ref
name=
"server"
type=
"list"
names=
"servers"
/>
...
...
cat-home/src/main/resources/META-INF/plexus/components.xml
浏览文件 @
33560f1b
...
@@ -202,6 +202,15 @@
...
@@ -202,6 +202,15 @@
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<role>
com.dianping.cat.system.config.RouterConfigManager
</role>
<implementation>
com.dianping.cat.system.config.RouterConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<component>
<role>
com.dianping.cat.system.config.ConfigReloadTask
</role>
<role>
com.dianping.cat.system.config.ConfigReloadTask
</role>
<implementation>
com.dianping.cat.system.config.ConfigReloadTask
</implementation>
<implementation>
com.dianping.cat.system.config.ConfigReloadTask
</implementation>
...
@@ -438,3854 +447,145 @@
...
@@ -438,3854 +447,145 @@
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.
service.impl.TransactionReportService
</role>
<role>
com.dianping.cat.report.
task.alert.sender.MailSender
</role>
<implementation>
com.dianping.cat.report.
service.impl.TransactionReportService
</implementation>
<implementation>
com.dianping.cat.report.
task.alert.sender.MailSender
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.
service.impl.EventReportService
</role>
<role>
com.dianping.cat.report.
task.alert.sender.SmsSender
</role>
<implementation>
com.dianping.cat.report.
service.impl.EventReportService
</implementation>
<implementation>
com.dianping.cat.report.
task.alert.sender.SmsSender
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.
service.impl.ProblemReportService
</role>
<role>
com.dianping.cat.report.
task.alert.sender.WeixinSender
</role>
<implementation>
com.dianping.cat.report.
service.impl.ProblemReportService
</implementation>
<implementation>
com.dianping.cat.report.
task.alert.sender.WeixinSender
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.
service.impl.MatrixReportService
</role>
<role>
com.dianping.cat.report.
task.alert.manager.AlertManager
</role>
<implementation>
com.dianping.cat.report.
service.impl.MatrixReportService
</implementation>
<implementation>
com.dianping.cat.report.
task.alert.manager.AlertManager
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.
service.impl.CrossReportService
</role>
<role>
com.dianping.cat.report.
task.alert.sender.Postman
</role>
<implementation>
com.dianping.cat.report.
service.impl.CrossReportService
</implementation>
<implementation>
com.dianping.cat.report.
task.alert.sender.Postman
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
core.dal.MonthlyReportDao
</role>
<role>
com.dianping.cat.
system.tool.MailSMS
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
core.dal.HourlyReportContentDao
</role>
<role>
com.dianping.cat.
report.task.alert.sender.MailSender
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
home.dal.report.DailyReportContentDao
</role>
<role>
com.dianping.cat.
report.task.alert.sender.WeixinSender
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
home.dal.report.WeeklyReportContentDao
</role>
<role>
com.dianping.cat.
report.task.alert.sender.SmsSender
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
home.dal.report.MonthlyReportContentDao
</role>
<role>
com.dianping.cat.
system.config.AlertTypeManager
</role>
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.
service.impl.StateReportService
</role>
<role>
com.dianping.cat.report.
task.alert.exception.AlertExceptionBuilder
</role>
<implementation>
com.dianping.cat.report.
service.impl.StateReportService
</implementation>
<implementation>
com.dianping.cat.report.
task.alert.exception.AlertExceptionBuilder
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
<role>
com.dianping.cat.system.config.ExceptionConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.
service.impl.BugReportService
</role>
<role>
com.dianping.cat.report.
task.alert.summary.AlertSummaryExecutor
</role>
<implementation>
com.dianping.cat.report.
service.impl.BugReportService
</implementation>
<implementation>
com.dianping.cat.report.
task.alert.summary.AlertSummaryExecutor
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryGenerator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
home.dal.report.DailyReportContentDao
</role>
<role>
com.dianping.cat.
report.task.alert.summary.AlertSummaryManager
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
home.dal.report.WeeklyReportContentDao
</role>
<role>
com.dianping.cat.
system.tool.MailSMS
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryDecorator
</role>
<role-hint>
AlertSummaryFTLDecorator
</role-hint>
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.service.impl.UtilizationReportService
</role>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryDecorator
</role>
<implementation>
com.dianping.cat.report.service.impl.UtilizationReportService
</implementation>
<role-hint>
AlertSummaryFTLDecorator
</role-hint>
<implementation>
com.dianping.cat.report.task.alert.summary.AlertSummaryFTLDecorator
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryGenerator
</role>
<implementation>
com.dianping.cat.report.task.alert.summary.AlertSummaryGenerator
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
home.dal.report.MonthlyReportContentDao
</role>
<role>
com.dianping.cat.
report.page.dependency.graph.TopologyGraphManager
</role>
</requirement>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
<role>
com.dianping.cat.report.
service.impl.ServiceReportService
</role>
<role>
com.dianping.cat.report.
task.alert.summary.AlertSummaryManager
</role>
<implementation>
com.dianping.cat.report.
service.impl.ServiceReportService
</implementation>
<implementation>
com.dianping.cat.report.
task.alert.summary.AlertSummaryManager
</implementation>
<requirements>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
<role>
com.dianping.cat.home.dal.report.AlertSummaryDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphBuilder
</role>
<implementation>
com.dianping.cat.report.page.network.nettopology.NetGraphBuilder
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphManager
</role>
<implementation>
com.dianping.cat.report.page.network.nettopology.NetGraphManager
</implementation>
<requirements>
<requirement>
<requirement>
<role>
com.dianping.cat.
core.dal.WeeklyReportDao
</role>
<role>
com.dianping.cat.
ServerConfigManager
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
core.dal.MonthlyReportDao
</role>
<role>
com.dianping.cat.
report.task.alert.RemoteMetricReportService
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
core.dal.HourlyReportContentDao
</role>
<role>
com.dianping.cat.
report.service.ReportService
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.
home.dal.report.DailyReportContentDao
</role>
<role>
com.dianping.cat.
report.page.network.nettopology.NetGraphBuilder
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.service.impl.HeavyReportService
</role>
<implementation>
com.dianping.cat.report.service.impl.HeavyReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.service.impl.NetTopologyReportService
</role>
<implementation>
com.dianping.cat.report.service.impl.NetTopologyReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.service.impl.AlertReportService
</role>
<implementation>
com.dianping.cat.report.service.impl.AlertReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.service.impl.TopReportService
</role>
<implementation>
com.dianping.cat.report.service.impl.TopReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.service.impl.DependencyReportService
</role>
<implementation>
com.dianping.cat.report.service.impl.DependencyReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.service.impl.HeartbeatReportService
</role>
<implementation>
com.dianping.cat.report.service.impl.HeartbeatReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.service.impl.MetricReportService
</role>
<implementation>
com.dianping.cat.report.service.impl.MetricReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.advanced.dal.BusinessReportDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.service.ReportService
</role>
<implementation>
com.dianping.cat.report.service.impl.DefaultReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.WeeklyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.MonthlyReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HourlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.TransactionReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.EventReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.ProblemReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.MatrixReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.DependencyReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.TopReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.StateReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.CrossReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.HeartbeatReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.MetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.BugReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.HeavyReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.ServiceReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.UtilizationReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.NetTopologyReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.impl.AlertReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.DefaultTaskConsumer
</role>
<implementation>
com.dianping.cat.report.task.DefaultTaskConsumer
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.TaskDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.spi.ReportFacade
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.transaction.TransactionGraphCreator
</role>
<implementation>
com.dianping.cat.report.task.transaction.TransactionGraphCreator
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.event.EventGraphCreator
</role>
<implementation>
com.dianping.cat.report.task.event.EventGraphCreator
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.problem.ProblemGraphCreator
</role>
<implementation>
com.dianping.cat.report.task.problem.ProblemGraphCreator
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.heartbeat.HeartbeatGraphCreator
</role>
<implementation>
com.dianping.cat.report.task.heartbeat.HeartbeatGraphCreator
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.transaction.TransactionMerger
</role>
<implementation>
com.dianping.cat.report.task.transaction.TransactionMerger
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.event.EventMerger
</role>
<implementation>
com.dianping.cat.report.task.event.EventMerger
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.problem.ProblemMerger
</role>
<implementation>
com.dianping.cat.report.task.problem.ProblemMerger
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.metric.MetricPointParser
</role>
<implementation>
com.dianping.cat.report.task.metric.MetricPointParser
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.baseline.BaselineCreator
</role>
<implementation>
com.dianping.cat.report.baseline.impl.DefaultBaselineCreator
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
<implementation>
com.dianping.cat.report.baseline.impl.DefaultBaselineService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.report.BaselineDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.baseline.BaselineConfigManager
</role>
<implementation>
com.dianping.cat.report.baseline.BaselineConfigManager
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
metric
</role-hint>
<implementation>
com.dianping.cat.report.task.metric.MetricBaselineReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.metric.MetricPointParser
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineCreator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
transaction
</role-hint>
<implementation>
com.dianping.cat.report.task.transaction.TransactionReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.GraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyGraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.transaction.TransactionGraphCreator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.transaction.TransactionMerger
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
event
</role-hint>
<implementation>
com.dianping.cat.report.task.event.EventReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.GraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyGraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.event.EventGraphCreator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.event.EventMerger
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
problem
</role-hint>
<implementation>
com.dianping.cat.report.task.problem.ProblemReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.GraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyGraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.problem.ProblemGraphCreator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.problem.ProblemMerger
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
heartbeat
</role-hint>
<implementation>
com.dianping.cat.report.task.heartbeat.HeartbeatReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.GraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.heartbeat.HeartbeatGraphCreator
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
bug
</role-hint>
<implementation>
com.dianping.cat.report.task.bug.BugReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
service
</role-hint>
<implementation>
com.dianping.cat.report.task.service.ServiceReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.DomainManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
matrix
</role-hint>
<implementation>
com.dianping.cat.report.task.matrix.MatrixReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
cross
</role-hint>
<implementation>
com.dianping.cat.report.task.cross.CrossReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
state
</role-hint>
<implementation>
com.dianping.cat.report.task.state.StateReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
alert
</role-hint>
<implementation>
com.dianping.cat.report.task.alert.exception.AlertReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.ExceptionConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
heavy
</role-hint>
<implementation>
com.dianping.cat.report.task.heavy.HeavyReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
utilization
</role-hint>
<implementation>
com.dianping.cat.report.task.utilization.UtilizationReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.transaction.TransactionMergeManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.DomainManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
dependency
</role-hint>
<implementation>
com.dianping.cat.report.task.dependency.DependencyReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.TopologyGraphDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportTaskBuilder
</role>
<role-hint>
NetTopology
</role-hint>
<implementation>
com.dianping.cat.report.task.network.NetTopologyReportBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.NetGraphConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.spi.ReportFacade
</role>
<implementation>
com.dianping.cat.report.task.spi.ReportFacade
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
transaction-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.transaction.LocalTransactionService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
transaction-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.transaction.HistoricalTransactionService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
transaction
</role-hint>
<implementation>
com.dianping.cat.report.page.model.transaction.CompositeTransactionService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
transaction-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
event-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.event.LocalEventService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
event-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.event.HistoricalEventService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
event
</role-hint>
<implementation>
com.dianping.cat.report.page.model.event.CompositeEventService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
event-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
problem-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.problem.LocalProblemService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
problem-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.problem.HistoricalProblemService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
problem
</role-hint>
<implementation>
com.dianping.cat.report.page.model.problem.CompositeProblemService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
problem-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
heartbeat-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.heartbeat.LocalHeartbeatService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
heartbeat-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.heartbeat.HistoricalHeartbeatService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
heartbeat
</role-hint>
<implementation>
com.dianping.cat.report.page.model.heartbeat.CompositeHeartbeatService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
heartbeat-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
matrix-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.matrix.LocalMatrixService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
matrix-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.matrix.HistoricalMatrixService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
matrix
</role-hint>
<implementation>
com.dianping.cat.report.page.model.matrix.CompositeMatrixService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
matrix-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
state-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.state.LocalStateService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
state-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.state.HistoricalStateService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
state
</role-hint>
<implementation>
com.dianping.cat.report.page.model.state.CompositeStateService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
state-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
cross-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.cross.LocalCrossService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
cross-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.cross.HistoricalCrossService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
cross
</role-hint>
<implementation>
com.dianping.cat.report.page.model.cross.CompositeCrossService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
cross-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
top-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.top.LocalTopService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
top-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.top.HistoricalTopService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
top
</role-hint>
<implementation>
com.dianping.cat.report.page.model.top.CompositeTopService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
top-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
dependency-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.dependency.LocalDependencyService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
dependency-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.dependency.HistoricalDependencyService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
dependency
</role-hint>
<implementation>
com.dianping.cat.report.page.model.dependency.CompositeDependencyService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
dependency-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
metric-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.metric.LocalMetricService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
metric-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.metric.HistoricalMetricService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
metric
</role-hint>
<implementation>
com.dianping.cat.report.page.model.metric.CompositeMetricService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
metric-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
logview
</role-hint>
<implementation>
com.dianping.cat.report.page.model.logview.CompositeLogViewService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hints>
<role-hint>
message-historical
</role-hint>
<role-hint>
logview-historical
</role-hint>
</role-hints>
<field-name>
m_services
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
message-local
</role-hint>
<implementation>
com.dianping.cat.report.page.model.logview.LocalMessageService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.storage.dump.MessageBucketManager
</role>
<role-hint>
local
</role-hint>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageCodec
</role>
<role-hint>
html
</role-hint>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
message-historical
</role-hint>
<implementation>
com.dianping.cat.report.page.model.logview.HistoricalMessageService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.dump.MessageBucketManager
</role>
<role-hint>
local
</role-hint>
<field-name>
m_localBucketManager
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.storage.dump.MessageBucketManager
</role>
<role-hint>
hdfs
</role-hint>
<field-name>
m_hdfsBucketManager
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageCodec
</role>
<role-hint>
html
</role-hint>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.service.CachedReportTask
</role>
<implementation>
com.dianping.cat.report.service.CachedReportTask
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.RemoteMetricReportService
</role>
<implementation>
com.dianping.cat.report.task.alert.RemoteMetricReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.business.BusinessAlertConfig
</role>
<implementation>
com.dianping.cat.report.task.alert.business.BusinessAlertConfig
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.config.AlertConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.network.NetworkAlertConfig
</role>
<implementation>
com.dianping.cat.report.task.alert.network.NetworkAlertConfig
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.config.AlertConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.system.SystemAlertConfig
</role>
<implementation>
com.dianping.cat.report.task.alert.system.SystemAlertConfig
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.config.AlertConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.exception.ExceptionAlertConfig
</role>
<implementation>
com.dianping.cat.report.task.alert.exception.ExceptionAlertConfig
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.config.AlertConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
<implementation>
com.dianping.cat.report.task.alert.AlertInfo
</implementation>
</component>
<component>
<role>
com.dianping.cat.system.tool.DefaultMailImpl
</role>
<implementation>
com.dianping.cat.system.tool.DefaultMailImpl
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.DataChecker
</role>
<implementation>
com.dianping.cat.report.task.alert.DefaultDataChecker
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.sender.MailSender
</role>
<implementation>
com.dianping.cat.report.task.alert.sender.MailSender
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.sender.SmsSender
</role>
<implementation>
com.dianping.cat.report.task.alert.sender.SmsSender
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.sender.WeixinSender
</role>
<implementation>
com.dianping.cat.report.task.alert.sender.WeixinSender
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.manager.AlertManager
</role>
<implementation>
com.dianping.cat.report.task.alert.manager.AlertManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.sender.Postman
</role>
<implementation>
com.dianping.cat.report.task.alert.sender.Postman
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.sender.MailSender
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.sender.WeixinSender
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.sender.SmsSender
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.AlertTypeManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.business.BusinessAlert
</role>
<implementation>
com.dianping.cat.report.task.alert.business.BusinessAlert
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.business.BusinessAlertConfig
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.RemoteMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.BusinessRuleConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.DataChecker
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.sender.Postman
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.manager.AlertManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.network.NetworkAlert
</role>
<implementation>
com.dianping.cat.report.task.alert.network.NetworkAlert
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.network.NetworkAlertConfig
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.RemoteMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.NetworkRuleConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.DataChecker
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.sender.Postman
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.manager.AlertManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.system.SystemAlert
</role>
<implementation>
com.dianping.cat.report.task.alert.system.SystemAlert
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.system.SystemAlertConfig
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.RemoteMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.SystemRuleConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.DataChecker
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.sender.Postman
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.manager.AlertManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.exception.AlertExceptionBuilder
</role>
<implementation>
com.dianping.cat.report.task.alert.exception.AlertExceptionBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.config.ExceptionConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.exception.ExceptionAlert
</role>
<implementation>
com.dianping.cat.report.task.alert.exception.ExceptionAlert
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.task.alert.exception.ExceptionAlertConfig
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.ExceptionConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.exception.AlertExceptionBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
top
</role-hint>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.sender.ExceptionPostman
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.manager.AlertManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryExecutor
</role>
<implementation>
com.dianping.cat.report.task.alert.summary.AlertSummaryExecutor
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryGenerator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryDecorator
</role>
<role-hint>
AlertSummaryFTLDecorator
</role-hint>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryDecorator
</role>
<role-hint>
AlertSummaryFTLDecorator
</role-hint>
<implementation>
com.dianping.cat.report.task.alert.summary.AlertSummaryFTLDecorator
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryGenerator
</role>
<implementation>
com.dianping.cat.report.task.alert.summary.AlertSummaryGenerator
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryManager
</role>
<implementation>
com.dianping.cat.report.task.alert.summary.AlertSummaryManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.report.AlertSummaryDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.NetGraphConfigManager
</role>
<implementation>
com.dianping.cat.system.config.NetGraphConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphBuilder
</role>
<implementation>
com.dianping.cat.report.page.network.nettopology.NetGraphBuilder
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphManager
</role>
<implementation>
com.dianping.cat.report.page.network.nettopology.NetGraphManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.RemoteMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.NetGraphConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
org.unidal.dal.jdbc.datasource.JdbcDataSourceDescriptorManager
</role>
<implementation>
org.unidal.dal.jdbc.datasource.JdbcDataSourceDescriptorManager
</implementation>
<configuration>
<datasourceFile>
/data/appdatas/cat/datasources.xml
</datasourceFile>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
alert
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
alert
</logical-table-name>
<physical-table-name>
alert
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
alert-summary
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
alert-summary
</logical-table-name>
<physical-table-name>
alert_summary
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
alteration
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
alteration
</logical-table-name>
<physical-table-name>
alteration
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
baseline
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
baseline
</logical-table-name>
<physical-table-name>
baseline
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
daily-report-content
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
daily-report-content
</logical-table-name>
<physical-table-name>
daily_report_content
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
event
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
event
</logical-table-name>
<physical-table-name>
event
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
monthly-report-content
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
monthly-report-content
</logical-table-name>
<physical-table-name>
monthly_report_content
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
topology-graph
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
topology-graph
</logical-table-name>
<physical-table-name>
topologyGraph
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
weekly-report-content
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
weekly-report-content
</logical-table-name>
<physical-table-name>
weekly_report_content
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
<implementation>
com.dianping.cat.home.dal.report.AlertDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.AlertSummaryDao
</role>
<implementation>
com.dianping.cat.home.dal.report.AlertSummaryDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.AlterationDao
</role>
<implementation>
com.dianping.cat.home.dal.report.AlterationDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.BaselineDao
</role>
<implementation>
com.dianping.cat.home.dal.report.BaselineDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.DailyReportContentDao
</role>
<implementation>
com.dianping.cat.home.dal.report.DailyReportContentDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.EventDao
</role>
<implementation>
com.dianping.cat.home.dal.report.EventDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</role>
<implementation>
com.dianping.cat.home.dal.report.MonthlyReportContentDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.TopologyGraphDao
</role>
<implementation>
com.dianping.cat.home.dal.report.TopologyGraphDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</role>
<implementation>
com.dianping.cat.home.dal.report.WeeklyReportContentDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
mail-record
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
mail-record
</logical-table-name>
<physical-table-name>
mailRecord
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
scheduled-report
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
scheduled-report
</logical-table-name>
<physical-table-name>
scheduledReport
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
scheduled-report-subscription
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
scheduled-report-subscription
</logical-table-name>
<physical-table-name>
scheduledReportSubscription
</physical-table-name>
<data-source-name>
cat
</data-source-name>
</configuration>
</component>
<component>
<role>
com.dianping.cat.home.dal.alarm.MailRecordDao
</role>
<implementation>
com.dianping.cat.home.dal.alarm.MailRecordDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.alarm.ScheduledReportDao
</role>
<implementation>
com.dianping.cat.home.dal.alarm.ScheduledReportDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao
</role>
<implementation>
com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
org.unidal.dal.jdbc.mapping.TableProvider
</role>
<role-hint>
dp-admin-login
</role-hint>
<implementation>
org.unidal.dal.jdbc.mapping.SimpleTableProvider
</implementation>
<configuration>
<logical-table-name>
dp-admin-login
</logical-table-name>
<physical-table-name>
DP_AdminLogin
</physical-table-name>
<data-source-name>
user
</data-source-name>
</configuration>
</component>
<component>
<role>
com.dianping.cat.home.dal.user.DpAdminLoginDao
</role>
<implementation>
com.dianping.cat.home.dal.user.DpAdminLoginDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.product.ProjectUpdateTask
</role>
<implementation>
com.dianping.cat.report.task.product.ProjectUpdateTask
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.HostinfoDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
org.unidal.web.mvc.model.ModuleRegistry
</role>
<implementation>
org.unidal.web.mvc.model.ModuleRegistry
</implementation>
<configuration>
<modules>
<module
default=
"true"
>
com.dianping.cat.report.ReportModule
</module>
<module>
com.dianping.cat.system.SystemModule
</module>
</modules>
</configuration>
</component>
<component>
<role>
com.dianping.cat.report.ReportModule
</role>
<implementation>
com.dianping.cat.report.ReportModule
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.home.Handler
</role>
<implementation>
com.dianping.cat.report.page.home.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.home.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.home.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.home.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.consumer.RealtimeConsumer
</role>
<implementation>
com.dianping.cat.consumer.RealtimeConsumer
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.analysis.MessageAnalyzerManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.statistic.ServerStatisticManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.statistic.ServerStatisticManager
</role>
<implementation>
com.dianping.cat.statistic.ServerStatisticManager
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.problem.Handler
</role>
<implementation>
com.dianping.cat.report.page.problem.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.problem.HistoryGraphs
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.problem.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
problem
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.DomainGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.JsonBuilder
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.problem.HistoryGraphs
</role>
<implementation>
com.dianping.cat.report.page.problem.HistoryGraphs
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.GraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyGraphDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.GraphDao
</role>
<implementation>
com.dianping.cat.core.dal.GraphDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.DailyGraphDao
</role>
<implementation>
com.dianping.cat.core.dal.DailyGraphDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.problem.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.problem.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.ServerConfigManager
</role>
<implementation>
com.dianping.cat.ServerConfigManager
</implementation>
</component>
<component>
<role>
com.dianping.cat.system.config.DomainGroupConfigManager
</role>
<implementation>
com.dianping.cat.system.config.DomainGroupConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
<implementation>
com.dianping.cat.core.config.ConfigDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
<implementation>
com.dianping.cat.report.page.PayloadNormalizer
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.JsonBuilder
</role>
<implementation>
com.dianping.cat.report.page.JsonBuilder
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.transaction.Handler
</role>
<implementation>
com.dianping.cat.report.page.transaction.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.graph.GraphBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.transaction.HistoryGraphs
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.transaction.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.transaction.XmlViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.transaction.TransactionMergeManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.DomainGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
transaction
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.transaction.HistoryGraphs
</role>
<implementation>
com.dianping.cat.report.page.transaction.HistoryGraphs
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.GraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyGraphDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.transaction.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.transaction.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.transaction.XmlViewer
</role>
<implementation>
com.dianping.cat.report.page.transaction.XmlViewer
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.transaction.TransactionMergeManager
</role>
<implementation>
com.dianping.cat.report.page.transaction.TransactionMergeManager
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.event.Handler
</role>
<implementation>
com.dianping.cat.report.page.event.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.graph.GraphBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.event.HistoryGraphs
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.event.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.event.EventMergeManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
event
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.DomainGroupConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.event.HistoryGraphs
</role>
<implementation>
com.dianping.cat.report.page.event.HistoryGraphs
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.GraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.DailyGraphDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.event.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.event.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.event.EventMergeManager
</role>
<implementation>
com.dianping.cat.report.page.event.EventMergeManager
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.heartbeat.Handler
</role>
<implementation>
com.dianping.cat.report.page.heartbeat.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.graph.GraphBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.heartbeat.HistoryGraphs
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.heartbeat.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
heartbeat
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.heartbeat.HistoryGraphs
</role>
<implementation>
com.dianping.cat.report.page.heartbeat.HistoryGraphs
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.GraphDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.heartbeat.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.heartbeat.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.logview.Handler
</role>
<implementation>
com.dianping.cat.report.page.logview.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.logview.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
logview
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessagePathBuilder
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.logview.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.logview.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.Handler
</role>
<implementation>
com.dianping.cat.report.page.model.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
cross-local
</role-hint>
<field-name>
m_crossService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
dependency-local
</role-hint>
<field-name>
m_dependencyService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
event-local
</role-hint>
<field-name>
m_eventService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
heartbeat-local
</role-hint>
<field-name>
m_heartbeatService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
matrix-local
</role-hint>
<field-name>
m_matrixService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
message-local
</role-hint>
<field-name>
m_messageService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
metric-local
</role-hint>
<field-name>
m_metricService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
problem-local
</role-hint>
<field-name>
m_problemService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
state-local
</role-hint>
<field-name>
m_stateService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
top-local
</role-hint>
<field-name>
m_topService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
transaction-local
</role-hint>
<field-name>
m_transactionService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.service.IpService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.cross.LocalCrossService
</role>
<implementation>
com.dianping.cat.report.page.model.cross.LocalCrossService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.dependency.LocalDependencyService
</role>
<implementation>
com.dianping.cat.report.page.model.dependency.LocalDependencyService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.event.LocalEventService
</role>
<implementation>
com.dianping.cat.report.page.model.event.LocalEventService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.heartbeat.LocalHeartbeatService
</role>
<implementation>
com.dianping.cat.report.page.model.heartbeat.LocalHeartbeatService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.matrix.LocalMatrixService
</role>
<implementation>
com.dianping.cat.report.page.model.matrix.LocalMatrixService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.logview.LocalMessageService
</role>
<implementation>
com.dianping.cat.report.page.model.logview.LocalMessageService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.dump.MessageBucketManager
</role>
<role-hint>
local
</role-hint>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.MessageCodec
</role>
<role-hint>
html
</role-hint>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.metric.LocalMetricService
</role>
<implementation>
com.dianping.cat.report.page.model.metric.LocalMetricService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.problem.LocalProblemService
</role>
<implementation>
com.dianping.cat.report.page.model.problem.LocalProblemService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.state.LocalStateService
</role>
<implementation>
com.dianping.cat.report.page.model.state.LocalStateService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.top.LocalTopService
</role>
<implementation>
com.dianping.cat.report.page.model.top.LocalTopService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.model.transaction.LocalTransactionService
</role>
<implementation>
com.dianping.cat.report.page.model.transaction.LocalTransactionService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.storage.BucketManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.message.spi.core.MessageConsumer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.service.IpService
</role>
<implementation>
com.dianping.cat.service.IpService
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.dashboard.Handler
</role>
<implementation>
com.dianping.cat.report.page.dashboard.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.dashboard.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.transaction.TransactionMergeManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.event.EventMergeManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
event
</role-hint>
<field-name>
m_eventService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
transaction
</role-hint>
<field-name>
m_transactionService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
problem
</role-hint>
<field-name>
m_problemService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.JsonBuilder
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dashboard.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.dashboard.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.matrix.Handler
</role>
<implementation>
com.dianping.cat.report.page.matrix.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.matrix.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
matrix
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.matrix.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.matrix.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.cross.Handler
</role>
<implementation>
com.dianping.cat.report.page.cross.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.cross.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.DomainManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
cross
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.cross.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.cross.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.DomainManager
</role>
<implementation>
com.dianping.cat.DomainManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.HostinfoDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.HostinfoDao
</role>
<implementation>
com.dianping.cat.core.dal.HostinfoDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
<implementation>
com.dianping.cat.core.dal.ProjectDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.cache.Handler
</role>
<implementation>
com.dianping.cat.report.page.cache.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
event
</role-hint>
<field-name>
m_eventService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.cache.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
transaction
</role-hint>
<field-name>
m_transactionService
</field-name>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.cache.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.cache.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.state.Handler
</role>
<implementation>
com.dianping.cat.report.page.state.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.state.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.state.StateGraphs
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
state
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.state.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.state.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.state.StateGraphs
</role>
<implementation>
com.dianping.cat.report.page.state.StateGraphs
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.top.Handler
</role>
<implementation>
com.dianping.cat.report.page.top.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.top.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
top
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.ExceptionConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.top.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.top.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.ExceptionConfigManager
</role>
<implementation>
com.dianping.cat.system.config.ExceptionConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.metric.Handler
</role>
<implementation>
com.dianping.cat.report.page.metric.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.metric.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.MetricGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.metric.graph.MetricGraphCreator
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.metric.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.metric.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
<implementation>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.MetricGroupConfigManager
</role>
<implementation>
com.dianping.cat.system.config.MetricGroupConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.metric.graph.MetricGraphCreator
</role>
<implementation>
com.dianping.cat.report.page.metric.graph.MetricGraphCreator
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.DataExtractor
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.MetricDataFetcher
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.CachedMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.MetricGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
<implementation>
com.dianping.cat.consumer.metric.MetricConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
<implementation>
com.dianping.cat.report.task.alert.AlertInfo
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.Handler
</role>
<implementation>
com.dianping.cat.report.page.dependency.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
dependency
</role-hint>
<field-name>
m_dependencyService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
state
</role-hint>
<field-name>
m_stateService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.ExternalInfoBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphManager
</role>
<implementation>
com.dianping.cat.report.page.dependency.graph.TopologyGraphManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
dependency
</role-hint>
<field-name>
m_service
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.TopologyGraphDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.view.DomainNavManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder
</role>
<implementation>
com.dianping.cat.report.page.dependency.graph.TopologyGraphBuilder
</implementation>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.TopologyGraphDao
</role>
<implementation>
com.dianping.cat.home.dal.report.TopologyGraphDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.view.DomainNavManager
</role>
<implementation>
com.dianping.cat.report.view.DomainNavManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.ExternalInfoBuilder
</role>
<implementation>
com.dianping.cat.report.page.dependency.ExternalInfoBuilder
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
problem
</role-hint>
<field-name>
m_problemservice
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.model.spi.ModelService
</role>
<role-hint>
top
</role-hint>
<field-name>
m_topService
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.externalError.EventCollectManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.ExceptionConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.externalError.EventCollectManager
</role>
<implementation>
com.dianping.cat.report.page.externalError.EventCollectManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.report.EventDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.EventDao
</role>
<implementation>
com.dianping.cat.home.dal.report.EventDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.dependency.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.externalError.Handler
</role>
<implementation>
com.dianping.cat.report.page.externalError.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.externalError.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.externalError.EventCollectManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.DomainManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.externalError.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.externalError.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.statistics.Handler
</role>
<implementation>
com.dianping.cat.report.page.statistics.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.statistics.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.BugConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryExecutor
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.statistics.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.statistics.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.BugConfigManager
</role>
<implementation>
com.dianping.cat.system.config.BugConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryExecutor
</role>
<implementation>
com.dianping.cat.report.task.alert.summary.AlertSummaryExecutor
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryGenerator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryDecorator
</role>
<role-hint>
AlertSummaryFTLDecorator
</role-hint>
<field-name>
m_alertSummaryDecorator
</field-name>
</requirement>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryGenerator
</role>
<implementation>
com.dianping.cat.report.task.alert.summary.AlertSummaryGenerator
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.AlertDao
</role>
<implementation>
com.dianping.cat.home.dal.report.AlertDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.summary.AlertSummaryManager
</role>
<implementation>
com.dianping.cat.report.task.alert.summary.AlertSummaryManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.report.AlertSummaryDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.AlertSummaryDao
</role>
<implementation>
com.dianping.cat.home.dal.report.AlertSummaryDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.alteration.Handler
</role>
<implementation>
com.dianping.cat.report.page.alteration.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.alteration.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.report.AlterationDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.alteration.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.alteration.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.report.AlterationDao
</role>
<implementation>
com.dianping.cat.home.dal.report.AlterationDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.monitor.Handler
</role>
<implementation>
com.dianping.cat.report.page.monitor.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.monitor.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.JsonBuilder
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.monitor.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.monitor.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.network.Handler
</role>
<implementation>
com.dianping.cat.report.page.network.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.network.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.network.graph.NetworkGraphCreator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.network.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.network.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.network.graph.NetworkGraphCreator
</role>
<implementation>
com.dianping.cat.report.page.network.graph.NetworkGraphCreator
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.DataExtractor
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.MetricDataFetcher
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.CachedMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.MetricGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphManager
</role>
<implementation>
com.dianping.cat.report.page.network.nettopology.NetGraphManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.task.alert.RemoteMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphBuilder
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.NetGraphConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.task.alert.RemoteMetricReportService
</role>
<implementation>
com.dianping.cat.report.task.alert.RemoteMetricReportService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.network.nettopology.NetGraphBuilder
</role>
<implementation>
com.dianping.cat.report.page.network.nettopology.NetGraphBuilder
</implementation>
</component>
<component>
<role>
com.dianping.cat.system.config.NetGraphConfigManager
</role>
<implementation>
com.dianping.cat.system.config.NetGraphConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.userMonitor.Handler
</role>
<implementation>
com.dianping.cat.report.page.userMonitor.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.userMonitor.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.config.url.UrlPatternConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.userMonitor.CityManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.userMonitor.graph.UserMonitorGraphCreator
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.userMonitor.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.userMonitor.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.config.url.UrlPatternConfigManager
</role>
<implementation>
com.dianping.cat.config.url.UrlPatternConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.config.url.UrlPatternHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.userMonitor.CityManager
</role>
<implementation>
com.dianping.cat.report.page.userMonitor.CityManager
</implementation>
</component>
<component>
<role>
com.dianping.cat.report.page.system.Handler
</role>
<implementation>
com.dianping.cat.report.page.system.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.system.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.system.graph.SystemGraphCreator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.system.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.system.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.system.graph.SystemGraphCreator
</role>
<implementation>
com.dianping.cat.report.page.system.graph.SystemGraphCreator
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.DataExtractor
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.MetricDataFetcher
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.CachedMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.MetricGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.cdn.Handler
</role>
<implementation>
com.dianping.cat.report.page.cdn.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.cdn.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.userMonitor.CityManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.cdn.graph.CdnGraphCreator
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.cdn.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.cdn.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.cdn.graph.CdnGraphCreator
</role>
<implementation>
com.dianping.cat.report.page.cdn.graph.CdnGraphCreator
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.DataExtractor
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.MetricDataFetcher
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.CachedMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.MetricGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.app.Handler
</role>
<implementation>
com.dianping.cat.report.page.app.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.report.page.app.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.config.app.AppConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.app.graph.AppGraphCreator
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.PayloadNormalizer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.app.JspViewer
</role>
<implementation>
com.dianping.cat.report.page.app.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.config.app.AppConfigManager
</role>
<implementation>
com.dianping.cat.config.app.AppConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.app.graph.AppGraphCreator
</role>
<implementation>
com.dianping.cat.report.page.app.graph.AppGraphCreator
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.config.app.AppDataService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.baseline.BaselineService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.DataExtractor
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.MetricDataFetcher
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.chart.CachedMetricReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.MetricGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.task.alert.AlertInfo
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.config.app.AppDataService
</role>
<implementation>
com.dianping.cat.config.app.AppDataService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.app.AppDataCommandDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.config.app.AppConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.app.AppDataCommandDao
</role>
<implementation>
com.dianping.cat.app.AppDataCommandDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.SystemModule
</role>
<implementation>
com.dianping.cat.system.SystemModule
</implementation>
</component>
<component>
<role>
com.dianping.cat.system.page.alarm.Handler
</role>
<implementation>
com.dianping.cat.system.page.alarm.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.page.alarm.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.page.alarm.RecordManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.page.alarm.ScheduledManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.alarm.JspViewer
</role>
<implementation>
com.dianping.cat.system.page.alarm.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.alarm.RecordManager
</role>
<implementation>
com.dianping.cat.system.page.alarm.RecordManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.alarm.MailRecordDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.alarm.MailRecordDao
</role>
<implementation>
com.dianping.cat.home.dal.alarm.MailRecordDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao
</role>
<implementation>
com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.alarm.ScheduledManager
</role>
<implementation>
com.dianping.cat.system.page.alarm.ScheduledManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.user.DpAdminLoginDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.alarm.ScheduledReportDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.alarm.ScheduledReportSubscriptionDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.user.DpAdminLoginDao
</role>
<implementation>
com.dianping.cat.home.dal.user.DpAdminLoginDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.home.dal.alarm.ScheduledReportDao
</role>
<implementation>
com.dianping.cat.home.dal.alarm.ScheduledReportDao
</implementation>
<requirements>
<requirement>
<role>
org.unidal.dal.jdbc.QueryEngine
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.login.Handler
</role>
<implementation>
com.dianping.cat.system.page.login.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.page.login.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.page.login.service.SigninService
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.login.JspViewer
</role>
<implementation>
com.dianping.cat.system.page.login.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.login.service.SigninService
</role>
<implementation>
com.dianping.cat.system.page.login.service.SigninService
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.page.login.service.TokenManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.page.login.service.SessionManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.login.service.TokenManager
</role>
<implementation>
com.dianping.cat.system.page.login.service.TokenManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.page.login.service.CookieManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.page.login.service.TokenBuilder
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.login.service.CookieManager
</role>
<implementation>
com.dianping.cat.system.page.login.service.CookieManager
</implementation>
</component>
<component>
<role>
com.dianping.cat.system.page.login.service.TokenBuilder
</role>
<implementation>
com.dianping.cat.system.page.login.service.TokenBuilder
</implementation>
</component>
<component>
<role>
com.dianping.cat.system.page.login.service.SessionManager
</role>
<implementation>
com.dianping.cat.system.page.login.service.SessionManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.home.dal.user.DpAdminLoginDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.config.Handler
</role>
<implementation>
com.dianping.cat.system.page.config.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.page.config.JspViewer
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.core.dal.ProjectDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.ProductLineConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.config.aggregation.AggregationConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.consumer.metric.MetricConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.ExceptionConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.DomainGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.BugConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.MetricGroupConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.config.url.UrlPatternConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.BusinessRuleConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.NetworkRuleConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.SystemRuleConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.AlertConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.config.app.AppConfigManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.view.DomainNavManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
</requirement>
<requirement>
<requirement>
<role>
com.dianping.cat.system.config.NetGraphConfigManager
</role>
<role>
com.dianping.cat.system.config.NetGraphConfigManager
</role>
</requirement>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.AlertTypeManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.config.ThirdPartyConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.config.JspViewer
</role>
<implementation>
com.dianping.cat.system.page.config.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager
</role>
<implementation>
com.dianping.cat.report.page.dependency.graph.TopologyGraphConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.config.aggregation.AggregationConfigManager
</role>
<implementation>
com.dianping.cat.config.aggregation.AggregationConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.config.aggregation.AggregationHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.BusinessRuleConfigManager
</role>
<implementation>
com.dianping.cat.system.config.BusinessRuleConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.NetworkRuleConfigManager
</role>
<implementation>
com.dianping.cat.system.config.NetworkRuleConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.SystemRuleConfigManager
</role>
<implementation>
com.dianping.cat.system.config.SystemRuleConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.AlertConfigManager
</role>
<implementation>
com.dianping.cat.system.config.AlertConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.AlertTypeManager
</role>
<implementation>
com.dianping.cat.system.config.AlertTypeManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.config.ThirdPartyConfigManager
</role>
<implementation>
com.dianping.cat.system.config.ThirdPartyConfigManager
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.core.config.ConfigDao
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.plugin.Handler
</role>
<implementation>
com.dianping.cat.system.page.plugin.Handler
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.page.plugin.JspViewer
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.page.plugin.JspViewer
</role>
<implementation>
com.dianping.cat.system.page.plugin.JspViewer
</implementation>
<requirements>
<requirement>
<role>
org.unidal.web.mvc.view.model.ModelHandler
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
<implementation>
com.dianping.cat.system.tool.DefaultMailImpl
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.ServerConfigManager
</role>
</requirement>
</requirements>
</component>
<component>
<role>
com.dianping.cat.system.notify.ReportRender
</role>
<implementation>
com.dianping.cat.system.notify.ReportRenderImpl
</implementation>
</component>
<component>
<role>
com.dianping.cat.system.notify.ScheduledMailTask
</role>
<implementation>
com.dianping.cat.system.notify.ScheduledMailTask
</implementation>
<requirements>
<requirement>
<role>
com.dianping.cat.system.notify.ReportRender
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.tool.MailSMS
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.report.service.ReportService
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.system.page.alarm.ScheduledManager
</role>
</requirement>
<requirement>
<role>
com.dianping.cat.home.dal.alarm.MailRecordDao
</role>
</requirement>
</requirements>
</requirements>
</component>
</component>
<component>
<component>
...
...
cat-home/src/test/resources/config/router-config.xml
浏览文件 @
33560f1b
<router-config>
<router-config>
<default-server
id=
"10.1.6.101"
weight=
"1"
port=
"2280"
enable=
"true"
/>
<default-server
id=
"10.1.6.101"
weight=
"1"
port=
"2280"
enable=
"false"
/>
<default-server
id=
"10.1.6.101"
weight=
"1"
port=
"2280"
enable=
"true"
/>
<domain
id=
"Cat"
>
<domain
id=
"Cat"
>
<server
id=
"10.1.6.101"
port=
"2280"
></server>
<server
id=
"10.1.6.101"
port=
"2280"
></server>
<server
id=
"10.1.6.102"
port=
"2280"
></server>
<server
id=
"10.1.6.102"
port=
"2280"
></server>
<server
id=
"10.1.6.103"
port=
"2280"
></server>
<server
id=
"10.1.6.103"
port=
"2280"
></server>
</domain>
</domain>
<domain></domain>
<domain></domain>
</router-config>
</router-config>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录