diff --git a/cat-core/src/main/java/com/dianping/cat/configuration/ComponentsConfigurator.java b/cat-core/src/main/java/com/dianping/cat/configuration/ComponentsConfigurator.java index b6a49698dbbaab0e4484a23a25208de70248d6b3..8b54c26b9d5ec517de0fc1f6542ae9ba31ba2997 100644 --- a/cat-core/src/main/java/com/dianping/cat/configuration/ComponentsConfigurator.java +++ b/cat-core/src/main/java/com/dianping/cat/configuration/ComponentsConfigurator.java @@ -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 defineComponents() { - List all = new ArrayList(); + @Override + public List defineComponents() { + List all = new ArrayList(); - 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()); + } } diff --git a/cat-core/src/main/java/com/dianping/cat/message/Message.java b/cat-core/src/main/java/com/dianping/cat/message/Message.java index 2a70694487b56db3eca361c20704543bcba02d08..2ed9373a56a17275a193f62d5a829d7342df250e 100644 --- a/cat-core/src/main/java/com/dianping/cat/message/Message.java +++ b/cat-core/src/main/java/com/dianping/cat/message/Message.java @@ -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); } diff --git a/cat-core/src/main/java/com/dianping/cat/message/Transaction.java b/cat-core/src/main/java/com/dianping/cat/message/Transaction.java index 0ac83387dd067d56c3b284fa84c96bcd8c76a813..e23e27e50f30bd10b7b736076b955ca67af977a3 100644 --- a/cat-core/src/main/java/com/dianping/cat/message/Transaction.java +++ b/cat-core/src/main/java/com/dianping/cat/message/Transaction.java @@ -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(); } diff --git a/cat-core/src/main/java/com/dianping/cat/message/broker/MessageBroker.java b/cat-core/src/main/java/com/dianping/cat/message/broker/MessageBroker.java new file mode 100644 index 0000000000000000000000000000000000000000..9025a490783d5147e8819719035203806cc2058e --- /dev/null +++ b/cat-core/src/main/java/com/dianping/cat/message/broker/MessageBroker.java @@ -0,0 +1,5 @@ +package com.dianping.cat.message.broker; + +public interface MessageBroker extends Runnable { + +} diff --git a/cat-core/src/main/java/com/dianping/cat/message/broker/MulticastToSocketBroker.java b/cat-core/src/main/java/com/dianping/cat/message/broker/MulticastToSocketBroker.java new file mode 100644 index 0000000000000000000000000000000000000000..a59771c8ab425a480dce961d32cd80cda8a5753a --- /dev/null +++ b/cat-core/src/main/java/com/dianping/cat/message/broker/MulticastToSocketBroker.java @@ -0,0 +1,8 @@ +package com.dianping.cat.message.broker; + +public class MulticastToSocketBroker implements MessageBroker { + @Override + public void run() { + + } +} diff --git a/cat-core/src/main/java/com/dianping/cat/message/broker/SocketToMulticastBroker.java b/cat-core/src/main/java/com/dianping/cat/message/broker/SocketToMulticastBroker.java new file mode 100644 index 0000000000000000000000000000000000000000..3b69338a32902d704d7fe9981607a85061a051c5 --- /dev/null +++ b/cat-core/src/main/java/com/dianping/cat/message/broker/SocketToMulticastBroker.java @@ -0,0 +1,8 @@ +package com.dianping.cat.message.broker; + +public class SocketToMulticastBroker implements MessageBroker { + @Override + public void run() { + + } +} diff --git a/cat-core/src/main/java/com/dianping/cat/message/broker/SocketToSocketBroker.java b/cat-core/src/main/java/com/dianping/cat/message/broker/SocketToSocketBroker.java new file mode 100644 index 0000000000000000000000000000000000000000..a2f0ed3bd84228a81d7c9b5af354acbeb551071e --- /dev/null +++ b/cat-core/src/main/java/com/dianping/cat/message/broker/SocketToSocketBroker.java @@ -0,0 +1,8 @@ +package com.dianping.cat.message.broker; + +public class SocketToSocketBroker implements MessageBroker { + @Override + public void run() { + + } +} diff --git a/cat-core/src/main/java/com/dianping/cat/message/consumer/MessageConsumer.java b/cat-core/src/main/java/com/dianping/cat/message/consumer/MessageConsumer.java new file mode 100644 index 0000000000000000000000000000000000000000..9b40c8bfa89aa9e47afc81b0db5db09bcf4ded97 --- /dev/null +++ b/cat-core/src/main/java/com/dianping/cat/message/consumer/MessageConsumer.java @@ -0,0 +1,7 @@ +package com.dianping.cat.message.consumer; + +import com.dianping.cat.message.Message; + +public interface MessageConsumer { + public void consume(Message message); +} diff --git a/cat-core/src/main/java/com/dianping/cat/message/handler/MessageDispatcher.java b/cat-core/src/main/java/com/dianping/cat/message/handler/MessageDispatcher.java new file mode 100644 index 0000000000000000000000000000000000000000..eee1c30ad16f7630e9cfe3f4ceafbc8add48e068 --- /dev/null +++ b/cat-core/src/main/java/com/dianping/cat/message/handler/MessageDispatcher.java @@ -0,0 +1,14 @@ +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 m_comsumers; + + @Override + public void handle(Message message) { + } +} diff --git a/cat-core/src/main/java/com/dianping/cat/transport/MessageHandler.java b/cat-core/src/main/java/com/dianping/cat/message/handler/MessageHandler.java similarity index 70% rename from cat-core/src/main/java/com/dianping/cat/transport/MessageHandler.java rename to cat-core/src/main/java/com/dianping/cat/message/handler/MessageHandler.java index eda17e8a8a4443c0576c21d8d8831ac45df3a2b4..133eefe9ec2a7e7d97022752d913734ffb8f764e 100644 --- a/cat-core/src/main/java/com/dianping/cat/transport/MessageHandler.java +++ b/cat-core/src/main/java/com/dianping/cat/message/handler/MessageHandler.java @@ -1,4 +1,4 @@ -package com.dianping.cat.transport; +package com.dianping.cat.message.handler; import com.dianping.cat.message.Message; diff --git a/cat-core/src/main/java/com/dianping/cat/transport/InMemoryTransport.java b/cat-core/src/main/java/com/dianping/cat/message/transport/InMemoryTransport.java similarity index 88% rename from cat-core/src/main/java/com/dianping/cat/transport/InMemoryTransport.java rename to cat-core/src/main/java/com/dianping/cat/message/transport/InMemoryTransport.java index 5e132ae563baefe4c64d6df868a5a392fd3aa847..0e503f0cf32a083e6b5056dab7824a0e759d8681 100644 --- a/cat-core/src/main/java/com/dianping/cat/transport/InMemoryTransport.java +++ b/cat-core/src/main/java/com/dianping/cat/message/transport/InMemoryTransport.java @@ -1,10 +1,11 @@ -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 m_queue; diff --git a/cat-core/src/main/java/com/dianping/cat/transport/TcpSocketTransport.java b/cat-core/src/main/java/com/dianping/cat/message/transport/TcpSocketTransport.java similarity index 69% rename from cat-core/src/main/java/com/dianping/cat/transport/TcpSocketTransport.java rename to cat-core/src/main/java/com/dianping/cat/message/transport/TcpSocketTransport.java index f62bee6ee34f1ac985fe7b4ecb17be974f3b4ef7..01087d33e520ee9bc7e18d9ae60d6a6d4fc863f8 100644 --- a/cat-core/src/main/java/com/dianping/cat/transport/TcpSocketTransport.java +++ b/cat-core/src/main/java/com/dianping/cat/message/transport/TcpSocketTransport.java @@ -1,6 +1,7 @@ -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 diff --git a/cat-core/src/main/java/com/dianping/cat/message/transport/Transport.java b/cat-core/src/main/java/com/dianping/cat/message/transport/Transport.java new file mode 100644 index 0000000000000000000000000000000000000000..df07643f38a5b499a10e48576dd443edf7ab2465 --- /dev/null +++ b/cat-core/src/main/java/com/dianping/cat/message/transport/Transport.java @@ -0,0 +1,26 @@ +package com.dianping.cat.message.transport; + +import com.dianping.cat.message.Message; +import com.dianping.cat.message.handler.MessageHandler; + +/** + *

+ * Transport is a broker that listens to message from previous phase and relay + * (or re-send) it to next phase. + *

+ * + * Typically, different environment has different transport configuration + *
    + *
  • Dev environment: [collector] ====> [in memory transport] ====> [message handler] ====> [consumers]
  • + *
  • QA environment: [collector] ====> [tcp socket transport] ==network==> [tcp socket transport] ====> [message handler] ====> [consumers]
  • + *
+ * + * @author Frankie Wu + */ +public interface Transport { + public void onMessage(MessageHandler handler); + + public void send(Message message); + + public void shutdown(); +} diff --git a/cat-core/src/main/java/com/dianping/cat/message/transport/TransportManager.java b/cat-core/src/main/java/com/dianping/cat/message/transport/TransportManager.java new file mode 100644 index 0000000000000000000000000000000000000000..4e66a9d9f79d422dd8d8a5bd98949b1171496d4e --- /dev/null +++ b/cat-core/src/main/java/com/dianping/cat/message/transport/TransportManager.java @@ -0,0 +1,26 @@ +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; + } + } +} diff --git a/cat-core/src/main/java/com/dianping/cat/transport/UdpMulticastTransport.java b/cat-core/src/main/java/com/dianping/cat/message/transport/UdpMulticastTransport.java similarity index 68% rename from cat-core/src/main/java/com/dianping/cat/transport/UdpMulticastTransport.java rename to cat-core/src/main/java/com/dianping/cat/message/transport/UdpMulticastTransport.java index bb0f31759641715b0591585ccb941d579924ffc6..415fa433fd241d3f2a50f26004cf0577ce017942 100644 --- a/cat-core/src/main/java/com/dianping/cat/transport/UdpMulticastTransport.java +++ b/cat-core/src/main/java/com/dianping/cat/message/transport/UdpMulticastTransport.java @@ -1,6 +1,7 @@ -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 diff --git a/cat-core/src/main/java/com/dianping/cat/transport/Transport.java b/cat-core/src/main/java/com/dianping/cat/transport/Transport.java deleted file mode 100644 index b3a32910ad2601b4865fff7307583137353fc449..0000000000000000000000000000000000000000 --- a/cat-core/src/main/java/com/dianping/cat/transport/Transport.java +++ /dev/null @@ -1,11 +0,0 @@ -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(); -} diff --git a/cat-core/src/main/java/com/dianping/cat/transport/TransportManager.java b/cat-core/src/main/java/com/dianping/cat/transport/TransportManager.java deleted file mode 100644 index 7fa5aee95e443c5fe37ffef7ca2adbb7623db536..0000000000000000000000000000000000000000 --- a/cat-core/src/main/java/com/dianping/cat/transport/TransportManager.java +++ /dev/null @@ -1,24 +0,0 @@ -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; - } - } -} diff --git a/cat-core/src/test/java/com/dianping/cat/message/EventTest.java b/cat-core/src/test/java/com/dianping/cat/message/EventTest.java index 36520e1ffae835b82ddd4d2b53f5f48792e4f6e4..cb5325d594840a6466170e0687b2a1936fe01dc8 100644 --- a/cat-core/src/test/java/com/dianping/cat/message/EventTest.java +++ b/cat-core/src/test/java/com/dianping/cat/message/EventTest.java @@ -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("Exception", e.getClass().getName()); + Event event = CAT.newEvent("ERROR", 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) { diff --git a/cat-core/src/test/java/com/dianping/cat/message/HeartbeatTest.java b/cat-core/src/test/java/com/dianping/cat/message/HeartbeatTest.java index c3893f5afbd54312114cda3e943155f1266afcc4..dc6b5fc8364f5fcb235581523c86526917ead78b 100644 --- a/cat-core/src/test/java/com/dianping/cat/message/HeartbeatTest.java +++ b/cat-core/src/test/java/com/dianping/cat/message/HeartbeatTest.java @@ -9,29 +9,29 @@ public class HeartbeatTest { @Test public void testStatus() { - Heartbeat event = CAT.newHeartbeat("System", "Status"); - - event.addData("ip", "192.168.10.111"); - event.addData("host", "host-1"); - event.addData("load", "2.1"); - event.addData("cpu", "0.12,0.10"); - event.addData("memory.total", "2G"); - event.addData("memory.free", "456M"); - event.setStatus("0"); - event.complete(); + Heartbeat heartbeat = CAT.newHeartbeat("System", "Status"); + + heartbeat.addData("ip", "192.168.10.111"); + heartbeat.addData("host", "host-1"); + heartbeat.addData("load", "2.1"); + heartbeat.addData("cpu", "0.12,0.10"); + heartbeat.addData("memory.total", "2G"); + heartbeat.addData("memory.free", "456M"); + heartbeat.setStatus(Message.SUCCESS); + heartbeat.complete(); } @Test public void testService() { - Heartbeat event = CAT.newHeartbeat("Service", "ReviewService"); - - event.addData("host", "192.168.10.112:1234"); - event.addData("weight", "20"); - event.addData("visits", "12345"); - event.addData("manifest", "addReview,getReview,getShopReviews"); - event.addData("more", "..."); - event.setStatus("0"); - event.complete(); + Heartbeat heartbeat = CAT.newHeartbeat("Service", "ReviewService"); + + heartbeat.addData("host", "192.168.10.112:1234"); + heartbeat.addData("weight", "20"); + heartbeat.addData("visits", "12345"); + heartbeat.addData("manifest", "addReview,getReview,getShopReviews"); + heartbeat.addData("more", "..."); + heartbeat.setStatus(Message.SUCCESS); + heartbeat.complete(); } @Test diff --git a/cat-core/src/test/java/com/dianping/cat/message/TransactionTest.java b/cat-core/src/test/java/com/dianping/cat/message/TransactionTest.java index 33167f306762bdd012d4329186b9012fdf88cef3..6a2ff55ad608ae6f76f3e7dcfb4bfd28ae8688ca 100644 --- a/cat-core/src/test/java/com/dianping/cat/message/TransactionTest.java +++ b/cat-core/src/test/java/com/dianping/cat/message/TransactionTest.java @@ -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 { diff --git a/cat-core/src/test/java/com/dianping/cat/transport/InMemoryTransportTest.java b/cat-core/src/test/java/com/dianping/cat/message/transport/InMemoryTransportTest.java similarity index 88% rename from cat-core/src/test/java/com/dianping/cat/transport/InMemoryTransportTest.java rename to cat-core/src/test/java/com/dianping/cat/message/transport/InMemoryTransportTest.java index cd16b356820c2ad14f3aa073c81ca0a668c07d6d..37c2dc4a8054332e77a4ed2f7f75942fe9171621 100644 --- a/cat-core/src/test/java/com/dianping/cat/transport/InMemoryTransportTest.java +++ b/cat-core/src/test/java/com/dianping/cat/message/transport/InMemoryTransportTest.java @@ -1,4 +1,4 @@ -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 { diff --git a/cat-core/src/test/java/com/dianping/cat/message/transport/TransportManagerTest.java b/cat-core/src/test/java/com/dianping/cat/message/transport/TransportManagerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..fe4f2b27945dd52c0feca608135ed1b503304e42 --- /dev/null +++ b/cat-core/src/test/java/com/dianping/cat/message/transport/TransportManagerTest.java @@ -0,0 +1,57 @@ +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() { + } + } +} diff --git a/cat-core/src/test/java/com/dianping/cat/transport/TransportManagerTest.java b/cat-core/src/test/java/com/dianping/cat/transport/TransportManagerTest.java deleted file mode 100644 index 8ae8e520652c6212104a8e7af36247d75cbc1b1f..0000000000000000000000000000000000000000 --- a/cat-core/src/test/java/com/dianping/cat/transport/TransportManagerTest.java +++ /dev/null @@ -1,21 +0,0 @@ -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()); - } -}