Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
SkyWalking
提交
fafd17f2
S
SkyWalking
项目概览
apache
/
SkyWalking
上一次同步 1 年多
通知
302
Star
21345
Fork
6091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
SkyWalking
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
fafd17f2
编写于
10月 27, 2017
作者:
wu-sheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add provider#getService to locate the service implementation.
上级
8fdca1f4
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
17 addition
and
2 deletion
+17
-2
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleProvider.java
.../skywalking/apm/collector/core/module/ModuleProvider.java
+9
-0
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/BaseModuleA.java
...org/skywalking/apm/collector/core/module/BaseModuleA.java
+1
-1
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ModuleAProvider.java
...skywalking/apm/collector/core/module/ModuleAProvider.java
+3
-0
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ModuleManagerTest.java
...ywalking/apm/collector/core/module/ModuleManagerTest.java
+4
-1
未找到文件。
apm-collector/apm-collector-core/src/main/java/org/skywalking/apm/collector/core/module/ModuleProvider.java
浏览文件 @
fafd17f2
...
...
@@ -116,4 +116,13 @@ public abstract class ModuleProvider {
throw
new
ServiceNotProvidedException
(
"Provide more service implementations than Module requirements."
);
}
}
public
<
T
extends
Service
>
T
getService
(
Class
<
T
>
serviceType
)
throws
ServiceNotProvidedException
{
Service
serviceImpl
=
services
.
get
(
serviceType
);
if
(
serviceImpl
!=
null
)
{
return
(
T
)
serviceImpl
;
}
throw
new
ServiceNotProvidedException
(
"Service "
+
serviceType
.
getName
()
+
" should not be provided, based on module define."
);
}
}
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/BaseModuleA.java
浏览文件 @
fafd17f2
...
...
@@ -31,7 +31,7 @@ public class BaseModuleA extends Module {
}
public
interface
ServiceABusiness1
extends
Service
{
void
print
();
}
public
interface
ServiceABusiness2
extends
Service
{
...
...
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ModuleAProvider.java
浏览文件 @
fafd17f2
...
...
@@ -50,6 +50,9 @@ public class ModuleAProvider extends ModuleProvider {
public
class
Business1
implements
BaseModuleA
.
ServiceABusiness1
{
@Override
public
void
print
()
{
System
.
out
.
println
(
"ModuleA.Business1.print()"
);
}
}
public
class
Business2
implements
BaseModuleA
.
ServiceABusiness2
{
...
...
apm-collector/apm-collector-core/src/test/java/org/skywalking/apm/collector/core/module/ModuleManagerTest.java
浏览文件 @
fafd17f2
...
...
@@ -25,7 +25,7 @@ import org.junit.Test;
*/
public
class
ModuleManagerTest
{
@Test
public
void
testInit
()
throws
ServiceNotProvidedException
,
ModuleNotFoundException
,
ProviderNotFoundException
{
public
void
testInit
()
throws
ServiceNotProvidedException
,
ModuleNotFoundException
,
ProviderNotFoundException
,
DuplicateProviderException
{
ApplicationConfiguration
configuration
=
new
ApplicationConfiguration
();
configuration
.
addModule
(
"Test"
).
addProviderConfiguration
(
"TestModule-Provider"
,
null
);
configuration
.
addModule
(
"BaseA"
).
addProviderConfiguration
(
"P-A"
,
null
);
...
...
@@ -33,5 +33,8 @@ public class ModuleManagerTest {
ModuleManager
manager
=
new
ModuleManager
();
manager
.
init
(
configuration
);
BaseModuleA
.
ServiceABusiness1
serviceABusiness1
=
manager
.
find
(
"BaseA"
).
provider
().
getService
(
BaseModuleA
.
ServiceABusiness1
.
class
);
serviceABusiness1
.
print
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录