Ray Milkey

Use JsonBodyWriter directly rather than converting JSON to strings first

Change-Id: I2facf51d0bf9b6ea4ccb47b0ac4214af203982a1
...@@ -65,7 +65,7 @@ public class FlowsWebResource extends AbstractWebResource { ...@@ -65,7 +65,7 @@ public class FlowsWebResource extends AbstractWebResource {
65 } 65 }
66 } 66 }
67 67
68 - return ok(root.toString()).build(); 68 + return ok(root).build();
69 } 69 }
70 70
71 /** 71 /**
...@@ -87,7 +87,7 @@ public class FlowsWebResource extends AbstractWebResource { ...@@ -87,7 +87,7 @@ public class FlowsWebResource extends AbstractWebResource {
87 for (final FlowEntry entry : deviceEntries) { 87 for (final FlowEntry entry : deviceEntries) {
88 flowsNode.add(flowEntryCodec.encode(entry, this)); 88 flowsNode.add(flowEntryCodec.encode(entry, this));
89 } 89 }
90 - return ok(root.toString()).build(); 90 + return ok(root).build();
91 } 91 }
92 92
93 /** 93 /**
...@@ -113,6 +113,6 @@ public class FlowsWebResource extends AbstractWebResource { ...@@ -113,6 +113,6 @@ public class FlowsWebResource extends AbstractWebResource {
113 flowsNode.add(flowEntryCodec.encode(entry, this)); 113 flowsNode.add(flowEntryCodec.encode(entry, this));
114 } 114 }
115 } 115 }
116 - return ok(root.toString()).build(); 116 + return ok(root).build();
117 } 117 }
118 } 118 }
......
...@@ -39,7 +39,7 @@ public class GreetResource extends BaseResource { ...@@ -39,7 +39,7 @@ public class GreetResource extends BaseResource {
39 ObjectMapper mapper = new ObjectMapper(); 39 ObjectMapper mapper = new ObjectMapper();
40 ObjectNode root = mapper.createObjectNode(); 40 ObjectNode root = mapper.createObjectNode();
41 root.put("greeting", "Yo!!!!"); 41 root.put("greeting", "Yo!!!!");
42 - return Response.ok(root.toString()).build(); 42 + return Response.ok(root).build();
43 } 43 }
44 44
45 } 45 }
......
...@@ -42,7 +42,7 @@ public class HostsWebResource extends AbstractWebResource { ...@@ -42,7 +42,7 @@ public class HostsWebResource extends AbstractWebResource {
42 public Response getHosts() { 42 public Response getHosts() {
43 final Iterable<Host> hosts = get(HostService.class).getHosts(); 43 final Iterable<Host> hosts = get(HostService.class).getHosts();
44 final ObjectNode root = encodeArray(Host.class, "hosts", hosts); 44 final ObjectNode root = encodeArray(Host.class, "hosts", hosts);
45 - return ok(root.toString()).build(); 45 + return ok(root).build();
46 } 46 }
47 47
48 @GET 48 @GET
...@@ -52,7 +52,7 @@ public class HostsWebResource extends AbstractWebResource { ...@@ -52,7 +52,7 @@ public class HostsWebResource extends AbstractWebResource {
52 final Host host = nullIsNotFound(get(HostService.class).getHost(hostId(id)), 52 final Host host = nullIsNotFound(get(HostService.class).getHost(hostId(id)),
53 HOST_NOT_FOUND); 53 HOST_NOT_FOUND);
54 final ObjectNode root = codec(Host.class).encode(host, this); 54 final ObjectNode root = codec(Host.class).encode(host, this);
55 - return ok(root.toString()).build(); 55 + return ok(root).build();
56 } 56 }
57 57
58 @GET 58 @GET
...@@ -63,7 +63,7 @@ public class HostsWebResource extends AbstractWebResource { ...@@ -63,7 +63,7 @@ public class HostsWebResource extends AbstractWebResource {
63 final Host host = nullIsNotFound(get(HostService.class).getHost(hostId(mac + "/" + vlan)), 63 final Host host = nullIsNotFound(get(HostService.class).getHost(hostId(mac + "/" + vlan)),
64 HOST_NOT_FOUND); 64 HOST_NOT_FOUND);
65 final ObjectNode root = codec(Host.class).encode(host, this); 65 final ObjectNode root = codec(Host.class).encode(host, this);
66 - return ok(root.toString()).build(); 66 + return ok(root).build();
67 } 67 }
68 } 68 }
69 69
......
...@@ -48,7 +48,7 @@ public class IntentsWebResource extends AbstractWebResource { ...@@ -48,7 +48,7 @@ public class IntentsWebResource extends AbstractWebResource {
48 public Response getIntents() { 48 public Response getIntents() {
49 final Iterable<Intent> intents = get(IntentService.class).getIntents(); 49 final Iterable<Intent> intents = get(IntentService.class).getIntents();
50 final ObjectNode root = encodeArray(Intent.class, "intents", intents); 50 final ObjectNode root = encodeArray(Intent.class, "intents", intents);
51 - return ok(root.toString()).build(); 51 + return ok(root).build();
52 } 52 }
53 53
54 /** 54 /**
...@@ -72,6 +72,6 @@ public class IntentsWebResource extends AbstractWebResource { ...@@ -72,6 +72,6 @@ public class IntentsWebResource extends AbstractWebResource {
72 } else { 72 } else {
73 root = codec(Intent.class).encode(intent, this); 73 root = codec(Intent.class).encode(intent, this);
74 } 74 }
75 - return ok(root.toString()).build(); 75 + return ok(root).build();
76 } 76 }
77 } 77 }
......
...@@ -22,6 +22,8 @@ import javax.ws.rs.Produces; ...@@ -22,6 +22,8 @@ import javax.ws.rs.Produces;
22 import javax.ws.rs.core.MediaType; 22 import javax.ws.rs.core.MediaType;
23 import javax.ws.rs.core.MultivaluedMap; 23 import javax.ws.rs.core.MultivaluedMap;
24 import javax.ws.rs.ext.MessageBodyWriter; 24 import javax.ws.rs.ext.MessageBodyWriter;
25 +import javax.ws.rs.ext.Provider;
26 +
25 import java.io.IOException; 27 import java.io.IOException;
26 import java.io.OutputStream; 28 import java.io.OutputStream;
27 import java.lang.annotation.Annotation; 29 import java.lang.annotation.Annotation;
...@@ -30,6 +32,7 @@ import java.lang.reflect.Type; ...@@ -30,6 +32,7 @@ import java.lang.reflect.Type;
30 /** 32 /**
31 * JAX-RS Response message body writer. 33 * JAX-RS Response message body writer.
32 */ 34 */
35 +@Provider
33 @Produces("application/json") 36 @Produces("application/json")
34 public class JsonBodyWriter implements MessageBodyWriter<ObjectNode> { 37 public class JsonBodyWriter implements MessageBodyWriter<ObjectNode> {
35 38
......
...@@ -57,7 +57,7 @@ public class TopologyWebResource extends AbstractWebResource { ...@@ -57,7 +57,7 @@ public class TopologyWebResource extends AbstractWebResource {
57 Topology topology = get(TopologyService.class).currentTopology(); 57 Topology topology = get(TopologyService.class).currentTopology();
58 ObjectNode root = 58 ObjectNode root =
59 codec(Topology.class).encode(topology, this); 59 codec(Topology.class).encode(topology, this);
60 - return ok(root.toString()).build(); 60 + return ok(root).build();
61 } 61 }
62 62
63 /** 63 /**
...@@ -74,7 +74,7 @@ public class TopologyWebResource extends AbstractWebResource { ...@@ -74,7 +74,7 @@ public class TopologyWebResource extends AbstractWebResource {
74 get(TopologyService.class).getClusters(topology); 74 get(TopologyService.class).getClusters(topology);
75 ObjectNode root = 75 ObjectNode root =
76 encodeArray(TopologyCluster.class, "clusters", clusters); 76 encodeArray(TopologyCluster.class, "clusters", clusters);
77 - return ok(root.toString()).build(); 77 + return ok(root).build();
78 } 78 }
79 79
80 /** 80 /**
...@@ -96,7 +96,7 @@ public class TopologyWebResource extends AbstractWebResource { ...@@ -96,7 +96,7 @@ public class TopologyWebResource extends AbstractWebResource {
96 CLUSTER_NOT_FOUND); 96 CLUSTER_NOT_FOUND);
97 ObjectNode root = 97 ObjectNode root =
98 codec(TopologyCluster.class).encode(cluster, this); 98 codec(TopologyCluster.class).encode(cluster, this);
99 - return ok(root.toString()).build(); 99 + return ok(root).build();
100 } 100 }
101 101
102 /** 102 /**
...@@ -127,7 +127,7 @@ public class TopologyWebResource extends AbstractWebResource { ...@@ -127,7 +127,7 @@ public class TopologyWebResource extends AbstractWebResource {
127 for (DeviceId deviceId : deviceIds) { 127 for (DeviceId deviceId : deviceIds) {
128 devicesNode.add(deviceId.toString()); 128 devicesNode.add(deviceId.toString());
129 } 129 }
130 - return ok(root.toString()).build(); 130 + return ok(root).build();
131 } 131 }
132 132
133 /** 133 /**
...@@ -150,7 +150,7 @@ public class TopologyWebResource extends AbstractWebResource { ...@@ -150,7 +150,7 @@ public class TopologyWebResource extends AbstractWebResource {
150 Lists.newArrayList(get(TopologyService.class) 150 Lists.newArrayList(get(TopologyService.class)
151 .getClusterLinks(topology, cluster)); 151 .getClusterLinks(topology, cluster));
152 152
153 - return ok(encodeArray(Link.class, "links", links).toString()).build(); 153 + return ok(encodeArray(Link.class, "links", links)).build();
154 } 154 }
155 155
156 /** 156 /**
...@@ -203,8 +203,7 @@ public class TopologyWebResource extends AbstractWebResource { ...@@ -203,8 +203,7 @@ public class TopologyWebResource extends AbstractWebResource {
203 203
204 return ok(mapper() 204 return ok(mapper()
205 .createObjectNode() 205 .createObjectNode()
206 - .put("broadcast", isBroadcast) 206 + .put("broadcast", isBroadcast))
207 - .toString())
208 .build(); 207 .build();
209 } 208 }
210 209
...@@ -230,7 +229,7 @@ public class TopologyWebResource extends AbstractWebResource { ...@@ -230,7 +229,7 @@ public class TopologyWebResource extends AbstractWebResource {
230 229
231 return ok(mapper() 230 return ok(mapper()
232 .createObjectNode() 231 .createObjectNode()
233 - .put("infrastructure", isInfrastructure).toString()) 232 + .put("infrastructure", isInfrastructure))
234 .build(); 233 .build();
235 } 234 }
236 235
......