jackson, HTTP codes and JSON responses, xICIC/RRMConfig fix
diff --git a/src/main/java/org.onosproject.xran/rest/CellWebResource.java b/src/main/java/org.onosproject.xran/rest/CellWebResource.java
index 25825a9..ac2806d 100644
--- a/src/main/java/org.onosproject.xran/rest/CellWebResource.java
+++ b/src/main/java/org.onosproject.xran/rest/CellWebResource.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.xran.rest;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.commons.lang.exception.ExceptionUtils;
@@ -23,6 +24,7 @@
 import org.onosproject.xran.annotations.Patch;
 import org.onosproject.xran.controller.XranController;
 import org.onosproject.xran.entities.RnibCell;
+import org.onosproject.xran.rest.ResponseHelper.statusCode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -33,7 +35,6 @@
 import javax.ws.rs.Produces;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
-import java.io.IOException;
 import java.io.InputStream;
 import java.util.concurrent.SynchronousQueue;
 import java.util.concurrent.TimeUnit;
@@ -47,6 +48,9 @@
     private static final Logger log =
             LoggerFactory.getLogger(CellWebResource.class);
 
+    public CellWebResource() {
+    }
+
     /**
      * test.
      *
@@ -61,20 +65,34 @@
 
         if (cell != null) {
             try {
-                ObjectNode rootNode = mapper().createObjectNode();
+                JsonNode jsonNode = mapper().valueToTree(cell);
 
-                JsonNode jsonNode = mapper().readTree(cell.toString());
-                rootNode.put("cell", jsonNode);
-            } catch (IOException e) {
-                log.error(ExceptionUtils.getFullStackTrace(e));
+                return ResponseHelper.getResponse(
+                        mapper(),
+                        statusCode.OK,
+                        jsonNode
+                );
+
+            } catch (Exception e) {
+                String fullStackTrace = ExceptionUtils.getFullStackTrace(e);
+                log.error(fullStackTrace);
                 e.printStackTrace();
-                return Response.serverError()
-                        .entity(ExceptionUtils.getFullStackTrace(e))
-                        .build();
+
+                return ResponseHelper.getResponse(
+                        mapper(),
+                        statusCode.INTERNAL_SERVER_ERROR,
+                        "Exception",
+                        fullStackTrace
+                );
             }
         }
 
-        return Response.serverError().entity("cell not found").build();
+        return ResponseHelper.getResponse(
+                mapper(),
+                statusCode.NOT_FOUND,
+                "Not Found",
+                "Cell with " + eciHex + " was not found"
+        );
     }
 
     /**
@@ -87,6 +105,7 @@
     @Patch
     @Path("{cellid}")
     @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
     public Response patchCell(@PathParam("cellid") String eciHex, InputStream stream) {
         RnibCell cell = get(XranStore.class).getCell(eciHex);
 
@@ -104,27 +123,41 @@
                     String poll = queue[0].poll(5, TimeUnit.SECONDS);
 
                     if (poll != null) {
-                        return Response.ok()
-                                .entity(poll)
-                                .build();
+                        return ResponseHelper.getResponse(
+                                mapper(),
+                                statusCode.OK,
+                                "Handoff Response",
+                                poll
+                        );
                     } else {
-                        return Response.serverError()
-                                .entity("did not receive response in time")
-                                .build();
+                        return ResponseHelper.getResponse(
+                                mapper(),
+                                statusCode.REQUEST_TIMEOUT,
+                                "Handoff Timeout",
+                                "eNodeB did not send a HOComplete/HOFailure on time"
+                        );
                     }
                 }
             } catch (Exception e) {
-                log.error(ExceptionUtils.getFullStackTrace(e));
+                String fullStackTrace = ExceptionUtils.getFullStackTrace(e);
+                log.error(fullStackTrace);
                 e.printStackTrace();
-                return Response.serverError()
-                        .entity(ExceptionUtils.getFullStackTrace(e))
-                        .build();
+
+                return ResponseHelper.getResponse(
+                        mapper(),
+                        statusCode.INTERNAL_SERVER_ERROR,
+                        "Exception",
+                        fullStackTrace
+                );
             }
         }
 
-        return Response.serverError()
-                .entity("cell not found")
-                .build();
+        return ResponseHelper.getResponse(
+                mapper(),
+                statusCode.NOT_FOUND,
+                "Not Found",
+                "Cell " + eciHex + " was not found"
+        );
     }
 
 }