Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦中观雨
cat
提交
4247fce7
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,发现更多精彩内容 >>
提交
4247fce7
编写于
12月 23, 2011
作者:
F
Frankie Wu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
after review
上级
ea77001e
变更
23
隐藏空白更改
内联
并排
Showing
23 changed file
with
279 addition
and
158 deletion
+279
-158
cat-core/src/main/java/com/dianping/cat/configuration/ComponentsConfigurator.java
...om/dianping/cat/configuration/ComponentsConfigurator.java
+18
-18
cat-core/src/main/java/com/dianping/cat/message/Message.java
cat-core/src/main/java/com/dianping/cat/message/Message.java
+59
-49
cat-core/src/main/java/com/dianping/cat/message/Transaction.java
...e/src/main/java/com/dianping/cat/message/Transaction.java
+1
-1
cat-core/src/main/java/com/dianping/cat/message/broker/MessageBroker.java
...n/java/com/dianping/cat/message/broker/MessageBroker.java
+5
-0
cat-core/src/main/java/com/dianping/cat/message/broker/MulticastToSocketBroker.java
.../dianping/cat/message/broker/MulticastToSocketBroker.java
+8
-0
cat-core/src/main/java/com/dianping/cat/message/broker/SocketToMulticastBroker.java
.../dianping/cat/message/broker/SocketToMulticastBroker.java
+8
-0
cat-core/src/main/java/com/dianping/cat/message/broker/SocketToSocketBroker.java
...com/dianping/cat/message/broker/SocketToSocketBroker.java
+8
-0
cat-core/src/main/java/com/dianping/cat/message/consumer/MessageConsumer.java
...va/com/dianping/cat/message/consumer/MessageConsumer.java
+7
-0
cat-core/src/main/java/com/dianping/cat/message/handler/MessageDispatcher.java
...a/com/dianping/cat/message/handler/MessageDispatcher.java
+14
-0
cat-core/src/main/java/com/dianping/cat/message/handler/MessageHandler.java
...java/com/dianping/cat/message/handler/MessageHandler.java
+1
-1
cat-core/src/main/java/com/dianping/cat/message/transport/InMemoryTransport.java
...com/dianping/cat/message/transport/InMemoryTransport.java
+2
-1
cat-core/src/main/java/com/dianping/cat/message/transport/TcpSocketTransport.java
...om/dianping/cat/message/transport/TcpSocketTransport.java
+2
-1
cat-core/src/main/java/com/dianping/cat/message/transport/Transport.java
...in/java/com/dianping/cat/message/transport/Transport.java
+26
-0
cat-core/src/main/java/com/dianping/cat/message/transport/TransportManager.java
.../com/dianping/cat/message/transport/TransportManager.java
+26
-0
cat-core/src/main/java/com/dianping/cat/message/transport/UdpMulticastTransport.java
...dianping/cat/message/transport/UdpMulticastTransport.java
+2
-1
cat-core/src/main/java/com/dianping/cat/transport/Transport.java
...e/src/main/java/com/dianping/cat/transport/Transport.java
+0
-11
cat-core/src/main/java/com/dianping/cat/transport/TransportManager.java
...ain/java/com/dianping/cat/transport/TransportManager.java
+0
-24
cat-core/src/test/java/com/dianping/cat/message/EventTest.java
...ore/src/test/java/com/dianping/cat/message/EventTest.java
+5
-5
cat-core/src/test/java/com/dianping/cat/message/HeartbeatTest.java
...src/test/java/com/dianping/cat/message/HeartbeatTest.java
+19
-19
cat-core/src/test/java/com/dianping/cat/message/TransactionTest.java
...c/test/java/com/dianping/cat/message/TransactionTest.java
+1
-1
cat-core/src/test/java/com/dianping/cat/message/transport/InMemoryTransportTest.java
...dianping/cat/message/transport/InMemoryTransportTest.java
+10
-5
cat-core/src/test/java/com/dianping/cat/message/transport/TransportManagerTest.java
.../dianping/cat/message/transport/TransportManagerTest.java
+57
-0
cat-core/src/test/java/com/dianping/cat/transport/TransportManagerTest.java
...java/com/dianping/cat/transport/TransportManagerTest.java
+0
-21
未找到文件。
cat-core/src/main/java/com/dianping/cat/configuration/ComponentsConfigurator.java
浏览文件 @
4247fce7
...
...
@@ -3,30 +3,30 @@ package com.dianping.cat.configuration;
import
java.util.ArrayList
;
import
java.util.List
;
import
com.dianping.cat.transport.InMemoryTransport
;
import
com.dianping.cat.transport.TcpSocketTransport
;
import
com.dianping.cat.transport.Transport
;
import
com.dianping.cat.transport.TransportManager
;
import
com.dianping.cat.transport.UdpMulticastTransport
;
import
com.dianping.cat.
message.
transport.InMemoryTransport
;
import
com.dianping.cat.
message.
transport.TcpSocketTransport
;
import
com.dianping.cat.
message.
transport.Transport
;
import
com.dianping.cat.
message.
transport.TransportManager
;
import
com.dianping.cat.
message.
transport.UdpMulticastTransport
;
import
com.site.lookup.configuration.AbstractResourceConfigurator
;
import
com.site.lookup.configuration.Component
;
public
class
ComponentsConfigurator
extends
AbstractResourceConfigurator
{
@Override
public
List
<
Component
>
defineComponents
()
{
List
<
Component
>
all
=
new
ArrayList
<
Component
>();
@Override
public
List
<
Component
>
defineComponents
()
{
List
<
Component
>
all
=
new
ArrayList
<
Component
>();
all
.
add
(
C
(
Transport
.
class
,
"in-memory"
,
InMemoryTransport
.
class
));
all
.
add
(
C
(
Transport
.
class
,
"tcp-socket"
,
TcpSocketTransport
.
class
));
all
.
add
(
C
(
Transport
.
class
,
"udp-multicast"
,
UdpMulticastTransport
.
class
));
all
.
add
(
C
(
Transport
.
class
,
"in-memory"
,
InMemoryTransport
.
class
));
all
.
add
(
C
(
Transport
.
class
,
"tcp-socket"
,
TcpSocketTransport
.
class
));
all
.
add
(
C
(
Transport
.
class
,
"udp-multicast"
,
UdpMulticastTransport
.
class
));
all
.
add
(
C
(
TransportManager
.
class
)
//
.
req
(
Transport
.
class
,
"im
-memory"
));
all
.
add
(
C
(
TransportManager
.
class
)
//
.
req
(
Transport
.
class
,
"in
-memory"
));
return
all
;
}
return
all
;
}
public
static
void
main
(
String
[]
args
)
{
generatePlexusComponentsXmlFile
(
new
ComponentsConfigurator
());
}
public
static
void
main
(
String
[]
args
)
{
generatePlexusComponentsXmlFile
(
new
ComponentsConfigurator
());
}
}
cat-core/src/main/java/com/dianping/cat/message/Message.java
浏览文件 @
4247fce7
...
...
@@ -15,60 +15,70 @@ package com.dianping.cat.message;
* @author Frankie Wu
*/
public
interface
Message
{
/**
* add one or multiple key-value pairs to the message.
*
* @param keyValuePairs
* key-value pairs like 'a=1&b=2&...'
*/
public
void
addData
(
String
keyValuePairs
);
public
static
final
String
SUCCESS
=
"0"
;
/**
* add one key-value pair
to the message.
*
* @param key
* @param value
*/
public
void
addData
(
String
key
,
Object
value
);
/**
* add one or multiple key-value pairs
to the message.
*
* @param keyValuePairs
* key-value pairs like 'a=1&b=2&...'
*/
public
void
addData
(
String
keyValuePairs
);
/**
* Complete the message construction.
*/
public
void
complete
();
/**
* add one key-value pair to the message.
*
* @param key
* @param value
*/
public
void
addData
(
String
key
,
Object
value
);
/**
* Message name.
*
* @return message name
*/
public
String
getName
();
/**
* Complete the message construction.
*/
public
void
complete
();
/**
* Get the message status
.
*
* @return message status. "0" means success, otherwise error code.
*/
public
String
getStatus
();
/**
* Message name
.
*
* @return message name
*/
public
String
getName
();
/**
* The time stamp the message was created
.
*
* @return message creation time stamp in milliseconds
*/
public
long
getTimestamp
();
/**
* Get the message status
.
*
* @return message status. "0" means success, otherwise error code.
*/
public
String
getStatus
();
/**
* Message type
.
*
* @return message type
*/
public
String
getType
();
/**
* The time stamp the message was created
.
*
* @return message creation time stamp in milliseconds
*/
public
long
getTimestamp
();
/**
* Set the message status.
*
* @param status
* message status. "0" means success, otherwise error code.
*/
public
void
setStatus
(
String
status
);
/**
* Message type.
*
* @return message type
*/
public
String
getType
();
/**
* Set the message status.
*
* @param status
* message status. "0" means success, otherwise error code.
*/
public
void
setStatus
(
String
status
);
/**
* Set the message status with exception class name.
*
* @param e
* exception.
*/
public
void
setStatus
(
Throwable
e
);
}
cat-core/src/main/java/com/dianping/cat/message/Transaction.java
浏览文件 @
4247fce7
...
...
@@ -34,5 +34,5 @@ package com.dianping.cat.message;
* @author Frankie Wu
*/
public
interface
Transaction
extends
Message
{
public
void
setStatus
(
Throwable
e
);
public
long
getDuration
(
);
}
cat-core/src/main/java/com/dianping/cat/message/broker/MessageBroker.java
0 → 100644
浏览文件 @
4247fce7
package
com.dianping.cat.message.broker
;
public
interface
MessageBroker
extends
Runnable
{
}
cat-core/src/main/java/com/dianping/cat/message/broker/MulticastToSocketBroker.java
0 → 100644
浏览文件 @
4247fce7
package
com.dianping.cat.message.broker
;
public
class
MulticastToSocketBroker
implements
MessageBroker
{
@Override
public
void
run
()
{
}
}
cat-core/src/main/java/com/dianping/cat/message/broker/SocketToMulticastBroker.java
0 → 100644
浏览文件 @
4247fce7
package
com.dianping.cat.message.broker
;
public
class
SocketToMulticastBroker
implements
MessageBroker
{
@Override
public
void
run
()
{
}
}
cat-core/src/main/java/com/dianping/cat/message/broker/SocketToSocketBroker.java
0 → 100644
浏览文件 @
4247fce7
package
com.dianping.cat.message.broker
;
public
class
SocketToSocketBroker
implements
MessageBroker
{
@Override
public
void
run
()
{
}
}
cat-core/src/main/java/com/dianping/cat/message/consumer/MessageConsumer.java
0 → 100644
浏览文件 @
4247fce7
package
com.dianping.cat.message.consumer
;
import
com.dianping.cat.message.Message
;
public
interface
MessageConsumer
{
public
void
consume
(
Message
message
);
}
cat-core/src/main/java/com/dianping/cat/message/handler/MessageDispatcher.java
0 → 100644
浏览文件 @
4247fce7
package
com.dianping.cat.message.handler
;
import
java.util.List
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.consumer.MessageConsumer
;
public
class
MessageDispatcher
implements
MessageHandler
{
private
List
<
MessageConsumer
>
m_comsumers
;
@Override
public
void
handle
(
Message
message
)
{
}
}
cat-core/src/main/java/com/dianping/cat/
transport
/MessageHandler.java
→
cat-core/src/main/java/com/dianping/cat/
message/handler
/MessageHandler.java
浏览文件 @
4247fce7
package
com.dianping.cat.
transport
;
package
com.dianping.cat.
message.handler
;
import
com.dianping.cat.message.Message
;
...
...
cat-core/src/main/java/com/dianping/cat/transport/InMemoryTransport.java
→
cat-core/src/main/java/com/dianping/cat/
message/
transport/InMemoryTransport.java
浏览文件 @
4247fce7
package
com.dianping.cat.transport
;
package
com.dianping.cat.
message.
transport
;
import
java.util.concurrent.BlockingQueue
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
java.util.concurrent.TimeUnit
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.handler.MessageHandler
;
public
class
InMemoryTransport
implements
Transport
{
private
BlockingQueue
<
Message
>
m_queue
;
...
...
cat-core/src/main/java/com/dianping/cat/transport/TcpSocketTransport.java
→
cat-core/src/main/java/com/dianping/cat/
message/
transport/TcpSocketTransport.java
浏览文件 @
4247fce7
package
com.dianping.cat.transport
;
package
com.dianping.cat.
message.
transport
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.handler.MessageHandler
;
public
class
TcpSocketTransport
implements
Transport
{
@Override
...
...
cat-core/src/main/java/com/dianping/cat/message/transport/Transport.java
0 → 100644
浏览文件 @
4247fce7
package
com.dianping.cat.message.transport
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.handler.MessageHandler
;
/**
* <p>
* Transport is a broker that listens to message from previous phase and relay
* (or re-send) it to next phase.
* </p>
*
* Typically, different environment has different transport configuration
* <ul>
* <li>Dev environment: [collector] ====> [in memory transport] ====> [message handler] ====> [consumers]</li>
* <li>QA environment: [collector] ====> [tcp socket transport] ==network==> [tcp socket transport] ====> [message handler] ====> [consumers]</li>
* </ul>
*
* @author Frankie Wu
*/
public
interface
Transport
{
public
void
onMessage
(
MessageHandler
handler
);
public
void
send
(
Message
message
);
public
void
shutdown
();
}
cat-core/src/main/java/com/dianping/cat/message/transport/TransportManager.java
0 → 100644
浏览文件 @
4247fce7
package
com.dianping.cat.message.transport
;
public
class
TransportManager
{
private
static
TransportManager
s_instance
;
private
Transport
m_transport
;
public
static
Transport
getTransport
()
{
if
(
s_instance
==
null
)
{
throw
new
RuntimeException
(
"Please call method setTransport() to initialize first!"
);
}
return
s_instance
.
m_transport
;
}
public
void
setTransport
(
Transport
transport
)
{
if
(
transport
==
null
)
{
s_instance
=
null
;
}
else
if
(
s_instance
!=
null
)
{
throw
new
RuntimeException
(
"TransportManager is already initialized!"
);
}
else
{
s_instance
=
new
TransportManager
();
s_instance
.
m_transport
=
transport
;
}
}
}
cat-core/src/main/java/com/dianping/cat/transport/UdpMulticastTransport.java
→
cat-core/src/main/java/com/dianping/cat/
message/
transport/UdpMulticastTransport.java
浏览文件 @
4247fce7
package
com.dianping.cat.transport
;
package
com.dianping.cat.
message.
transport
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.handler.MessageHandler
;
public
class
UdpMulticastTransport
implements
Transport
{
@Override
...
...
cat-core/src/main/java/com/dianping/cat/transport/Transport.java
已删除
100644 → 0
浏览文件 @
ea77001e
package
com.dianping.cat.transport
;
import
com.dianping.cat.message.Message
;
public
interface
Transport
{
public
void
onMessage
(
MessageHandler
handler
);
public
void
send
(
Message
message
);
public
void
shutdown
();
}
cat-core/src/main/java/com/dianping/cat/transport/TransportManager.java
已删除
100644 → 0
浏览文件 @
ea77001e
package
com.dianping.cat.transport
;
public
class
TransportManager
{
private
static
TransportManager
s_instance
;
private
Transport
m_transport
;
public
static
Transport
getTransport
()
{
if
(
s_instance
==
null
)
{
throw
new
RuntimeException
(
"Please call method setTransport() to initialize first!"
);
}
return
s_instance
.
m_transport
;
}
public
void
setTransport
(
Transport
transport
)
{
if
(
transport
==
null
)
{
s_instance
=
null
;
}
else
{
s_instance
=
new
TransportManager
();
s_instance
.
m_transport
=
transport
;
}
}
}
cat-core/src/test/java/com/dianping/cat/message/EventTest.java
浏览文件 @
4247fce7
...
...
@@ -16,29 +16,29 @@ public class EventTest {
event
.
addData
(
"id"
,
12345
);
event
.
addData
(
"user"
,
"john"
);
event
.
setStatus
(
"0"
);
event
.
setStatus
(
Message
.
SUCCESS
);
event
.
complete
();
}
@Test
public
void
testException
()
{
Exception
e
=
new
RuntimeException
();
Event
event
=
CAT
.
newEvent
(
"E
xception
"
,
e
.
getClass
().
getName
());
Event
event
=
CAT
.
newEvent
(
"E
RROR
"
,
e
.
getClass
().
getName
());
event
.
addData
(
toString
(
e
));
event
.
setStatus
(
"
0
"
);
event
.
setStatus
(
"
-1
"
);
event
.
complete
();
}
@Test
public
void
testInOneShot
()
{
// Normal case
CAT
.
logEvent
(
"Review"
,
"New"
,
"0"
,
"id=12345&user=john"
);
CAT
.
logEvent
(
"Review"
,
"New"
,
Message
.
SUCCESS
,
"id=12345&user=john"
);
// Exception case
Exception
e
=
new
RuntimeException
();
CAT
.
logEvent
(
"Exception"
,
e
.
getClass
().
getName
(),
"0"
,
toString
(
e
));
CAT
.
logEvent
(
"Exception"
,
e
.
getClass
().
getName
(),
Message
.
SUCCESS
,
toString
(
e
));
}
private
String
toString
(
Exception
e
)
{
...
...
cat-core/src/test/java/com/dianping/cat/message/HeartbeatTest.java
浏览文件 @
4247fce7
...
...
@@ -9,29 +9,29 @@ public class HeartbeatTest {
@Test
public
void
testStatus
()
{
Heartbeat
even
t
=
CAT
.
newHeartbeat
(
"System"
,
"Status"
);
even
t
.
addData
(
"ip"
,
"192.168.10.111"
);
even
t
.
addData
(
"host"
,
"host-1"
);
even
t
.
addData
(
"load"
,
"2.1"
);
even
t
.
addData
(
"cpu"
,
"0.12,0.10"
);
even
t
.
addData
(
"memory.total"
,
"2G"
);
even
t
.
addData
(
"memory.free"
,
"456M"
);
event
.
setStatus
(
"0"
);
even
t
.
complete
();
Heartbeat
heartbea
t
=
CAT
.
newHeartbeat
(
"System"
,
"Status"
);
heartbea
t
.
addData
(
"ip"
,
"192.168.10.111"
);
heartbea
t
.
addData
(
"host"
,
"host-1"
);
heartbea
t
.
addData
(
"load"
,
"2.1"
);
heartbea
t
.
addData
(
"cpu"
,
"0.12,0.10"
);
heartbea
t
.
addData
(
"memory.total"
,
"2G"
);
heartbea
t
.
addData
(
"memory.free"
,
"456M"
);
heartbeat
.
setStatus
(
Message
.
SUCCESS
);
heartbea
t
.
complete
();
}
@Test
public
void
testService
()
{
Heartbeat
even
t
=
CAT
.
newHeartbeat
(
"Service"
,
"ReviewService"
);
even
t
.
addData
(
"host"
,
"192.168.10.112:1234"
);
even
t
.
addData
(
"weight"
,
"20"
);
even
t
.
addData
(
"visits"
,
"12345"
);
even
t
.
addData
(
"manifest"
,
"addReview,getReview,getShopReviews"
);
even
t
.
addData
(
"more"
,
"..."
);
event
.
setStatus
(
"0"
);
even
t
.
complete
();
Heartbeat
heartbea
t
=
CAT
.
newHeartbeat
(
"Service"
,
"ReviewService"
);
heartbea
t
.
addData
(
"host"
,
"192.168.10.112:1234"
);
heartbea
t
.
addData
(
"weight"
,
"20"
);
heartbea
t
.
addData
(
"visits"
,
"12345"
);
heartbea
t
.
addData
(
"manifest"
,
"addReview,getReview,getShopReviews"
);
heartbea
t
.
addData
(
"more"
,
"..."
);
heartbeat
.
setStatus
(
Message
.
SUCCESS
);
heartbea
t
.
complete
();
}
@Test
...
...
cat-core/src/test/java/com/dianping/cat/message/TransactionTest.java
浏览文件 @
4247fce7
...
...
@@ -18,7 +18,7 @@ public class TransactionTest {
t
.
addData
(
"k3"
,
"v3"
);
Thread
.
sleep
(
30
);
t
.
setStatus
(
"0"
);
t
.
setStatus
(
Message
.
SUCCESS
);
}
catch
(
Exception
e
)
{
t
.
setStatus
(
e
);
}
finally
{
...
...
cat-core/src/test/java/com/dianping/cat/transport/InMemoryTransportTest.java
→
cat-core/src/test/java/com/dianping/cat/
message/
transport/InMemoryTransportTest.java
浏览文件 @
4247fce7
package
com.dianping.cat.transport
;
package
com.dianping.cat.
message.
transport
;
import
java.util.ArrayList
;
import
java.util.List
;
...
...
@@ -12,6 +12,7 @@ import junit.framework.Assert;
import
org.junit.Test
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.handler.MessageHandler
;
public
class
InMemoryTransportTest
{
@Test
...
...
@@ -53,10 +54,6 @@ public class InMemoryTransportTest {
static
class
MockMessage
implements
Message
{
private
String
m_name
;
public
void
setName
(
String
name
)
{
m_name
=
name
;
}
@Override
public
void
addData
(
String
keyValuePairs
)
{
}
...
...
@@ -89,9 +86,17 @@ public class InMemoryTransportTest {
return
null
;
}
public
void
setName
(
String
name
)
{
m_name
=
name
;
}
@Override
public
void
setStatus
(
String
status
)
{
}
@Override
public
void
setStatus
(
Throwable
e
)
{
}
}
static
class
MockMessageHandler
implements
MessageHandler
{
...
...
cat-core/src/test/java/com/dianping/cat/message/transport/TransportManagerTest.java
0 → 100644
浏览文件 @
4247fce7
package
com.dianping.cat.message.transport
;
import
junit.framework.Assert
;
import
org.junit.Test
;
import
com.dianping.cat.message.Message
;
import
com.dianping.cat.message.handler.MessageHandler
;
public
class
TransportManagerTest
{
@Test
public
void
testInitailized
()
{
new
TransportManager
().
setTransport
(
new
MockTransport
());
Assert
.
assertNotNull
(
TransportManager
.
getTransport
());
new
TransportManager
().
setTransport
(
null
);
}
@Test
public
void
testNotInitailized
()
{
try
{
Assert
.
assertNotNull
(
TransportManager
.
getTransport
());
Assert
.
fail
(
"TransportManager should be initialized first before call getTransport()!"
);
}
catch
(
RuntimeException
e
)
{
// expected
}
}
@Test
public
void
testDoubleInitailization
()
{
new
TransportManager
().
setTransport
(
new
MockTransport
());
try
{
new
TransportManager
().
setTransport
(
new
MockTransport
());
Assert
.
fail
(
"Double initailization of TransportManager should not be allowed!"
);
}
catch
(
RuntimeException
e
)
{
// expected
}
}
static
class
MockTransport
implements
Transport
{
@Override
public
void
onMessage
(
MessageHandler
handler
)
{
}
@Override
public
void
send
(
Message
message
)
{
}
@Override
public
void
shutdown
()
{
}
}
}
cat-core/src/test/java/com/dianping/cat/transport/TransportManagerTest.java
已删除
100644 → 0
浏览文件 @
ea77001e
package
com.dianping.cat.transport
;
import
junit.framework.Assert
;
import
org.junit.Test
;
public
class
TransportManagerTest
{
@Test
public
void
testInitailized
()
{
new
TransportManager
().
setTransport
(
new
InMemoryTransport
());
Assert
.
assertNotNull
(
TransportManager
.
getTransport
());
new
TransportManager
().
setTransport
(
null
);
}
@Test
(
expected
=
RuntimeException
.
class
)
public
void
testNotInitailized
()
{
Assert
.
assertNotNull
(
TransportManager
.
getTransport
());
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录