Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
killuaz丶x
SkyWalking
提交
b0003f01
S
SkyWalking
项目概览
killuaz丶x
/
SkyWalking
与 Fork 源项目一致
Fork自
apache / SkyWalking
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b0003f01
编写于
7月 10, 2017
作者:
P
pengys5
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Provide modular development framework
上级
a29a1c02
变更
50
隐藏空白更改
内联
并排
Showing
50 changed file
with
873 addition
and
0 deletion
+873
-0
apm-collector/apm-collector-core/pom.xml
apm-collector/apm-collector-core/pom.xml
+27
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/CollectorException.java
...org/skywalking/apm/collector/core/CollectorException.java
+15
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/Client.java
...java/org/skywalking/apm/collector/core/client/Client.java
+21
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/ClientException.java
...skywalking/apm/collector/core/client/ClientException.java
+16
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/DataListener.java
...rg/skywalking/apm/collector/core/client/DataListener.java
+12
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterDataInitializer.java
...ng/apm/collector/core/cluster/ClusterDataInitializer.java
+24
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterDefinitionFile.java
...ing/apm/collector/core/cluster/ClusterDefinitionFile.java
+13
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleDefine.java
...lking/apm/collector/core/cluster/ClusterModuleDefine.java
+29
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleException.java
...ng/apm/collector/core/cluster/ClusterModuleException.java
+17
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Discovery.java
.../org/skywalking/apm/collector/core/cluster/Discovery.java
+9
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Registration.java
...g/skywalking/apm/collector/core/cluster/Registration.java
+9
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigException.java
...skywalking/apm/collector/core/config/ConfigException.java
+17
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigLoader.java
...rg/skywalking/apm/collector/core/config/ConfigLoader.java
+9
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigLoaderException.java
...king/apm/collector/core/config/ConfigLoaderException.java
+15
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigParseException.java
...lking/apm/collector/core/config/ConfigParseException.java
+15
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/DataInitializer.java
...walking/apm/collector/core/framework/DataInitializer.java
+15
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Decision.java
...org/skywalking/apm/collector/core/framework/Decision.java
+7
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java
...a/org/skywalking/apm/collector/core/framework/Define.java
+15
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/DefineException.java
...walking/apm/collector/core/framework/DefineException.java
+17
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/DefinitionFile.java
...ywalking/apm/collector/core/framework/DefinitionFile.java
+15
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Loader.java
...a/org/skywalking/apm/collector/core/framework/Loader.java
+11
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/PriorityDecision.java
...alking/apm/collector/core/framework/PriorityDecision.java
+31
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Provider.java
...org/skywalking/apm/collector/core/framework/Provider.java
+8
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Starter.java
.../org/skywalking/apm/collector/core/framework/Starter.java
+8
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Writer.java
...a/org/skywalking/apm/collector/core/framework/Writer.java
+7
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java
...java/org/skywalking/apm/collector/core/module/Module.java
+10
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigLoader.java
...walking/apm/collector/core/module/ModuleConfigLoader.java
+38
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigLoaderException.java
...pm/collector/core/module/ModuleConfigLoaderException.java
+16
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigParser.java
...walking/apm/collector/core/module/ModuleConfigParser.java
+11
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefine.java
...rg/skywalking/apm/collector/core/module/ModuleDefine.java
+34
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefinitionFile.java
...lking/apm/collector/core/module/ModuleDefinitionFile.java
+12
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleException.java
...skywalking/apm/collector/core/module/ModuleException.java
+17
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleGroup.java
...org/skywalking/apm/collector/core/module/ModuleGroup.java
+8
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java
...skywalking/apm/collector/core/module/ModuleInstaller.java
+46
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/Server.java
...java/org/skywalking/apm/collector/core/server/Server.java
+9
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/ServerException.java
...skywalking/apm/collector/core/server/ServerException.java
+17
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/ServerModuleDefine.java
...walking/apm/collector/core/server/ServerModuleDefine.java
+9
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/DefinitionLoader.java
.../skywalking/apm/collector/core/util/DefinitionLoader.java
+81
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/ObjectUtils.java
...a/org/skywalking/apm/collector/core/util/ObjectUtils.java
+12
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/ResourceUtils.java
...org/skywalking/apm/collector/core/util/ResourceUtils.java
+16
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/StringUtils.java
...a/org/skywalking/apm/collector/core/util/StringUtils.java
+15
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker/WorkerModuleDefine.java
...walking/apm/collector/core/worker/WorkerModuleDefine.java
+34
-0
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker/WorkerModuleException.java
...king/apm/collector/core/worker/WorkerModuleException.java
+17
-0
apm-collector/apm-collector-core/src/main/resources/logback.xml
...llector/apm-collector-core/src/main/resources/logback.xml
+14
-0
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/config/ModuleConfigLoaderTestCase.java
...apm/collector/core/config/ModuleConfigLoaderTestCase.java
+18
-0
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ClusterModuleForTest.java
...lking/apm/collector/core/module/ClusterModuleForTest.java
+17
-0
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ModuleInstallerTestCase.java
...ng/apm/collector/core/module/ModuleInstallerTestCase.java
+19
-0
apm-collector/apm-collector-core/src/test/resources/META-INF/defines/module.define
...or-core/src/test/resources/META-INF/defines/module.define
+1
-0
apm-collector/apm-collector-core/src/test/resources/application.yml
...tor/apm-collector-core/src/test/resources/application.yml
+8
-0
apm-collector/apm-collector-core/src/test/resources/logback-test.xml
...or/apm-collector-core/src/test/resources/logback-test.xml
+12
-0
未找到文件。
apm-collector/apm-collector-core/pom.xml
0 → 100644
浏览文件 @
b0003f01
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
apm-collector
</artifactId>
<groupId>
org.skywalking
</groupId>
<version>
3.2-2017
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
apm-collector-core
</artifactId>
<packaging>
jar
</packaging>
<dependencies>
<dependency>
<groupId>
org.yaml
</groupId>
<artifactId>
snakeyaml
</artifactId>
<version>
1.18
</version>
</dependency>
<dependency>
<groupId>
ch.qos.logback
</groupId>
<artifactId>
logback-classic
</artifactId>
<version>
1.2.3
</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/CollectorException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core
;
/**
* @author pengys5
*/
public
class
CollectorException
extends
Exception
{
public
CollectorException
(
String
message
)
{
super
(
message
);
}
public
CollectorException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/Client.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.client
;
/**
* @author pengys5
*/
public
interface
Client
{
void
initialize
()
throws
ClientException
;
void
insert
(
String
path
)
throws
ClientException
;
void
update
();
String
select
(
String
path
)
throws
ClientException
;
void
delete
();
boolean
exist
(
String
path
)
throws
ClientException
;
void
listen
(
String
path
)
throws
ClientException
;
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/ClientException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.client
;
import
org.skywalking.apm.collector.core.CollectorException
;
/**
* @author pengys5
*/
public
abstract
class
ClientException
extends
CollectorException
{
public
ClientException
(
String
message
)
{
super
(
message
);
}
public
ClientException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/client/DataListener.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.client
;
import
java.util.List
;
/**
* @author pengys5
*/
public
interface
DataListener
{
List
<
String
>
items
();
void
listen
()
throws
ClientException
;
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterDataInitializer.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.cluster
;
import
org.skywalking.apm.collector.core.client.Client
;
import
org.skywalking.apm.collector.core.client.ClientException
;
import
org.skywalking.apm.collector.core.framework.DataInitializer
;
/**
* @author pengys5
*/
public
abstract
class
ClusterDataInitializer
implements
DataInitializer
{
public
static
final
String
BASE_CATALOG
=
"collector.cluster"
;
public
static
final
String
FOR_UI_CATALOG
=
BASE_CATALOG
+
".ui"
;
public
static
final
String
FOR_AGENT_CATALOG
=
BASE_CATALOG
+
".agent"
;
@Override
public
final
void
initialize
(
Client
client
)
throws
ClientException
{
if
(!
existItem
(
client
,
FOR_UI_CATALOG
))
{
addItem
(
client
,
FOR_UI_CATALOG
);
}
if
(!
existItem
(
client
,
FOR_AGENT_CATALOG
))
{
addItem
(
client
,
FOR_AGENT_CATALOG
);
}
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterDefinitionFile.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.cluster
;
import
org.skywalking.apm.collector.core.framework.DefinitionFile
;
/**
* @author pengys5
*/
public
class
ClusterDefinitionFile
extends
DefinitionFile
{
@Override
protected
String
fileName
()
{
return
"cluster-configuration.define"
;
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleDefine.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.cluster
;
import
java.util.Map
;
import
org.skywalking.apm.collector.core.client.Client
;
import
org.skywalking.apm.collector.core.client.ClientException
;
import
org.skywalking.apm.collector.core.config.ConfigParseException
;
import
org.skywalking.apm.collector.core.module.ModuleDefine
;
import
org.skywalking.apm.collector.core.server.Server
;
/**
* @author pengys5
*/
public
abstract
class
ClusterModuleDefine
extends
ModuleDefine
{
@Override
public
final
void
initialize
(
Map
config
)
throws
ClusterModuleException
{
try
{
configParser
().
parse
(
config
);
Client
client
=
client
();
client
.
initialize
();
dataInitializer
().
initialize
(
client
);
}
catch
(
ConfigParseException
|
ClientException
e
)
{
throw
new
ClusterModuleException
(
e
.
getMessage
(),
e
);
}
}
@Override
public
final
Server
server
()
{
throw
new
UnsupportedOperationException
(
""
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/ClusterModuleException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.cluster
;
import
org.skywalking.apm.collector.core.module.ModuleException
;
/**
* @author pengys5
*/
public
class
ClusterModuleException
extends
ModuleException
{
public
ClusterModuleException
(
String
message
)
{
super
(
message
);
}
public
ClusterModuleException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Discovery.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.cluster
;
/**
* @author pengys5
*/
public
interface
Discovery
{
void
discover
();
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/cluster/Registration.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.cluster
;
/**
* @author pengys5
*/
public
interface
Registration
{
void
register
();
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.config
;
import
org.skywalking.apm.collector.core.CollectorException
;
/**
* @author pengys5
*/
public
abstract
class
ConfigException
extends
CollectorException
{
public
ConfigException
(
String
message
)
{
super
(
message
);
}
public
ConfigException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigLoader.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.config
;
import
org.skywalking.apm.collector.core.framework.Loader
;
/**
* @author pengys5
*/
public
interface
ConfigLoader
extends
Loader
{
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigLoaderException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.config
;
/**
* @author pengys5
*/
public
abstract
class
ConfigLoaderException
extends
ConfigException
{
public
ConfigLoaderException
(
String
message
)
{
super
(
message
);
}
public
ConfigLoaderException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/config/ConfigParseException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.config
;
/**
* @author pengys5
*/
public
class
ConfigParseException
extends
ConfigException
{
public
ConfigParseException
(
String
message
)
{
super
(
message
);
}
public
ConfigParseException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/DataInitializer.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
import
org.skywalking.apm.collector.core.client.Client
;
import
org.skywalking.apm.collector.core.client.ClientException
;
/**
* @author pengys5
*/
public
interface
DataInitializer
{
void
initialize
(
Client
client
)
throws
ClientException
;
void
addItem
(
Client
client
,
String
itemKey
)
throws
ClientException
;
boolean
existItem
(
Client
client
,
String
itemKey
)
throws
ClientException
;
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Decision.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
/**
* @author pengys5
*/
public
interface
Decision
{
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Define.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
import
java.util.Map
;
/**
* @author pengys5
*/
public
interface
Define
{
void
initialize
(
Map
config
)
throws
DefineException
;
String
getName
();
void
setName
(
String
name
);
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/DefineException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
import
org.skywalking.apm.collector.core.CollectorException
;
/**
* @author pengys5
*/
public
abstract
class
DefineException
extends
CollectorException
{
public
DefineException
(
String
message
)
{
super
(
message
);
}
public
DefineException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/DefinitionFile.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
/**
* @author pengys5
*/
public
abstract
class
DefinitionFile
{
private
final
String
CATALOG
=
"META-INF/defines/"
;
protected
abstract
String
fileName
();
public
final
String
get
()
{
return
CATALOG
+
fileName
();
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Loader.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
import
org.skywalking.apm.collector.core.config.ConfigException
;
/**
* @author pengys5
*/
public
interface
Loader
{
void
load
()
throws
ConfigException
;
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/PriorityDecision.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
import
java.util.List
;
/**
* @author pengys5
*/
public
class
PriorityDecision
implements
Decision
{
public
Object
decide
(
List
<
Priority
>
source
)
{
return
source
.
get
(
0
);
}
public
static
class
Priority
{
private
final
int
value
;
private
final
Object
object
;
public
Priority
(
int
value
,
Object
object
)
{
this
.
value
=
value
;
this
.
object
=
object
;
}
public
int
getValue
()
{
return
value
;
}
public
Object
getObject
()
{
return
object
;
}
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Provider.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
/**
* @author pengys5
*/
public
interface
Provider
<
D
>
{
D
create
();
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Starter.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
/**
* @author pengys5
*/
public
interface
Starter
{
void
start
();
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/framework/Writer.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.framework
;
/**
* @author pengys5
*/
public
interface
Writer
{
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/Module.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
java.util.Map
;
/**
* @author pengys5
*/
public
interface
Module
{
void
install
(
Map
configuration
);
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigLoader.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
java.io.FileNotFoundException
;
import
java.util.Map
;
import
org.skywalking.apm.collector.core.config.ConfigLoader
;
import
org.skywalking.apm.collector.core.util.ResourceUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.yaml.snakeyaml.Yaml
;
/**
* @author pengys5
*/
public
class
ModuleConfigLoader
implements
ConfigLoader
{
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ModuleConfigLoader
.
class
);
@Override
public
void
load
()
throws
ModuleConfigLoaderException
{
Yaml
yaml
=
new
Yaml
();
ModuleInstaller
installer
=
new
ModuleInstaller
();
Map
<
String
,
Map
>
configurations
=
null
;
try
{
configurations
=
(
Map
<
String
,
Map
>)
yaml
.
load
(
ResourceUtils
.
read
(
"application.yml"
));
}
catch
(
FileNotFoundException
e
)
{
throw
new
ModuleConfigLoaderException
(
e
.
getMessage
(),
e
);
}
configurations
.
forEach
((
moduleName
,
moduleConfig
)
->
{
logger
.
info
(
"module name \"{}\" from application.yml"
,
moduleName
);
try
{
installer
.
install
(
moduleName
,
moduleConfig
);
}
catch
(
ModuleException
e
)
{
logger
.
error
(
"module \"{}\" install failure"
,
moduleName
);
logger
.
error
(
e
.
getMessage
(),
e
);
}
});
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigLoaderException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
org.skywalking.apm.collector.core.config.ConfigLoaderException
;
/**
* @author pengys5
*/
public
class
ModuleConfigLoaderException
extends
ConfigLoaderException
{
public
ModuleConfigLoaderException
(
String
message
)
{
super
(
message
);
}
public
ModuleConfigLoaderException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleConfigParser.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
java.util.Map
;
import
org.skywalking.apm.collector.core.config.ConfigParseException
;
/**
* @author pengys5
*/
public
interface
ModuleConfigParser
{
void
parse
(
Map
config
)
throws
ConfigParseException
;
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefine.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
org.skywalking.apm.collector.core.client.Client
;
import
org.skywalking.apm.collector.core.framework.DataInitializer
;
import
org.skywalking.apm.collector.core.framework.Define
;
import
org.skywalking.apm.collector.core.server.Server
;
/**
* @author pengys5
*/
public
abstract
class
ModuleDefine
implements
Define
{
private
String
moduleName
;
@Override
public
final
String
getName
()
{
return
moduleName
;
}
@Override
public
final
void
setName
(
String
name
)
{
this
.
moduleName
=
name
;
}
protected
abstract
ModuleGroup
group
();
protected
abstract
boolean
defaultModule
();
protected
abstract
ModuleConfigParser
configParser
();
protected
abstract
Client
client
();
protected
abstract
Server
server
();
protected
abstract
DataInitializer
dataInitializer
();
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleDefinitionFile.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
org.skywalking.apm.collector.core.framework.DefinitionFile
;
/**
* @author pengys5
*/
public
class
ModuleDefinitionFile
extends
DefinitionFile
{
@Override
protected
String
fileName
()
{
return
"module.define"
;
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
org.skywalking.apm.collector.core.framework.DefineException
;
/**
* @author pengys5
*/
public
abstract
class
ModuleException
extends
DefineException
{
public
ModuleException
(
String
message
)
{
super
(
message
);
}
public
ModuleException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleGroup.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
/**
* @author pengys5
*/
public
enum
ModuleGroup
{
Cluster
,
Worker
,
Queue
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleInstaller.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
org.skywalking.apm.collector.core.framework.DefineException
;
import
org.skywalking.apm.collector.core.util.DefinitionLoader
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
/**
* @author pengys5
*/
public
class
ModuleInstaller
{
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ModuleInstaller
.
class
);
private
final
Map
<
String
,
ModuleDefine
>
moduleDefineMap
;
protected
ModuleInstaller
()
{
moduleDefineMap
=
new
LinkedHashMap
<>();
ModuleDefinitionFile
definitionFile
=
new
ModuleDefinitionFile
();
logger
.
info
(
"definition file name: {}"
,
definitionFile
.
fileName
());
DefinitionLoader
<
ModuleDefine
>
definitionLoader
=
DefinitionLoader
.
load
(
ModuleDefine
.
class
,
definitionFile
);
for
(
ModuleDefine
moduleDefine
:
definitionLoader
)
{
logger
.
info
(
"loaded module class: {}"
,
moduleDefine
.
getClass
().
getName
());
moduleDefineMap
.
put
(
moduleDefine
.
getName
(),
moduleDefine
);
}
}
public
void
install
(
String
moduleName
,
Map
moduleConfig
)
throws
ModuleException
{
Map
<
String
,
Map
>
module
=
(
LinkedHashMap
)
moduleConfig
;
module
.
entrySet
().
forEach
(
subModuleConfig
->
{
String
subMoudleName
=
moduleName
+
"."
+
subModuleConfig
.
getKey
();
logger
.
info
(
"install sub module {}"
,
subMoudleName
);
try
{
if
(
moduleDefineMap
.
containsKey
(
subMoudleName
))
{
moduleDefineMap
.
get
(
subMoudleName
).
initialize
(
subModuleConfig
.
getValue
());
}
else
{
logger
.
error
(
"could not found the module definition, module name: {}"
,
subMoudleName
);
}
}
catch
(
DefineException
e
)
{
logger
.
error
(
e
.
getMessage
(),
e
);
}
});
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/Server.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.server
;
/**
* @author pengys5
*/
public
interface
Server
{
void
initialize
()
throws
ServerException
;
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/ServerException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.server
;
import
org.skywalking.apm.collector.core.CollectorException
;
/**
* @author pengys5
*/
public
abstract
class
ServerException
extends
CollectorException
{
public
ServerException
(
String
message
)
{
super
(
message
);
}
public
ServerException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/server/ServerModuleDefine.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.server
;
import
org.skywalking.apm.collector.core.module.ModuleDefine
;
/**
* @author pengys5
*/
public
abstract
class
ServerModuleDefine
extends
ModuleDefine
{
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/DefinitionLoader.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.util
;
import
java.io.FileReader
;
import
java.io.IOException
;
import
java.net.URL
;
import
java.util.Enumeration
;
import
java.util.Iterator
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.Properties
;
import
org.skywalking.apm.collector.core.framework.Define
;
import
org.skywalking.apm.collector.core.framework.DefinitionFile
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
/**
* @author pengys5
*/
public
class
DefinitionLoader
<
D
>
implements
Iterable
<
D
>
{
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
DefinitionLoader
.
class
);
private
final
Class
<
D
>
definition
;
private
final
DefinitionFile
definitionFile
;
protected
DefinitionLoader
(
Class
<
D
>
svc
,
DefinitionFile
definitionFile
)
{
this
.
definition
=
Objects
.
requireNonNull
(
svc
,
"definition interface cannot be null"
);
this
.
definitionFile
=
definitionFile
;
}
public
static
<
D
>
DefinitionLoader
<
D
>
load
(
Class
<
D
>
definition
,
DefinitionFile
definitionFile
)
{
return
new
DefinitionLoader
(
definition
,
definitionFile
);
}
@Override
public
final
Iterator
<
D
>
iterator
()
{
logger
.
info
(
"load definition file: {}"
,
definitionFile
.
get
());
Properties
properties
=
new
Properties
();
Map
<
String
,
String
>
definitionList
=
new
LinkedHashMap
<>();
try
{
Enumeration
<
URL
>
urlEnumeration
=
this
.
getClass
().
getClassLoader
().
getResources
(
definitionFile
.
get
());
while
(
urlEnumeration
.
hasMoreElements
())
{
URL
definitionFileURL
=
urlEnumeration
.
nextElement
();
logger
.
info
(
"definition file url: {}"
,
definitionFileURL
.
getPath
());
properties
.
load
(
new
FileReader
(
definitionFileURL
.
getPath
()));
Enumeration
defineItem
=
properties
.
propertyNames
();
while
(
defineItem
.
hasMoreElements
())
{
String
key
=
(
String
)
defineItem
.
nextElement
();
String
fullNameClass
=
properties
.
getProperty
(
key
);
definitionList
.
put
(
key
,
fullNameClass
);
}
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
Iterator
<
Map
.
Entry
<
String
,
String
>>
moduleDefineIterator
=
definitionList
.
entrySet
().
iterator
();
return
new
Iterator
<
D
>()
{
@Override
public
boolean
hasNext
()
{
return
moduleDefineIterator
.
hasNext
();
}
@Override
public
D
next
()
{
Map
.
Entry
<
String
,
String
>
moduleDefineEntry
=
moduleDefineIterator
.
next
();
String
definitionName
=
moduleDefineEntry
.
getKey
();
String
definitionClass
=
moduleDefineEntry
.
getValue
();
logger
.
info
(
"key: {}, definitionClass: {}"
,
definitionName
,
definitionClass
);
try
{
Class
c
=
Class
.
forName
(
definitionClass
);
Define
define
=
(
Define
)
c
.
newInstance
();
define
.
setName
(
definitionName
);
return
(
D
)
define
;
}
catch
(
Exception
e
)
{
}
return
null
;
}
};
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/ObjectUtils.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.util
;
import
com.sun.istack.internal.Nullable
;
/**
* @author pengys5
*/
public
class
ObjectUtils
{
public
static
boolean
isEmpty
(
@Nullable
Object
obj
)
{
return
obj
==
null
;
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/ResourceUtils.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.util
;
import
java.io.FileNotFoundException
;
import
java.io.FileReader
;
/**
* @author pengys5
*/
public
class
ResourceUtils
{
private
static
final
String
PATH
=
ResourceUtils
.
class
.
getResource
(
"/"
).
getPath
();
public
static
FileReader
read
(
String
fileName
)
throws
FileNotFoundException
{
return
new
FileReader
(
PATH
+
fileName
);
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/util/StringUtils.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.util
;
import
com.sun.istack.internal.Nullable
;
/**
* @author pengys5
*/
public
class
StringUtils
{
public
static
final
String
EMPTY_STRING
=
""
;
public
static
boolean
isEmpty
(
@Nullable
Object
str
)
{
return
(
str
==
null
||
EMPTY_STRING
.
equals
(
str
));
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker/WorkerModuleDefine.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.worker
;
import
java.util.Map
;
import
org.skywalking.apm.collector.core.client.Client
;
import
org.skywalking.apm.collector.core.config.ConfigParseException
;
import
org.skywalking.apm.collector.core.framework.DataInitializer
;
import
org.skywalking.apm.collector.core.module.ModuleDefine
;
import
org.skywalking.apm.collector.core.module.ModuleException
;
import
org.skywalking.apm.collector.core.server.Server
;
import
org.skywalking.apm.collector.core.server.ServerException
;
/**
* @author pengys5
*/
public
abstract
class
WorkerModuleDefine
extends
ModuleDefine
{
@Override
public
final
void
initialize
(
Map
config
)
throws
ModuleException
{
try
{
configParser
().
parse
(
config
);
Server
server
=
server
();
server
.
initialize
();
}
catch
(
ConfigParseException
|
ServerException
e
)
{
throw
new
WorkerModuleException
(
e
.
getMessage
(),
e
);
}
}
@Override
public
final
Client
client
()
{
throw
new
UnsupportedOperationException
();
}
@Override
public
final
DataInitializer
dataInitializer
()
{
throw
new
UnsupportedOperationException
();
}
}
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/worker/WorkerModuleException.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.worker
;
import
org.skywalking.apm.collector.core.module.ModuleException
;
/**
* @author pengys5
*/
public
class
WorkerModuleException
extends
ModuleException
{
public
WorkerModuleException
(
String
message
)
{
super
(
message
);
}
public
WorkerModuleException
(
String
message
,
Throwable
cause
)
{
super
(
message
,
cause
);
}
}
apm-collector/apm-collector-core/src/main/resources/logback.xml
0 → 100644
浏览文件 @
b0003f01
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<layout
class=
"ch.qos.logback.classic.PatternLayout"
>
<Pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<logger
name=
"com.base22"
level=
"TRACE"
/>
<root
level=
"debug"
>
<appender-ref
ref=
"STDOUT"
/>
</root>
</configuration>
\ No newline at end of file
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/config/ModuleConfigLoaderTestCase.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.config
;
import
java.io.FileNotFoundException
;
import
org.junit.Test
;
import
org.skywalking.apm.collector.core.module.ModuleConfigLoader
;
import
org.skywalking.apm.collector.core.module.ModuleConfigLoaderException
;
/**
* @author pengys5
*/
public
class
ModuleConfigLoaderTestCase
{
@Test
public
void
testLoad
()
throws
ModuleConfigLoaderException
{
ModuleConfigLoader
loader
=
new
ModuleConfigLoader
();
loader
.
load
();
}
}
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ClusterModuleForTest.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
java.util.Map
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
/**
* @author pengys5
*/
public
class
ClusterModuleForTest
implements
Module
{
private
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ModuleInstaller
.
class
);
@Override
public
void
install
(
Map
configuration
)
{
logger
.
debug
(
configuration
.
toString
());
}
}
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ModuleInstallerTestCase.java
0 → 100644
浏览文件 @
b0003f01
package
org.skywalking.apm.collector.core.module
;
import
org.junit.Before
;
import
org.junit.Test
;
/**
* @author pengys5
*/
public
class
ModuleInstallerTestCase
{
@Before
public
void
init
()
{
}
@Test
public
void
testInstall
()
{
ModuleInstaller
installer
=
new
ModuleInstaller
();
}
}
apm-collector/apm-collector-core/src/test/resources/META-INF/defines/module.define
0 → 100644
浏览文件 @
b0003f01
cluster=org.skywalking.apm.collector.core.module.ClusterModuleForTest
\ No newline at end of file
apm-collector/apm-collector-core/src/test/resources/application.yml
0 → 100644
浏览文件 @
b0003f01
cluster
:
zookeeper
:
host
:
localhost-zk
port
:
1000
redis
:
host
:
localhost-rd
port
:
2000
apm-collector/apm-collector-core/src/test/resources/logback-test.xml
0 → 100644
浏览文件 @
b0003f01
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender
name=
"STDOUT"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<layout
class=
"ch.qos.logback.classic.PatternLayout"
>
<Pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</Pattern>
</layout>
</appender>
<root
level=
"debug"
>
<appender-ref
ref=
"STDOUT"
/>
</root>
</configuration>
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录