Package name changes to reflect functionality differences between Library and Plugin.
[ovsdb.git] / ovsdb / src / main / java / org / opendaylight / ovsdb / plugin / MessageHandler.java
1 package org.opendaylight.ovsdb.plugin;\r
2 \r
3 import com.fasterxml.jackson.databind.JsonNode;\r
4 import com.fasterxml.jackson.databind.ObjectMapper;\r
5 \r
6 import io.netty.channel.ChannelHandlerContext;\r
7 import io.netty.channel.ChannelInboundHandlerAdapter;\r
8 \r
9 import org.opendaylight.ovsdb.lib.message.EchoResponse;\r
10 import org.slf4j.Logger;\r
11 import org.slf4j.LoggerFactory;\r
12 \r
13 import java.io.IOException;\r
14 import java.util.HashMap;\r
15 import java.util.Map;\r
16 import java.util.concurrent.Future;\r
17 \r
18 public class MessageHandler extends ChannelInboundHandlerAdapter {\r
19     protected static final Logger logger = LoggerFactory.getLogger(MessageHandler.class);\r
20 \r
21     private Map<Long, MessageHandlerFuture> responseFutures = new HashMap<Long, MessageHandlerFuture>();\r
22 \r
23     public Future<Object> getResponse(long id) {\r
24         MessageHandlerFuture responseFuture = new MessageHandlerFuture(Long.valueOf(id));\r
25         responseFutures.put(Long.valueOf(id), responseFuture);\r
26         return responseFuture;\r
27     }\r
28 \r
29     @Override\r
30     public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {\r
31      //   logger.debug(ctx.channel().alloc().buffer().alloc().directBuffer().toString());\r
32 \r
33         logger.info("ChannRead ==> " + msg.toString());\r
34         JsonNode jsonNode;\r
35         ObjectMapper mapper = new ObjectMapper();\r
36         String strmsg = msg.toString();\r
37         try {\r
38             jsonNode = mapper.readTree(strmsg);\r
39         } catch (IOException e) {\r
40             e.printStackTrace();\r
41             return;\r
42         }\r
43 \r
44         if (jsonNode.has("method")) {\r
45             String method = jsonNode.get("method").toString();\r
46         //    if (method.contains("echo")) {\r
47                 EchoResponse echoreply = new EchoResponse();\r
48                 JsonNode echoReplyJnode = mapper.valueToTree(echoreply);\r
49                 logger.debug("Echo Reply DP ==>" + msg);\r
50                 ctx.writeAndFlush(echoReplyJnode.toString());\r
51             }\r
52         }\r
53 \r
54     @Override\r
55     public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {\r
56         ctx.flush();\r
57     }\r
58 }