blob: 7020e31d473ea7fc31d5b81ee3e2f5e75e7b5eec [file] [log] [blame]
Madan Jampaniab6d3112014-10-02 16:30:14 -07001package org.onlab.netty;
2
3import java.util.concurrent.TimeUnit;
4
pankaj5eb26c62014-10-02 18:08:48 -07005import org.onlab.metrics.MetricsComponent;
6import org.onlab.metrics.MetricsFeature;
7import org.onlab.metrics.MetricsManager;
8
9import com.codahale.metrics.Timer;
10
Madan Jampaniab6d3112014-10-02 16:30:14 -070011public final class SimpleClient {
12 private SimpleClient() {}
13
14 public static void main(String... args) throws Exception {
15 NettyMessagingService messaging = new TestNettyMessagingService(9081);
pankaj5eb26c62014-10-02 18:08:48 -070016 MetricsManager metrics = new MetricsManager();
Madan Jampaniab6d3112014-10-02 16:30:14 -070017 messaging.activate();
pankaj5eb26c62014-10-02 18:08:48 -070018 metrics.activate();
19 MetricsFeature feature = new MetricsFeature("timers");
20 MetricsComponent component = metrics.registerComponent("NettyMessaging");
21 Timer sendAsyncTimer = metrics.createTimer(component, feature, "AsyncSender");
22 final int warmup = 100;
23 for (int i = 0; i < warmup; i++) {
24 Timer.Context context = sendAsyncTimer.time();
25 messaging.sendAsync(new Endpoint("localhost", 8080), "simple", "Hello World");
26 context.stop();
27 }
28 metrics.registerMetric(component, feature, "AsyncTimer", sendAsyncTimer);
Madan Jampaniab6d3112014-10-02 16:30:14 -070029
pankaj5eb26c62014-10-02 18:08:48 -070030 Timer sendAndRecieveTimer = metrics.createTimer(component, feature, "SendAndReceive");
31 final int iterations = 1000000;
32 for (int i=0; i < iterations; i++) {
33 Timer.Context context = sendAndRecieveTimer.time();
34 Response<String> response = messaging
35 .sendAndReceive(new Endpoint("localhost", 8080), "echo",
36 "Hello World");
37 System.out.println("Got back:" + response.get(2, TimeUnit.SECONDS));
38 context.stop();
39 }
40 metrics.registerMetric(component, feature, "AsyncTimer", sendAndRecieveTimer);
41
Madan Jampaniab6d3112014-10-02 16:30:14 -070042 }
43
44 public static class TestNettyMessagingService extends NettyMessagingService {
45 public TestNettyMessagingService(int port) throws Exception {
46 super(port);
47 Serializer serializer = new KryoSerializer();
48 this.serializer = serializer;
49 }
50 }
51}